是不是習慣使用它的id來設計一個元素,還是應該引用每個引用相應css的元素的樣式?不好的css練習直接通過它們的id來設計元素而不是引用css類?
<div id="test">
</div>
對:
<div id="test" class="testClass">
</div>
#test{
color:blue;
}
.testClass {
color:blue
}
是不是習慣使用它的id來設計一個元素,還是應該引用每個引用相應css的元素的樣式?不好的css練習直接通過它們的id來設計元素而不是引用css類?
<div id="test">
</div>
對:
<div id="test" class="testClass">
</div>
#test{
color:blue;
}
.testClass {
color:blue
}
這不是一個壞的或好的做法。 id
選擇器的用途與class
不同。
如果您打算只設計這一個元素,而不是在其他地方重新使用樣式 - id
是您的選擇。如果您需要很多類似的div
-s具有相同的樣式 - 請使用class
的ID是基本相同的事,作爲一個類,ID是稍快,而應僅被一個元件上使用的,而類可以用於許多。
如果你想讓多個元素具有藍色的顏色,那麼你需要使用一個類,否則一個id很好。
ID的號碼是唯一的。應該只有一個元素在您的頁面上具有該ID。在造型方面,我不認爲這樣做是不好的做法,但ID在特異性方面取得勝利。基本上,選擇器越具體,在涉及到相互矛盾的樣式時就會越偏好,所以應用於ID的任何樣式都會覆蓋其他樣式。
p has a specificity of 1 (1 HTML selector)
div p has a specificity of 2 (2 HTML selectors; 1+1)
.tree has a specificity of 10 (1 class selector)
div p.tree has a specificity of 12 (2 HTML selectors and a class selector; 1+1+10)
#baobab has a specificity of 100 (1 id selector)
body #content .alternative p has a specificity of 112 (HTML selector, id selector, class selector, HTML selector; 1+100+10+1)
ID VS類
#
id
的ID必須在文檔中唯一的,並且經常被用於檢索使用的document.getElementById的元素。在某些文檔中(尤其是HTML,XUL和SVG),元素的id可以被指定爲元素的屬性,如下所示:。
但是,如果不在DOCTYPE中正確指定id屬性的類型,則無法在自定義XML文檔中使用此屬性。
id的其他常見用法包括在使用CSS對文檔進行樣式化時使用元素的ID作爲選擇器。
請注意,ID區分大小寫,但不應創建僅在大寫區分方面不同的ID(請參閱類和ID名稱中的區分大小寫)。
分配一個類名稱或一組類名的給一個元素。您可以將相同的類名稱或名稱分配給任意數量的元素。如果您指定多個類名稱,則它們必須用空格字符分隔。
元素的類的名字有兩個關鍵角色:
作爲一個樣式表選擇器,用於當作者想要的樣式信息分配到一組元素。 瀏覽器的一般用法。 該類可用於使用CSS來設置SVG內容的樣式。
這不是一個壞習慣,但它取決於你的使用。
如果您爲頁面中的每個元素設置了一些規則,那麼很快就無法理解發生了什麼,您的css會變成一個非常長的文件。
定義一個類允許多個元素使用相同的一組規則,所以你應該設計你的頁面來允許這樣的行爲。
通常情況下,你應該混合策略,你可以,例如,風格與id頁面的一些「重要」元素,如標題,頁腳,正文等,而其他作品或組件應該使用類對齊。
我不這麼認爲,如果你在風格中使用ID或Class,它會產生很大的差異。類選擇器用於指定一組元素的樣式。與id選擇器不同,類選擇器通常用於多個元素。
更多的參考,你可以看到這個鏈接
在JavaScript中,ID起着重要的作用。如果您使用ID來搜索任何DOM元素,那麼隨着JavaScript Parser在相應頁面上返回具有該ID的第一個元素的值,搜索將會更快。而如果你使用類然後JS搜索整個頁面,並收集所有元素與該類。由於這個搜索變得有點慢。
看到這個答案:http://stackoverflow.com/questions/11671153/should-i-aim-to-add-a-class-id-to-everything-or-use-other-selectors/11671266#11671266 – BonyT 2012-07-27 11:00:50
這需要意見和討論,而不是基於事實的答案。這也意味着一個錯誤的「css類」概念(沒有這樣的東西,只有「css id」)。 – 2012-07-27 11:01:18
沒有「Css類」這樣的東西? - MS可能會不同意你在那裏:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.cssclass(v=vs.71).aspx – BonyT 2012-07-27 11:03:00