请检查此jsfiddle。
.label
中只有一行,则会将line-height: 30px;
应用于与下一个输入字段垂直居中。.label
中有多行,则会应用line-height: normal;
:first-child
,:nth-child
伪类,因为内容是动态的。.label{ display: table-cell;}
,但由于.label
已应用float
,因此无效。我再次不喜欢使用table-cell
。.label:first-line
无效/适用于此案例。 .label:before {
content: "";
display: inline-block;
height: 30px;
vertical-align: middle;
}
不起作用。
<form>
<label>
<span class="label">Your Name</span>
<input type="text" />
</label>
<label>
<span class="label">Please Give Your Full Name</span>
<input type="text" />
</label>
</form>
form {
float: left;
width: 450px;
}
label {
width: 100%;
float: left;
margin-bottom: 15px;
}
.label {
width: 150px;
float: left;
clear: left;
line-height: 30px;
}
input {
width: 200px;
float: right;
clear: right;
padding: 10px;
}
input {
height: 10px;
line-height: 10px;
}
答案 0 :(得分:2)
好的,如果您从float
移除.label
这应该有用:
label {
width: 100%;
float: left;
margin-bottom: 15px;
line-height: 30px;
}
.label {
width: 150px;
line-height: normal;
display: inline-block;
}
使用保证金的第一个解决方案
您可以尝试将margin-top
添加到.label
.label {
width: 150px;
float: left;
clear: left;
margin-top: 6px;
}
我不确定这是你想要的,你可以查看这个fiddle