【发布时间】:2011-10-13 20:28:28
【问题描述】:
我想知道执行此语法的哪种方法更适合浏览器:
第一:
margin: 0;
第二:
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
第三:
margin: 0 0;
最后,除了0px; 之外,同样的问题。
【问题讨论】:
标签: css performance browser stylesheet
我想知道执行此语法的哪种方法更适合浏览器:
第一:
margin: 0;
第二:
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
第三:
margin: 0 0;
最后,除了0px; 之外,同样的问题。
【问题讨论】:
标签: css performance browser stylesheet
在我看来,即使您使用 0,您也应该始终指定像 0px 这样的单位,以避免在将值更改为非零时忘记添加单位,但这是一个问题个人喜好。
对于浏览器,这些都是等价的。浏览器理解任何与 CSS 下载时间相关的时间几乎可以忽略不计。出于这个原因,margin: 0px; 是最好的,因为它只有 12 字节,而您发布的最长版本(添加了 `px)单位)是 69 字节,因此下载的数据量几乎是 6 倍。
无论如何,60 字节并不多,但如果你重复了很多,那么当它到线时,更短的语法会更快。阅读起来也更好:)
【讨论】:
"You should specify a unit like 0px all the time even when you're using 0." - 为什么?
0。我的推理在这里涵盖:stackoverflow.com/questions/5359222/…
这可能不是您要寻找的答案,但我觉得...
就计算机性能而言,这是 SOOOO 无关紧要的。更重要的是可读性和可维护性。对于贵公司在街上雇佣的人,您认为哪种变体最容易维护和理解?那是你应该选择的那个。
【讨论】:
这完全取决于浏览器的内部实现。对于任何给定的浏览器来说,最详细的定义很可能会稍微多一点工作,因为有更多的文本需要解析。但在实践中,CSS 引擎的速度非常快。这些都不足以影响处理时间。
【讨论】:
“工作”可以忽略不计。我想,从技术上讲,第二个会做更多的工作,因为它必须再解析 3 行而不是 1 行。第一个是我建议的方式。
就个人而言,我总是这样做:
margin: 0px 0px 0px 0px;
如果我决定将来改变某些东西,只是为了提供帮助。
不过,这真的不重要。它们之间的差异可以忽略不计
【讨论】:
出于性能原因,我也想知道这一点。
如果您关心的是最大性能 - 假设浏览器没有重大差异 - 那么 margin: 0 将有助于降低 CSS 文件的整体重量。
如果你经常使用 CSS,那么在心里推断 margin: 0;到简写甚至边距:4px 0 3px;应该不会有太大的飞跃。为什么要浪费时间打字和字重?
【讨论】: