为什么认为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

上一篇: Why is the W3C box model considered better?

下一篇: MySQL Fulltext Search Score Explained