2011-06-06 75 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; 

等等取代,以避免對所述網頁的左側和頂部的窄的白色條帶。