html - 为什么选择元素不像其他表单元素那么宽?

标签 html css forms

如果我将选择和文本输入设置为相同的宽度,则选择元素的宽度始终比文本输入的宽度小几个像素。无论我以像素还是百分比设置宽度,似乎都会发生这种情况。有谁知道为什么?有什么办法可以防止这种情况发生吗?

最小演示:http://codepen.io/nosecreek/pen/wehKu

在 Chrome 和 IE7 中测试

最佳答案

我认为这与渲染的盒子大小有关。选择的视觉部分小于定义宽度的框。将其包含在您的 CSS 中,它将显示正常。

input, select {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
} 

http://codepen.io/joe/pen/taJnz

引用:Select inputs and text inputs in HTML - Best way to make equal width?

编辑:我明白为什么会发生这种情况。我认为这是因为当您指定宽度时,您是在告诉它内部框(实际输入区域)有多大。文本框还带有边框作为标准,每个边框为 2 像素,这是文本区域宽度的附加尺寸。添加上面的 CSS 会改变宽度的计算方式。当我将文本框的边框设为 1px 时,它只比选择框大 2px。这似乎可以解释这一点。

关于html - 为什么选择元素不像其他表单元素那么宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13715096/

相关文章:

javascript - Html.Replace 在 Node 中不起作用

javascript - 只要它悬停,就保持部分可见

python - Bokeh django plot 嵌入 : large amount of white space in generated div tag

自动调整选择的纯 CSS 解决方案

html - CSS:无法访问下拉菜单

java - FTP 看起来像 java/HTML 中的应用程序

css - 使 div 出现在事件状态

javascript - 如何用jquery控制图片扩展?

html - 如何将 CSS 应用于下拉选择列表?

Javascript/Coldfusion 表单循环验证