2012-04-23 184 views
1

在几天之内(对于某些人来说,过去已经很久了,而其他人仍然存在),盒式模型的bug对他们的存在是一个祸害。元素宽度包括边缘,边界和填充的想法是亵渎神灵并且是他们感官的憎恶。所以我们在成千上万个关于盒子模型黑客的互联网博客中摆脱了这个困境。盒模型错误和新的盒子尺寸CSS之间有什么区别?

现在,我们得到盒大小,这会,等待它,让你指定的宽度包含边框,边距和填充。我们为它贴上了一个时髦的新名称,“CSS3 Flexbox”,现在它是设计师一直在寻找的自由。

对于谁看到了盒模型的错误不会在错误和W3C为实际的错误逻辑的那些人来说,这是一个意外。重新引入这个所谓的bug,现在我们称之为增强功能?

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

+1

“错误”是*执行*不正确地遵循*规范*时。这没有说明*规范*的设计选择。 – 2012-04-23 03:04:30

+2

@pst:正确。恰好碰巧的是,越野车的实现最终成为[Ascended Glitch](http://tvtropes.org/pmwiki/pmwiki.php/Main/AscendedGlitch)。 – BoltClock 2012-04-23 03:34:24

回答

4

现在我们得到盒子大小,它将等待它,允许您指定宽度包含边框,边距和填充。我们为它贴上了一个时髦的新名称,“CSS3 Flexbox”,现在它是设计师一直在寻找的自由。

不,我们把它叫做“边框框”的模式。 Flexbox是完全不同的东西;它与box-sizing property无关,用于告诉浏览器如何计算盒子的尺寸。

对于那些认为盒式模型错误不是bug和W3C作为实际错误的人来说,这真是一个惊喜。重新引入这个所谓的bug,现在我们称之为增强功能?

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

它曾经被认为是很长一段时间的错误,因为在当时,只有一个真正盒模型(W3C content box model)的每个人都必须遵守,当CSS刚刚开始回暖,并在此时间IE was the black sheep。但是然后people — even those who hated IE's guts — liked this bug, and so border box sizing was added into the CSS3 spec as an option。干净利落。

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


现在有至少两个,原来的W3C内容框模型和“新”的边界盒模型。还有第三个padding box model being explored by Mozilla,但这与我们在这里讨论的内容并不完全相关,无论如何它都有可能从CSS3 UI CR中放弃。

取决于你问谁,这可以被看作是一个“功能”,而不是作为的怪癖模式的主要目的是效仿马车浏览器渲染中使用与遗留代码上,和它不适用于新代码。

+0

“不,我们称之为”边框“模型,灵活的盒子是完全不同的东西,它与用于告诉浏览器如何计算盒子尺寸的盒子尺寸属性无关。真正。我也在考虑另一个间距问题,并且Flexbox在头脑中。你提到并解释了我的真正意义。 – 2012-04-23 04:14:30

+1

“但是随后人们 - 即使是那些讨厌IE的胆量的人 - 都喜欢这个bug,所以CSS3规范中增加了边界框尺寸作为选项。”简单而简单。“这现在有道理。在最长的时间里,我只看到人们在谈论盒式模型错误,所以我真的没有意识到有人要求这样做,因为人们都喜欢它。他们总是好像在说:“我讨厌IE,所以我讨厌盒子模型bug,w3c的方式是最好的。”谢谢你清理那个。而AFAIK,盒子大小应该会越来越大,包括Mozilla的填充距离边框,但是你的来源可能会更好。 – 2012-04-23 04:18:33

+1

CSS3 UI的最后一次调用草案说,由于缺乏实现(现在只有Mozilla才有),它可能会被删除。然后再次,只有时间会告诉...... – BoltClock 2012-04-23 04:31:45