1

在过去的日子里(对于某些人来说已经过去了,对于其他人来说仍然存在),盒子模型错误是他们存在的祸根。元素的宽度包括边距、边框和内边距的想法是亵渎神明的,对他们的感官来说是可憎的。因此,在成千上万的关于盒子模型黑客的互联网博客之后,我们摆脱了它。

现在我们得到 box-sizing,它会等待它,允许你指定一个包含边框、边距和填充的宽度。我们给它起了一个时髦的新名字,“CSS3 Flexbox”,现在它是设计师一直在寻找的自由。

对于那些认为盒子模型错误不是错误而将 W3C 视为实际错误的逻辑人来说,这令人惊讶。重新引入这个所谓的错误,现在我们称之为增强?

那么有人可以解释为什么这是不同的吗?老实说,我对此感到困惑。

4

1 回答 1

4

现在我们得到 box-sizing,它会等待它,允许你指定一个包含边框、边距和填充的宽度。我们给它起了一个时髦的新名字,“CSS3 Flexbox”,现在它是设计师一直在寻找的自由。

不,我们称之为“边界框”模型。Flexbox是完全不同的东西。它与属性无关,box-sizing属性用于告诉浏览器如何计算框的尺寸。

对于那些认为盒子模型错误不是错误而将 W3C 视为实际错误的逻辑人来说,这令人惊讶。重新引入这个所谓的错误,现在我们称之为增强?

那么有人可以解释为什么这是不同的吗?老实说,我对此感到困惑。

长期以来一直被认为是一个bug,因为当时只有一个真正的盒子模型(W3C内容盒模型),在CSS刚刚开始学习的时候,每个人都必须遵循,而当时的IE是害群之马。但是后来人们——即使是那些讨厌 IE 的人——喜欢这个 bug,所以边框大小被添加到 CSS3 规范中作为一个选项。干净利落。1

请注意,IE5.x(和怪癖模式 IE 2 )将始终按照任何版本的规范继续表现出错误行为,并且不支持的其他浏览器的旧版本box-sizing将始终遵循标准模式下的原始内容框模型(有时,但不总是,几乎是标准模式)。


1 现在至少有两种,原始的 W3C 内容框模型和“新”边框框模型。Mozilla 还在探索第三种填充框模型,但这与我们在这里讨论的内容并不真正相关,并且无论如何它都有被从 CSS3 UI CR 中删除的风险。

2 根据您的要求,这可能被视为“功能”,因为 quirks 模式的主要目的是模拟有缺陷的浏览器渲染以用于旧代码,而不是用于新代码。

于 2012-04-23T03:02:42.417 回答