css - Textarea 和 input 有不同的宽度

标签 css forms cross-browser

CSS:

textarea, input {
  width:300px;
}

HTML:

<textarea id="input"></textarea>
<br>
<input type="submit">

现场演示:http://codepen.io/qaz/pen/teaiG

为什么input和textarea显示的宽度不一样?我需要添加哪些属性才能使它们具有相同的宽度?

更新: 通过将 border 和 padding 设置为 0px,我可以使它们以相同的宽度显示。但是,没有人想要 padding:0px,而且奇怪的是,当两者的 padding 都为 10px 时,它们的宽度不再相同。现在我已经找到了 padding:0px 的解决方案,我仍然对解释和允许我仍然有 padding 的解决方案感兴趣。

(我在 Windows 7 上使用 Chrome 35。)

最佳答案

尝试这样设置:

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

http://jsfiddle.net/QV9PE/

box-sizing CSS3 属性可以做到这一点。 border-box 值(相对于 content-box 默认值)使最终呈现的框成为声明的宽度,并且框内的任何边框和填充都被切割。

我们现在可以安全地将我们的文本区域声明为 300px 宽度,包括基于像素的填充和边框,并完美地完成布局。

关于css - Textarea 和 input 有不同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561037/

相关文章:

幻灯片 div 的 javascript

html - 在已受页面级页眉和页脚限制的内容中添加固定页脚

jquery - Internet Explorer 中未显示 WordPress 插件内容

javascript - Firefox 无法使用 "Wed. October 28, 2015"等格式的 new Date()

html - Tumblr 静态页面,删除内联 CSS

SVG 组上的 CSS 动画

forms - Symfony2 : How to pass parameters to form collections

validation - codeigniter 表单验证

html - 构建两列 html 表单的最佳方式?

browser - 用户代理字段中的 Mozilla/5.0 是否表示浏览器支持 HTML5?