我有一个像这样的简单形式(仅用于说明目的)......
<form>
<div class="input-row">
<label>Name</label>
<input type="text" name="name" />
</div>
<div class="input-row">
<label>Country</label>
<select name="country">
<option>Australia</option>
<option>USA</option>
</select>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我使用CSS的布局方法如下......
form {
width: 500px;
}
form .input-row {
display: block;
width: 100%;
height: auto;
clear: both;
overflow: hidden; /* stretch to contain floated children */
margin-bottom: 10px;
}
form .input-row label {
display: block;
float: left;
}
form .input-row input,
form .input-row select {
display: block;
width: 50%;
float: right;
padding: 2px;
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好地对齐,除了我的select
元素(无论如何在Firefox中)并不总是与我的其他input
元素相同的宽度.它通常比几个像素窄.
我已经尝试将宽度更改为像素大小(例如200px
),但它没有任何区别.
让这些都具有相同宽度的最佳方法是什么?我希望这不会再打我设置select
的width
单独,或将它们放入表...
Kor*_*nel 164
解决方案是为表单元素指定框模型,并且当您使用border-box时,浏览器往往最同意:
input, select, textarea {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
有一个normalize.css项目聚合这些技巧.