2013-01-17 55 views
0

一個noob的位需要一些真實世界的建議。使用css語法或自定義類

我剛剛閱讀了一篇由mozilla撰寫的關於使用css選擇器的文章。

基本上,他們說沒有使用複雜的選擇樹木,例如:

.class-a .class-b > .class-c is better expressed as custom-class-abc 

顯然,他們會因爲第二個選項將是對瀏覽器的性能更好,但如果這是最好的解決方案,那麼它會讓很多CSS基礎變得冗餘。

我有一個UL包含LI的包含A的。我的第一個A需要區別對待,所以我使用的語法如下:

#footer li:first-child a {} 

如果我是跟着Mozillas最佳實踐,這將是:

#footer a.first or #footer .first (after adding a class to the first A element) 

有足夠的學習,因爲它是的,所以如果在現實世界中這一切都有效,我們將會很感激。

+1

您能添加一篇文章鏈接嗎? – Anil

+1

CSS速度如此之快,即使有巨大的選擇器,性能幾乎從來都不是問題。不使用複雜選擇器的原因是它使維護代碼變得更加困難。 – zzzzBov

+0

「那麼它就會讓很多CSS基礎變得冗餘」這就是爲什麼我不認真看待這篇文章。 – BoltClock

回答

1

我認爲這篇文章可能會過時,以迎合笨笨的瀏覽器,但大多數最新的瀏覽器都明白:現在的第一個孩子。你的例子

#footer li:first-child a {} 

是我如何搖滾。 ie8不理解:最後一個孩子記錄。

2

你的選擇器就好了。具有不讀你所提到的文章中,我猜他們的意思是避免像

html body div.wrapper div.navigation ul.nav li:first-child a.item { } 

的東西,只是做

.nav li:first-child a.item 

article給多一點點,爲什麼少選擇是獲得更好的性能。當然,有一些極端的事情,mozilla應該推薦如何儘可能快地做出事情,但選擇器已經非常快,所以在大多數情況下,它沒有什麼區別。

在一個相關的說明讀取在CSS中的特異性也可以幫助您確定您實際需要選擇多少。 http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

+0

還要記住MDN文章最初是爲XUL樣式而編寫的,因爲Firefox的UI很多都是由CSS控制的。Web頁面比XUL主題更加臃腫和不可預知,因此並非所有內容都需要遵循該信件(如上所述,極端情況)。我個人最好的建議是保持平衡,只優化你絕對不能忽視的瓶頸。 – BoltClock