Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

关于盒子模型的一些随想

  最近做的 UI 框架项目中,大家都希望将全局的盒子模型 Reset 成 border-box。在此之前我一直不敢这么做,怕因此掉进什么坑里,也许是因为这和浏览器默认的盒子模型相左吧,而且已经用惯了 content-box 其实也挺好的。不过 bootstrap 确实这么做了,咱也跟风试试吧 ~~

这是文艺复兴?

  在古代,IE 本来就是 border-box,现在在 IE6 以下的怪异模式上依然能看到它的身影。很难想象当初为什么要将浏览器的默认盒子模型换成 content-box。前段时间我问过很多人,于是得到了这个答案「当时搞出个这样与传统不同的东西就可以说 IE 是 SB 了」。如果真是这样的话,border-box 还是有机会重新闪耀起来的,目前看来是有这个势头。

它俩又不矛盾

  当初将浏览器默认盒子模型换成 content-box 也许是一些临界情况的考虑。因为当时还没有 box-sizing 这个属性,盒子模型只能有一个。当初决定的东西也不是「默认盒子模型」而是「标准盒子模型」。其实我也觉得 content-box 的逻辑更严谨,这里用「严谨」可能不太对。应该说「简洁」吧,或者如果用逻辑语言去描述这两种盒子模型的话,content-box 的描述会更简短。虽然有时不太方便,虽然有点反人类设计,它作为「标准盒子模型」还是非常适合的。而 border-box,甚至 padding-box,它们的设计更贴近人类的认知,使用起来会更方便。这些盒子模型的存在不该是矛盾的,每一种都有自己的优缺点,在需要的时候选择适合应用场景的盒子模型才是开发上该有的行为。

题外话

  其实所谓的「人性化」就意味着「不严谨」,人就是最没逻辑的东西,一旦人性化就参入了太多主观。世界有自己的规则,数组下标从 0 开始显然更合理,但一点都不人性化。我上小学的时候老师告诉我 0 是自然数,我就呵呵了,其实老师也呵呵。当时就是无法理解 0 为什么是自然数。直到我开始学编程,直到看到数学分析里的一堆证明都是基于这个先决条件的时候才明白 0 为什么应该纳入自然数。

网名:
54.226.58.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^