Выровняйте поля ввода HTML:
У меня есть HTML-форма, например:
<html>
Name:<input type="text"/></br>
Email Address:<input type="text"/></br>
Description of the input value:<input type="text"/></br>
</html>
Теперь метки все начинаются в одном столбце, но текстовые поля начинаются в разных положениях в соответствии с длиной текста ярлыка.
Есть ли способ выровнять поля ввода таким образом, чтобы все ":" и текстовые поля начинались в том же положении, и предыдущий текст будет выровнен по правому краю до ":"?
Я согласен с использованием CSS, если это поможет в достижении этого.
Ответы
Ответ 1
Рабочая скрипта JS
HTML:
<div>
<label>Name:</label><input type="text">
<label>Email Address:</label><input type = "text">
<label>Description of the input value:</label><input type="text">
</div>
CSS
label{
display: inline-block;
float: left;
clear: left;
width: 250px;
text-align: right;
}
input {
display: inline-block;
float: left;
}
Ответ 2
Вы можете использовать метку (см. JsFiddle)
CSS
label { display: inline-block; width: 210px; text-align: right; }
HTML
<html>
<label for="name">Name:</label><input id="name" type="text"><br />
<label for="email">Email Address:</label><input id="email" type="text"><br />
<label for="desc">Description of the input value:</label><input id="desc" type="text"><br />
</html>
Или вы можете использовать эти метки в таблице (JsFiddle)
<html>
<table>
<tbody>
<tr><td><label for="name">Name:</label></td><td><input id="name" type="text"></td></tr>
<tr><td><label for="email">Email Address:</label></td><td><input id="email" type = "text"></td></tr>
<tr><td><label for="desc">Description of the input value:</label></td><td><input id="desc" type="text"></td></tr>
</tbody>
</table>
</html>
Ответ 3
Задайте ширину элемента формы (который должен существовать в вашем примере!) и поместите (и очистите) элементы ввода. Кроме того, удалите элементы br.
Ответ 4
в моем случае я всегда помещаю эти вещи в тег p, например
<p>
name : < input type=text />
</p>
и т.д., а затем применяя css как
p {
text-align:left;
}
p input {
float:right;
}
Вам нужно указать ширину тэга p. Поскольку теги ввода будут плавать полностью вправо.
Этот css также повлияет на кнопку отправки. Вам необходимо переопределить правило для этого тега.
Ответ 5
Я знаю, что этот подход был сделан раньше, но я считаю, что с помощью таблиц макет может быть сгенерирован легко, хотя эта может быть не лучшей практикой.
JSFiddle
HTML
<table>
<tr><td>Name:</td><td><input type="text"/></td></tr>
<tr><td>Age:</td><td><input type="text"/></td></tr>
</table>
<!--You can add the fields as you want-->
CSS
td{
text-align:right;
}
Ответ 6
Я только что дал ширину методу и тип ввода был выровнен автоматически.
input[type="text"] {
width:100px;
height:30px;
border-radius:5px;
background-color: lightblue;
margin-left:2px;
position:relative;
}
label{
position:relative;
width:300px;
border:2px dotted black;
margin:20px;
padding:5px;
font-family:AR CENA;
font-size:20px;
}
<label>First Name:</label><input type="text" name="fname"><br>
<label>Last Name:</label><input type="text" name="lname"><br>
Ответ 7
http://jsfiddle.net/T6zhj/1/
Использование display table-cell/row будет выполнять задание без необходимой ширины.
html:
<html>
<div>
<div class="row"><label>Name:</label><input type="text"></div>
<div class="row"><label>Email Address:</label><input type = "text"></div>
<div class="row"><label>Description of the input value:</label><input type="text"></div>
</div>
</html>
Css:
label{
display: table-cell;
text-align: right;
}
input {
display: table-cell;
}
div.row{
display:table-row;
}