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

Nib*_*Pig 81 html css asp.net

结束了

             XXXXX
             XXXXX
Description: XXXXX
Run Code Online (Sandbox Code Playgroud)

我想要

             XXXXX
Description: XXXXX
             XXXXX
Run Code Online (Sandbox Code Playgroud)

"描述"有时跨越多行.

码:

<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>
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 105

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

例如:

.formfield * {
  vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)
<p class="formfield">
  <label for="textarea">Label for textarea</label>
  <textarea id="textarea" rows="5">Textarea</textarea>
</p>
Run Code Online (Sandbox Code Playgroud)

  • 一个更好的解决方案就是在上面的每个规则中放置`vertical-align:middle;`,`.DataForm label`和`.DataForm textarea`.使用*选择器有时会产生副作用. (10认同)
  • 你可能是对的,但是如果一个人会"垂直对齐:中间"的东西,人们通常会把它应用到完整的块上. (2认同)

小智 15

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

vertical-align: middle;
Run Code Online (Sandbox Code Playgroud)

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

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

<label>Blah blah blah Description: <textarea>dura bura</textarea></label>
Run Code Online (Sandbox Code Playgroud)

  • 这工作得很好。选择的答案没有。谢谢! (3认同)