Как выровнять ярлык и текстовую область?

заканчивается как

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

Ответ 1

Вам нужно поместить их в некоторый элемент контейнера, а затем применить выравнивание на нем.

Например:

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

Ответ 2

Просто оберните текстовое поле меткой и установите для стиля textarea значение

vertical-align: middle;

Вот несколько магии для всех текстовых областей на странице:)

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

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

Ответ 3

  • Установите height вашей метки в ту же height, что и многострочное текстовое поле.
  • Добавьте элемент управления 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>
    

Ответ 4

Используйте vertical-align:middle в своем CSS.

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

Ответ 5

Попробуйте установить высоту на ваших элементах td.

vertical-align: middle; 

означает, что элемент, к которому применяется стиль, будет выровнен внутри родительского элемента. Высота td может быть только выше, чем текст внутри.

Ответ 6

Попробуйте следующее:

textarea { vertical-align: top; }​ 

Ответ 7

Совместите поле текстовой области с меткой, а не меткой в ​​текстовой области,

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

textarea{
    vertical-align:middle;
}

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