CSS 的 ID 和 Class 有什麼區別?如何正確使用它們?

時間 2021-05-06 17:18:30

1樓:龍騰道默默地

請勿使用id,除非用於錨定位。將id從css和js手中還給html和url。

請勿使用全域性變數,除非你做的是api。將全域性變數還給共識性規範的介面。

2樓:

id和class都可以寫式樣,但要對複數的元素設定同樣的式樣只有用class。

id更加多的作用是用來標記唯一,比如後端生成的序列號。

因為id的優先順序比class高很多,所以通常不建議使用id寫式樣。因為在迭代過程中,修改式樣每次都要查詢是否有id覆蓋掉修改的式樣。

指名道姓就用ID,找一類同樣的就用class

3樓:kuitos

update 2016.10.19 --------

看了下大部分答案,發現大家(包括我)都忽略了乙個最重要的點,那就是 id 作為 unique identifier 究竟是怎麼定義的,最新的 html5 spec 中這樣寫道:

Note:There are no other restrictions on what form an ID can take; in particular, IDs can consist of just digits, start with a digit, start with an underscore, consist of just punctuation, etc.

Note:An element's unique identifier can be used for a variety of purposes, most notably as a way to link to specific parts of a document using fragment identifiers, as a way to target an element when scripting, and as a way to style a specific element from CSS.

Identifiers are opaque strings. Particular meanings should not be derived from the value of the id attribute.

也就是說,id 通常應該由純數字組成,且不應該包含特別的含義。

以下是原回答

這種問題還得看標準怎麼描述的:

id:The id attribute specifies its element's unique identifier (ID). [DOM]

class:There are no additional restrictions on the tokens authors can use in the class attribute,but authors are encouraged to use values that describe the nature of the content, rather than values that describe the desired presentation of the content.

簡言之就是,id是身份證應用中唯一。class是類別標識,表明當前元素屬於哪一類。關於用法上,最容易誤用的就是class,按照w3c的描述,class應該是描述內容的本質(語義)的而不是內容長什麼樣的,也就是說,你不應該寫非語義化的class。

典型的反面教材就是 class="fl mr10" 之流。

知乎上賀老早前就答過幾次這類問題,可以去搜一下。嫌麻煩的也可以看看我整理的這篇 Web語義化標準解讀 · Issue #33 · kuitos/kuitos.github.

io · GitHub

4樓:

id乙個頁面應該是唯一的

class 不是唯一的

乙個頁面存在多個id 如果js在乙個container裡面去取這個id 在chrome等高階瀏覽器裡不會有問題在IE9以下會取不到

如果寫的是元件乙個頁面可能存在多個元件例項所以這個時候最好不要使用id除非有什麼需要全域性處理的問題

5樓:Mapk Volkov

說下我自己負責的組做專案的心得吧。css只用class來寫並有專門的class通用和私有模組命名,id具有唯一性且優先順序太高只作為js操作dom的掛鉤全部不新增樣式,如果使用jq或zepto的話,操作的class類名一般也不加樣式,這部分的class命名和id一樣由js來制定。這樣做比較適合大型,多人維護並且需要長期迭代的專案,css的class類名和js操作的id、class類完全分離,這樣產品的ui或者產品互動邏輯變動二者互不影響,易維護。

6樓:

我來回答下如何使用吧。

id、class只有唯一性、普遍性上的區別。雖然,樣式上,指令碼上都可以使用選擇器來選中想要的元素。但是,如果想要選中的元素是唯一的話,那顯然沒有id來的便捷、效率。

7樓:

整個DOM中不能出現id名是一樣的元素,在同乙個頁面中定義的#ID選擇器在這個頁面中只能被使用一次,CSS中寫法是 #idName,在其他頁面中可以使用同名ID,呼叫同名ID css也沒有問題

而class可以繫結給多個元素,定義的樣式可以重複使用在css中寫法是.className

8樓:zhiyelee

1、ID是身份證,Class是姓名。前者唯一,後者可以重複。

2、css的特殊性方面:ID權值是100,class權值是010

9樓:瓜牛

顧名思義。

ID是英文IDentity的縮寫,ID是身份標識號碼的意思,是乙個編碼,而且是唯一的。在Html中給乙個Dom節點定義乙個ID就是給了他乙個身份識別。

Class就是類的意思,表示一型別的樣式,用來定義通用的樣式然後給需要運用到這個樣式的Dom節點賦予這個Class。

10樓:Milo

ID具有唯一性,Class具有普遍性。

ID是唯一的,所以盡量在結構外圍使用,通常用於頁面布局。

Class是可重複的,所以盡量在結構內部使用,通常用於樣式定義。

ID的樣式優先順序高於Class。

有哪些驚豔的遊戲 ID 和名字?

唯羙 她還未嫁我再等等 從未擁有何談失去 別把故事說給他聽 感情就是後人乘涼 他憑什麼後來居上 她也曾炫耀過我 我預判了她的離開 你與秋風皆是過客 相簿裡的她好看嗎 我永遠是第二選擇 沒能成為她的故事 其實我從未離開你 原來我只是朋友啊 後來的她都像你 我希望你一切都好 成了故事裡的舔狗 Howar...

CSS 有什麼奇技淫巧?

套路小迷糊 某些爬蟲的作者對 CSS 理解比較簡單,以至於我們可以利用這一點來反爬。題記 譬如說您在樣式檔案中這樣寫 h s然後在頁面中這樣使用 class s style display none 這是乙個有價值的文字 span 爬蟲陷阱 class h style display inline ...

有什麼特別好聽的ID嗎?

你的溫柔像羽毛 我想我是太過依賴 你的溫柔像羽毛 說了再見 口紅待在桌腳 幫你撐傘 別讓我的地球變暗 夢裡的乾淨天空 認真的男人最美麗 秋刀魚的滋味 夕陽餘暉羞怯似醉 花落的那一天 冷咖啡離開了杯墊 最美的不是下雨天 面向海風 毀壞的沙雕別重來 止戰之殤 想回到過去 得飄得飄得咿的飄 問誰在等你靠岸...