Mój kod kończy się następująco:
XXXXX
XXXXX
Description: XXXXX
Chcę:
XXXXX
Description: XXXXX
XXXXX
„Opis” czasami obejmuje wiele linii.
Kod:
<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;
}
Odpowiedzi:
Musisz umieścić je oba w jakimś elemencie kontenera, a następnie zastosować na nim wyrównanie.
Na przykład:
.formfield * { vertical-align: middle; }
<p class="formfield"> <label for="textarea">Label for textarea</label> <textarea id="textarea" rows="5">Textarea</textarea> </p>
źródło
vertical-align: middle;
każdej z powyższych reguł.DataForm label
i.DataForm textarea
. Używanie selektora * może czasami powodować skutki uboczne.vertical-align: middle
coś zrobić, zwykle wolałby zastosować to na całym bloku.Po prostu zawiń obszar textarea etykietą i ustaw styl textarea na
vertical-align: middle;
Oto trochę magii dla wszystkich obszarów tekstowych na stronie :)
<style> label textarea{ vertical-align: middle; } </style> <label>Blah blah blah Description: <textarea>dura bura</textarea></label>
źródło
height
etykietę na taką samą,height
jak w wielowierszowym polu tekstowym.Dodaj cssClass
.alignTop{vertical-align: middle;}
dla kontrolki etykiety.<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>
źródło
Użyj
vertical-align:middle
w swoim CSS.<table> <tr> <td style="vertical-align:middle">Description:</td> <td><textarea></textarea></td> </tr> </table>
źródło
Wyrównaj pole obszaru tekstowego z etykietą, a nie etykietę z obszarem tekstowym,
label { width: 180px; display: inline-block; } textarea{ vertical-align: middle; } <label for="myfield">Label text</label><textarea id="myfield" rows="5" cols="30"></textarea>
źródło
Spróbuj tego:
textarea { vertical-align: top; }
źródło
Spróbuj ustawić wysokość elementów td.
vertical-align: middle;
oznacza, że element, do którego zastosowano styl, zostanie wyrównany w elemencie nadrzędnym. Wysokość td może być równa wysokości tekstu wewnątrz.
źródło