sizing, so we're ok with this selector */
input :not ([ type = image ]), textarea {
-moz-box-sizing: border -box;
}
在 webkit 源码中的 WebCore/css/quirks.css 发现了这句
/* This will apply only to text fields, since all other inputs already use border box sizing */
input :not ([ type = image ]), textarea {
-webkit-box-sizing: border -box;
}
原来浏览器就是这么解决的 , 那么在标准模式下用它将是一种比较好的方案
one more thing
不过这种写法在 Firefox 3.5 以下的版本会有个问题 , 那就是输入框内容将无法垂直居中 , 以英文为例 , 3.5 中和顶部的差距是 5 像素 , 而 3.6 是 7 像素 , 目前还没想到解决方案
幸好在 Firefox 3.6 中解决了这个问题 , 而且 3.5 会默认升级到 3.6, 所以这个问题也就不需要考虑了
结论
从这个例子可以痛苦地体验 , 如果没有统一的规范 , 要兼容不同浏览器是如此的困难 , 而且这还仅仅是一个很不完全的测试 , 好在浏览器还是尽可能做到了最大兼容 , 比如 , 假设 windows 下默认主题和经典主题有区别 , 就意味着所有 windows 下的测试都要乘 2.