我有一个HTML表单,如:
<html>
Name:<input type="text"/></br>
Email Address:<input type="text"/></br>
Description of the input value:<input type="text"/></br>
</html>
现在标签都在同一列中开始,但文本框根据标签的文本长度以不同的位置开始。
有没有办法对齐输入字段,使得所有“:”和文本框将从相同位置开始,前面的文本将右对齐,直到“:”?
如果可以帮助实现这一点,我可以使用CSS。
答案 0 :(得分:91)
<强> 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;
}
答案 1 :(得分:17)
您可以使用标签(请参阅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>
答案 2 :(得分:3)
在表单元素上设置一个宽度(在示例中应该存在!)并浮动(并清除)输入元素。另外,删除br元素。
答案 3 :(得分:2)
在我的情况下,我总是将这些东西放在像
这样的p标签中 <p>
name : < input type=text />
</p>
依此类推,然后应用css,如
p {
text-align:left;
}
p input {
float:right;
}
你需要指定p标签的宽度。因为输入标签会一直浮动。
此css也会影响提交按钮。您需要覆盖此标记的规则。
答案 4 :(得分:1)
我知道之前已经采用过这种方法,但我相信使用表格可以轻松生成布局,虽然可能不是最佳做法。
<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-->
td{
text-align:right;
}
答案 5 :(得分: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;
}
答案 6 :(得分:1)
我刚给Label指定了宽度,输入类型自动对齐。
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>