我有一个像这样的简单表格(仅用于说明目的)…
<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>
我使用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; }
所有这些都很好地对齐了,除了我的select元素(无论如何在Firefox中)并不总是与其他input元素相同。通常,它会缩小几个像素。
select
input
我尝试过将宽度更改为像素大小(例如200px),但并没有改变。
200px
使它们全部具有相同宽度的最佳方法是什么?我希望这不会再打我设置select的width单独,或将它们放入表…
width
解决方案是为表单元素指定盒子模型,当您使用border-box时,浏览器通常会达成共识:
input, select, textarea { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
有normalize.css项目,它汇总了这些技巧。