如何对齐标签和文本区域?

时间:2009-12-03 11:37:35

标签: html css

最终会像

一样
             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;
}

7 个答案:

答案 0 :(得分:102)

您需要将它们放在某个容器元素中,然后在其上应用对齐。

例如:

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

答案 1 :(得分:14)

使用标签包裹textarea并将textarea样式设置为

vertical-align: middle;

这是页面上所有textareas的魔力:)

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

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

答案 2 :(得分:4)

  1. 将标签的height设置为与多行文字框相同的height
  2. 为标签控件添加cssClass .alignTop{vertical-align: middle;}

    <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 :(得分:3)

在CSS中使用vertical-align:middle

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

答案 4 :(得分:1)

试试这个:

dayNight

答案 5 :(得分:1)

将文本区域框与标签对齐,而不是文本区域的标签

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

textarea{
    vertical-align:middle;
}

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

答案 6 :(得分:0)

尝试在td元素上设置高度。

vertical-align: middle; 

表示应用样式的元素将在父元素中对齐。 td的高度可能只与文本中的高度一样高。