为什么认为W3C盒子模型更好?
为什么大多数开发人员认为W3C盒式模型比Internet Explorer使用的盒式模型更好?
在IE浏览器上开发看起来像你想要的页面是非常令人沮丧的,但是我发现W3C盒子模型与直觉相反。 例如,如果将边距,填充和边框分解为宽度,我可以将宽度值分配给所有列,而不必担心列的数量以及对填充和边距所做的任何更改。
使用W3C的盒子模型,我不得不担心列的数量,并开发类似于数学公式的东西,以便在修改边距和填充时计算正确的宽度值。 改变他们的价值将是困难的,特别是对于复杂的布局。 考虑一下我写的这个小框架:
#content {
margin:0 auto 30px auto;
padding:0 30px 30px 30px;
width:900px;
}
#content .column {
float:left;
margin:0 20px 20px 20px;
}
#content .first {
margin-left:0;
}
#content .last {
margin-right:0;
}
.width_1-4 {
width:195px;
}
.width_1-3 {
width:273px;
}
.width_1-2 {
width:430px;
}
.width_3-4 {
width:645px;
}
.width_1-1 {
width:900px;
}
除非有三列,因此我在此处指定的值将会变动,因此在0+20+20+20+20+0
处的边距将会减少。 修改填充和边距很难; 我的整个宽度将不得不重新计算。 如果列的宽度包含填充和边距,我所需要做的就是改变宽度,我有我的布局。 我更少批评盒子模型,更希望理解为什么它被认为更好,因为我发现它很难合作。
我做错了这件事吗? 使用W3C的盒式模型似乎并不直观。 一些建议将非常感激。
谢谢!
一个字的答案 - -box-sizing
你选择你希望你的盒子模型如何工作。
并不是每个人都认为它会更好。 从Quirksmode中提取报价。
就我个人而言,我发现W3C的盒子模型与直觉相反。 引用自己:
从逻辑上说,一个盒子是从边界到边界的。 拿一个物理盒子,任何盒子。 把东西明显比盒子小。 要求任何人测量盒子的宽度。 他会测量盒子边缘('边界')之间的距离。 没有人会想到测量盒子的内容。
创建用于容纳内容的框的网页设计师关心框的可见宽度,关于从边界到边界的距离。 边框,而不是内容,是网站用户的视觉线索。 没有人对内容的宽度感兴趣。
我同意, border-box
模型更有意义(至少,它对我来说)。 对于原来的W3C盒子模型存在争议,导致CSS3 box-sizing
定义box-sizing
属性。
就我个人而言,我更喜欢 - 对我偶尔的耻辱 - IE的盒子模型。 正如OP指出的那样,使用预定义的宽度(从中减去边距,填充和边框宽度)似乎更有意义,而不是将宽度添加到这些宽度。
另一方面,我可以非常高兴地使用这两种模型,我真正想要的是实现之间的一致性,无论选择哪种实现。
链接地址: http://www.djcxy.com/p/2107.html