Как выровнять ярлык и текстовую область?
заканчивается как
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>