如何获得相同的input和select字段的宽度
在窗体上,我有一个select和两个input字段。 这些元素是垂直alignment的。 不幸的是,我无法得到这些元素的相等的宽度。
这是我的代码:
<select name="name1" style="width:198px"> <option>value1</option> <option>value2</option> </select><br/> <input type="text" name="id1" style="width:193px"><br/> <input type="text" name="id2" style="width:193px">
对于上面的例子,select元素的最佳宽度是198或199像素(当然,我尝试了193像素,但差别很大)。 我认为,这取决于分辨率,在各种计算机和浏览器,因为这些元素没有相等的宽度(有时我认为差异大约是1或2像素)。 我试图设置div或表行中的这些元素,但它没有帮助。
问:我怎么能得到这些元素的精确相等的宽度?
更新了答案
以下是如何更改input / textarea / select元素使用的框模型,以便它们的行为方式相同。 您需要使用每个浏览器都使用前缀实现的box-sizing
属性
-ms-box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box;
这意味着我们前面提到的2px差异不存在..
例如http://www.jsfiddle.net/gaby/WaxTS/5/
注: 在IE浏览器,它从版本8以上的作品..
原版的
如果你重置它们的边框,那么select
元素总是比input
元素小2个像素。
例如: http : //www.jsfiddle.net/gaby/WaxTS/2/
我试过了盖比的答案(+1),但这只是部分解决了我的问题。 相反,我使用了以下CSS,其中内容框被更改为边框:
input, select { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
在CSS中添加此代码:
select, input[type="text"]{ width:100%; box-sizing:border-box; }
创build另一个类并用2px示例增加大小
.enquiry_fld_normal{ width:278px !important; } .enquiry_fld_normal_select{ width:280px !important; }