【发布时间】:2009-05-22 00:13:07
【问题描述】:
我有一个像这样的简单表格(仅用于说明目的)...
<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 元素的宽度相同。它通常会窄几个像素。
我尝试将宽度更改为像素大小(例如200px),但没有任何作用。
让这些都具有相同宽度的最佳方法是什么?我希望它不会求助于我单独设置select 的width,或者将它们放入表格中......
【问题讨论】:
-
我能告诉你一个肮脏的小秘密吗?我使用表格来格式化我的表格。这只是方式太容易了。但是 Sssssshh,保持低调。
-
说真的,您是否尝试过将边距和内边距设置为 0?
-
Paolo,我最初是这样做的(并且很容易使输入具有相同的宽度),但我努力减少表格,并且在过去 8 个月左右取得了成功......这个只是让我感到悲伤。
-
我有填充(在边框和文本之间留出一些喘息的空间),当我删除填充时,差异会变小(但是我的文本很难靠在边框上)
-
哦,我知道了。我喜欢 CSS,并且我显然同意它的语义相关性等想法,但是当涉及到表单时,我只是喜欢表格的灵活性和简单性。无论如何,我不确定为什么会这样。表单字段臭名昭著,因为要让它们按您想要的方式设置样式是多么痛苦。对不起。 :)