css - CSS规范说什么是测量元素宽度的正确方法?

标签 css internet-explorer firefox google-chrome specifications

Chrome 似乎从边距内部测量元素宽度,包括内边距,但 Firefox 和 IE 测量边框所在的框宽度(不包括内边距,但内边距)。从边框测量元素的宽度对我来说很有意义,并且在编码时也很有帮助,因为打开边框可以让您很容易地看到元素的宽度,但我的问题是 CSS 规范所说的是测量宽度的正确方法一个元素,如果 chrome 错误或 IE 和 Firefox 错误

谢谢你的帮助

最佳答案

W3C CSS 2.1 盒模型规范规定元素的宽度包括边距、边框或填充。

事实上,通过指定 CSS 宽度或高度属性,您可以指定框内容可用的空间(在规范中称为内容区域),不包括填充、边距或边框.

看这个例子:

div { width: 100px; padding: 10px; margin: 20px; border: 2px; }

垂直边框(包括它们)之间的距离是 width + padding-left + padding-right + border-right-width + border-left-width。 边距在边界框之外。 宽度(按照 CSS 规范的预期)改为 100px。

Internet Explorer 以标准模式Quirks 模式 呈现网页。 如果您希望 IE 正常运行(因此遵循 CSS 标准),您必须通过使用本文中报告的 DOCTYPE 之一强制它使用标准模式:http://www.alistapart.com/articles/doctype/

这种技术称为 doctype-switch

Firefox 和大多数其他浏览器都遵循标准框模型。

您可以在此处阅读 W3C 盒子模型规范:http://www.w3.org/TR/CSS21/box.html#box-dimensions 但我建议您阅读更易于阅读(但确实不错)的文章,如下所示:http://reference.sitepoint.com/css/boxmodel

另外要说的是,CSS 3 规范将包括 box-sizing属性将允许为每个元素指定解释 width 属性的方式(因此如果排除或包括填充和边框)。 无论如何,大多数浏览器都需要数年时间才能实现新的(尚未完成的)CSS 3 规范。

关于css - CSS规范说什么是测量元素宽度的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2095522/

相关文章:

javascript - 如果我在代码中犯了一个错误并导致 javascript 中的无限循环并且它一直在调用 alert(),是否有办法停止循环?

javascript - 在 Firefox 中调整大小不起作用

javascript - 带有全局变量的 IE 错误。如何绕过这个错误?

CSS:如何在 IE 中打破 <code> 标签内的长词?

javascript - postMessage 在 IE11 上仍然损坏?

firefox - Firefox 错误页面中的 "chrome://"URL 是什么?

javascript - 使用 CSS 在 HTML 中模糊 Img 和 Div

Javascript 不会覆盖 CSS 显示属性

html - 如何拥有两种不同语言的同一个标题?

javascript - 显示具有固定尺寸的图像的可靠方法