html - 如何获得相等宽度的输入和选择字段

标签 html css html-select border-box

在表单上,​​我有一个选择字段和两个输入字段。这些元素垂直对齐。不幸的是,我无法获得这些元素的等宽。

这是我的代码:

<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">

对于上面的例子,选择元素的最佳宽度是198或199px(当然我试过193px,但差别很大)。我认为,这取决于分辨率、各种计算机和浏览器,因为这些元素的宽度不相等(有时我认为差异大约为 1 或 2 px)。我试图在 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/

关于html - 如何获得相等宽度的输入和选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445858/

相关文章:

html - 尽管有 :0 auto with CSS?,但有没有办法覆盖 margin-left

javascript - vue.js :selected doesn't triggering @change event select/option

javascript - 如何获得与 Youtube 相同的按钮?

jQuery 在当前单击的 div 之外选择多个具有相同类的 div

html - safari 中的框阴影动画不褪色

css - 如果类存在,Susy 将流从 rtl 更改为 ltr

html - 像没有行跨度的 block 一样显示单元格

javascript - 如何循环遍历数组以提取 ID 号 javascript

带有DropDownList数据的ASP.NET MVC 4 ViewModel

ionic2 - 带有复选框和搜索的 ionic (2 或 3)多选微调器