2011-03-30 18 views
0

我知道在CSS中,類通常被重新設置爲可以在頁面上多次使用的元素,ID是針對單次使用的元素。話雖如此,我注意到很多人似乎都調用容器/包裝器元素Classes而不是ID,儘管它們只在頁面上使用過一次。爲什麼是這樣?我錯過了什麼?爲什麼一些一次性使用的元素在CSS中代替了ID?

例如:如果您檢查這個非常頁面,你會發現<body>標籤被列爲一類元素,是footwrap <div>。大多數其他元素被列爲ID。

在此先感謝。

回答

1

大多數情況下,在頁面中出現一次的元素中使用類意味着我可以在不同頁面中使用具有不同頁面的相同標記。

例如,我可以在主頁面中爲我的body標記分配一個類,在輔助頁面中爲另一個類分配一個類。 body的內容和結構可以相同,但風格不同。

+0

你是說在主頁上你有''和secondary:''?這與使用ID有什麼不同? – 2012-05-09 02:15:22

0

ID是用於標記一個獨特的元素 - 即,用於使用Javascript定位特定元素。 CLASS是用於分類的東西。這個區別與JS比CSS更重要。

您在不同網站上看到差異的主要原因是因爲作者濫用這些屬性,或者因爲其中一個或另一個在代碼和標記的上下文中更有意義。

<img id="name_of_my_image" class="category_of_image"> 
0

,我能想到的把我的頭頂部的唯一原因是,如果類是全局類(不針對任何單頁),並有可能性多次使用的

例如,有人可能會實施一個名爲.side-bar的類。在一個頁面上,他們可能只有一個side-bar的實例,但在其網站的另一個頁面上,它們可能有兩個。

否則,我會假設開發人員並沒有真正考慮他們如何將頁面放在一起,並將所有內容都封閉在類中。

+0

我在想什麼類似的東西 - 但我很難想到在HTML頁面中有兩個主體元素,因此需要Class指定。 – ServAce85 2011-03-30 02:30:44

0

有沒有要求如果一個屬性只在一個頁面上使用一次,它必須是一個id而不是一個類。但是,就CSS和JavaScript性能而言,如果您知道該標籤只能使用一次,則使用id更好。

一個可以接受的用例是,如果站點有一個單獨的CSS文件,在每個頁面上爲了緩存的原因而被調用,以及多種類型的頁面應該有類似的行爲。例如,可以在body中爲類似樣式的多個頁面提供類,以便您可以堆疊這些類以獲得各種效果。

一個虛構的例子:

<body class="article print-only mobile"> 

與:

<body class="home print-only desktop"> 

與:

<body class="home mobile logged-in"> 

在這種情況下,你可能希望在組合使用不同的屬性來實現預期的效果。

0

有一個IMO愚蠢的工具,像CSS lint這樣的ID愚蠢的想法,ID是邪惡的。我認爲這個觀點的基礎是人們混淆了對敵人的特異性,而像我這樣的人認爲這是選擇器數量是可維護CSS的敵人。我認爲,喜歡像我這樣的更分層的方法的人與更主要是模塊/組件專用的方法之間也存在意見分歧。

十年來,我從未感受到使用!important的衝動或需要。我目前正在與一個非常棒的團隊合作,但是他們跟隨班級的事情。他們偶然發現!重要的必要和可接受的用法。

我通常會在視線內發出聲明,很少需要真正解決任何問題。我不太願意在類別代碼庫中這樣做。這是個問題。謹慎使用ID來定義獨特的事物,包括覆蓋獨特節上下文中主題的變體,但我的立場是,您應該使用它們。關鍵的是永遠不要增加超過必要的特異性。這就是人們開始製造混亂,CSS選擇器武器競賽隨之而來的地方,每個人都希望確保沒有人不小心破壞他們的東西。在一般開發中這是一個糟糕的計劃,但是在你想要嗅探的CSS中,特別糟糕的是 - 檢查任何時候,似乎有必要使用超過2-3個選擇器,而不是像>和+這樣的東西。

相關問題