2011-06-06 101 views
4

在我读过的一些文章中,不鼓励使用* {margin:0; padding:0;},因为它会影响网站的性能。所以我转向reset.css样式表。关于* {margin:0; padding:0;}

但我想知道,它是如何影响性能?

回答

7

这个背后的推理在this Eric Meyer的帖子中讨论过。

这就是为什么这么多人归零 他们的填充和利润上 一切由通用 选择的方式。这是一个好开始,但它不幸意味着所有的 元素将其填充和 保留为零,包括像textareas和文本输入的表单元素 。在 的一些浏览器中,这些样式将会被忽略掉 。在其他情况下,不会有明显的效果。还有一些人可能会改变其输入的外观。 不幸的是,只有 知道,而且这个区域 可能会在未来几年内发生变化,比如 。

所以这就是为什么我不想使用 通用选择器,而是 明确列出了要重置的元素 。这样,我就不必为 担心消除表单元素。 (我 真的应该写在表单元素, 固有的 weirdnesses但这是另一天。)

这就是说,从this史蒂夫Souders的帖子下面的图表显示了一个测试页面加载时间的差异使用universal selectors与使用descendant selectors的页面进行比较。

enter image description here

+0

Opera 10上的2500ms?!?!?! – BoltClock 2011-06-06 13:53:30

0

我认为你阅读过的网站需要检查它的头部,重置样式表是一种平衡游戏场的方法。开销太微不足道了,特别是对于现代浏览器来说,这并没有什么不同。

0

使用*{margin:0;padding:0;}stylesheet不会影响性能,而且在处理各种格式问题很有帮助。

使用单独的reset.css确实有一些性能问题,因为您迫使用户从服务器再请求一个文件。在事物的宏伟计划中,高速线路上的几kb是没有的。但另一个移动浏览器上的人的文件可能太多了。

2

它会影响性能,因为浏览器引擎必须将此样式应用于页面上的每个元素,这将导致特别在具有大量元素的大页面中进行繁重的渲染,并且此方法也是不好的做法,因为它可以删除一个很好的默认样式一些元素

您可以优化这段代码通过降低它的范围,想使用它只是一些元素,使问题这样

h1,ul {
margin:0;

padding:0;
}

-1
body {padding:0;margin:0;} 

它影响该网页显示,因为没有它的使用,我们必须

margin-left:-7px; 
margin-top:-7px; 

等等取代,以避免对所述网页的左侧和顶部的窄的白色条带。

相关问题