我有一個div有一些頂部和底部有邊界的孩子。我希望該部門的第一個孩子和最後一個孩子沒有這些邊界。做.myDiv > :first-child
太慢了,因爲:第一個孩子首先匹配頁面上的所有第一個孩子。我可以爲第一個元素添加一個.first
類,但子元素並不總是保證在那裏。要確定哪一個是最重要的因素,將會有複雜的邏輯。:第一個孩子太慢了。備擇方案?
完成此操作的最佳做法是什麼?
我有一個div有一些頂部和底部有邊界的孩子。我希望該部門的第一個孩子和最後一個孩子沒有這些邊界。做.myDiv > :first-child
太慢了,因爲:第一個孩子首先匹配頁面上的所有第一個孩子。我可以爲第一個元素添加一個.first
類,但子元素並不總是保證在那裏。要確定哪一個是最重要的因素,將會有複雜的邏輯。:第一個孩子太慢了。備擇方案?
完成此操作的最佳做法是什麼?
不是你的問題的答案(對於評論來說太大了),但是你真的有一個巨大的頁面,有成千上萬的元素在使用慢速選擇器時真的會出現性能問題嗎?因爲如果不是這樣的話,我會說使用:first-child
僞類是完全沒問題的。
想一想每天使用JavaScript端DOM操作完成的所有大得多,更糟糕的性能暴行。從優化的角度來看,許多jQuery選擇器都是一場災難。然而,時下的平均計算機能力只是簡化大多數性能問題。
不幸的是,這將會是一個有數千個元素的應用程序,而不是一個頁面。我很樂意在簡單的頁面中忽略這個問題。 – 2010-11-02 21:21:30
@Jason啊,好吧。那麼恐怕我認爲沒有比在第一個元素上掌握類的更好的方法,或者爲了獲得最佳性能,創建'id's。這看起來像狗屎:)但如果這是一個真正的性能問題,它可能是值得的 – 2010-11-02 21:22:49
不幸的是,所有的CSS僞類和僞元素都不利於性能,並且可能會導致在複雜網站上使用速度急劇下降等。較新的瀏覽器往往處理得更好,但IE8或較慢設備上的移動瀏覽器等較舊的瀏覽器不會:( – tomasz86 2013-11-02 00:01:38
如果你問,我想你的頁面渲染時間很慢。但我堅信,慢速頁面渲染的原因可能不是由於在CSS上使用此僞選擇器造成的。在上下文中可能存在更重要的因素,並降低整體頁面性能。
你使用透明圖像或元素?或者可能在你的JavaScript中使用僞選擇器?
這在小網站或博客上可能並不重要,但寫得不好或未優化的CSS可能是一個巨大的問題更復雜的,特別是僞選擇器和僞元素是性能最差的之一。 – tomasz86 2013-11-02 00:06:32
這是一個*真的是太慢*情況(例如有一個示例url?)或一個*假設太慢*的情況? – 2010-11-02 22:42:23