2011-10-04 60 views
0

是否有任何理由爲什麼有人會選擇使用CSS中的第n個函數,而不是通過jQuery來應用它,它與IE更兼容。使用Nth - CSS VS Jquery

它應該只在jQuery中完成開始,從未在樣式表中使用?

我希望這是有道理的,有人可以幫忙。

乾杯

+0

感謝大家提出您的意見,我們非常感謝。我想在將來我會使用CSS選項並在使用jQuery之前測試瀏覽器是什麼。 – Frank

回答

0

這些操作的CSS更快。簡而言之,它只是被解析並添加到元素中,但是如果你使用jQuery來做這件事,那麼就有額外的JS被解析,執行,一些循環,函數調用......並不是說小表上有明顯的時間差異,但仍然。

它是的方式較小,以使用CSS。如果你真的需要支持IE瀏覽器,你可以隨時檢查瀏覽器是否是IE瀏覽器(我認爲jq支持這個功能?),然後回退到js。 (這消除了我的上述點,但它仍然更好地使用CSS。)

3

不是每個人都使用自己的瀏覽器並支持Javascript。此外,通過Javascript應用樣式比CSS裁定更慢,因爲它需要腳本才能運行以應用樣式。

也就是說,使用jQuery爲不支持它的瀏覽器提供n-child兼容性可能是個好主意。

1

你現在使用jQuery/javascript的原因是因爲並非所有瀏覽器都支持nth css選擇器。

例如,對於:nth-child ...沒有IE8 < =支持:

http://reference.sitepoint.com/css/pseudoclass-nthchild

不過,我將它添加到CSS以供將來使用,並擺脫了腳本,一旦某瀏覽器數量在船上。

1

如果您根本不在乎與舊版IE的兼容性,那麼只能在您的CSS中使用:nth-child

許多網站根本不需要在舊版本的IE工作完美100%,尤其是當你考慮:nth-child通常用於眼睛糖果如zebra striping這並不重要。儘管速度差異並不是很大:在不支持:nth-child的瀏覽器中,Sizzle必須模擬它(慢),並且沒有辦法做到這一點。在支持:nth-child的瀏覽器中,它直接進入querySelectorAll,速度非常快。

Selectivizr是另一種選擇 - 它只運行在舊版本的IE中,並且不需要手動編寫實際的jQuery代碼($('..:nth-child(2n)').addClass(..);),所以在開發時,所有必須編寫的代碼都是CSS版。

0

我可能會同時使用 - 通過CSS規則(首選方式),並通過jQuery(有選擇性地用於非兼容瀏覽器)。希望隨着標準合規性的提高,腳本解決方案將不再需要。