레이블과 텍스트 영역을 어떻게 정렬합니까?


83

내 코드는 다음과 같이 끝납니다.

             XXXXX
             XXXXX
Description: XXXXX

내가 원하는:

             XXXXX
Description: XXXXX
             XXXXX

"설명"은 때때로 여러 줄에 걸쳐 있습니다.

암호:

<p class="DataForm">
    <label>Blah blah blah Description:</label>
    <asp:TextBox ID="txtBlahblahblahDescription"
                 runat="server"
                 TextMode="MultiLine"
                 Rows="8"
                 Columns="50"></asp:TextBox><br/>
</p>

CSS :

.DataForm {
}
.DataForm label {
    display: inline-block;
    font-size: small;
    margin-left: 5px;
    width: 5%;
    min-width: 60px;
}
.DataForm input {
    margin-right: 9px;
    display: inline-block;
    width: 21%;
    min-width: 30px;
}

중간에 설명 레이블을 표시 하시겠습니까?
Peter Stuifzand 2009

3
테이블을 사용하고 있습니까 아니면 인라인입니까, 레이블을 왼쪽으로 띄우고 있습니까? HTML과 CSS를 게시하여 코드가 어떻게 생겼는지 알 수 있습니까? 코드에 맞지 않을 수있는 스타일과 레이아웃을 추천하는 것은 어렵습니다.
Andy E

네, 가능하면 설명 라벨은 수직으로 중앙에 위치해야합니다. . . . 내 코드를 첨부하겠습니다
NibblyPig 2009

답변:


110

둘 다 컨테이너 요소에 넣은 다음 정렬을 적용해야합니다.

예를 들면 :

.formfield * {
  vertical-align: middle;
}
<p class="formfield">
  <label for="textarea">Label for textarea</label>
  <textarea id="textarea" rows="5">Textarea</textarea>
</p>


흠, 나는 퍼팅 시도한다는 내 p 태그에 인라인 스타일하지만 didnt 한 작품으로
NibblyPig

1
유전되지 않습니까? 어쨌든 시도했지만 작동하지 않았습니다 :(
NibblyPig 2009

1
내 잘못은, 데이터 폼 *과 함께 작동합니다.
센터링

10
더 나은 솔루션은 넣어하는 것입니다 vertical-align: middle;위의 각 규칙에 .DataForm label.DataForm textarea. * 선택기를 사용하면 때때로 부작용이 발생할 수 있습니다.
DisgruntledGoat

2
당신이 옳을 수도 있지만, vertical-align: middle무언가를 원한다면 일반적으로 전체 블록에 적용 할 것입니다.
BalusC 2009

19

텍스트 영역을 레이블로 감싸고 텍스트 영역 스타일을

vertical-align: middle;

다음은 페이지의 모든 텍스트 영역에 대한 몇 가지 마술입니다.)

<style>
    label textarea{
        vertical-align: middle;
    }
</style>

<label>Blah blah blah Description: <textarea>dura bura</textarea></label>

2
이것은 완벽하게 작동했습니다. 선택한 답변은 그렇지 않았습니다. 감사!
eaglei22 2015

4
  1. height레이블을 여러 줄 height텍스트 상자 와 동일하게 설정하십시오 .
  2. .alignTop{vertical-align: middle;}레이블 컨트롤에 대한 cssClass 를 추가합니다 .

    <p>
        <asp:Label ID="DescriptionLabel" runat="server" Text="Description: " Width="70px" Height="200px" CssClass="alignTop"></asp:Label>
        <asp:Textbox id="DescriptionTextbox" runat="server" Width="400px" Height="200px" TextMode="MultiLine"></asp:Textbox>
        <asp:RequiredFieldValidator id="DescriptionRequiredFieldValidator" runat="server" ForeColor="Red"
        ControlToValidate="DescriptionTextbox" ErrorMessage="Description is a required field.">    
    </asp:RequiredFieldValidator>
    


3

vertical-align:middleCSS에서 사용하십시오 .

<table>
    <tr>
       <td style="vertical-align:middle">Description:</td>
       <td><textarea></textarea></td>
    </tr>
</table>

가능한 경우 테이블이없는 우아한 솔루션을 찾고 있습니다.
NibblyPig 2009

4
질문에 이와 같은 내용을 작성해야합니다.
Peter Stuifzand 2009

12
요즘 누가 양식에 테이블을 사용하고 있습니까?
BalusC 2009

6
죄송합니다, 그것은 :( 분명하다고 생각
NibblyPig

4
표는 양식에 완벽하게 유효합니다. 그것은 하나의 데이터 행 (또는 열)이기는하지만, 테이블 데이터.
DisgruntledGoat

3

텍스트 영역 상자를 레이블이 아닌 레이블에 정렬합니다.

label {
    width: 180px;
    display: inline-block;
}

textarea{
    vertical-align: middle;
}

<label for="myfield">Label text</label><textarea id="myfield" rows="5" cols="30"></textarea>


0

td 요소에 높이를 설정하십시오.

vertical-align: middle; 

스타일이 적용되는 요소가 상위 요소 내에 정렬됨을 의미합니다. td의 높이는 내부 텍스트만큼만 높을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.