日期:2014-05-17  浏览次数:20580 次

欢迎各位高手来讨论: BOX-MODEL
注:这里只对box-model提出疑问,不是在质疑web标准的所有内容。

div   {width:200px}

标准模式中,都说200指div的Content宽度
而在IE以前的盒模型中,200指div的border+padding+Content之和,现在均称之为BUG

多少年来,我们在各种开发环境中都是按照那种BUG方案定义的,
比如Delphi(别的环境还真不是很清楚,我大胆地估计也是如此:))
难道这么多年来我们都错了?

现在的问题是,在标准模式下有些需求不用JS只用CSS无法实现

如果是以前那个BUG模型,我似乎还没有发现不用JS无法实现的类似需求

不知道屏幕前的您是否能提供一个用标准模式下可以不用JS实现而在BUG模式下无法实现的需求

如果有这么一个需求我才能相信标准模式的确有它的道理

反正现在我是觉得标准模式莫明其妙

不知道网上有没有说标准box-model为什么要那样来标准的文章,
如果谁能告诉我,非常感谢!!

如果您能不用JS,在标准模式下也能解决我的这个需求,也万分感谢!!
http://community.csdn.net/Expert/topic/5387/5387412.xml?temp=4.044741E-02



------解决方案--------------------
1.你的要求有问题:不使用css hack,左中右不使用嵌套。不用css hack不可能实现跨浏览器支持,这是因为浏览器对css有问题。我知道浏览器对table实现没问题,用table就可以保持一致性,但如果要执行标准的话,就必须通过css hack来保持一致性。至于不允许嵌套,这个我觉得莫名其妙,如果你觉得嵌套偏离语义,导致更多的html,难道table不是吗?而且table在这方面的问题更严重,所以在不嵌套的情况下无法实现的布局,我就选择嵌套,也就是那个较小的错误,而table则是较大的错误。
------解决方案--------------------
2.你的设计本身就有问题,你用table的思路去做一个设计是无论如何都不可能fit进css设计中的,你必须从css设计的角度出发,来实现一个效果,并且“这个效果看起来也很漂亮,不比table才能实现的效果难看”。其实这是很多习惯了table设计的设计师都会遇到的问题,也就是他们总希望把东西照搬过来直接用,但实际上不行,你必须换种思维。同时,你的目标不应该是“看来起来和table的一样”,而是“看起来和table的不一样,不过一样美,甚至更美”。
------解决方案--------------------
3.关于法律的比喻,应该这样说:你原本生存在一个别人杀了你兄弟你可以马上把他兄弟做掉的社会,而现在迁移到另外一个社会不允许你如此“合法报复”而什么都需要经过“法律裁决”,那么你肯定不会习惯,然而法律这样制订是有背后的道理,你要么就放下你原来的风俗加入这个新的社会,要么就继续在原来的社会生存下去。
------解决方案--------------------
我打不开以前的帖子,所以不能看到你描述的问题,不过 http://cssplay.co.uk/layouts/bodyfix.html 这个页面应该能符合你的要求