學(xué)習(xí)了類(lèi)選擇器和ID選擇器,我們會(huì)發(fā)現(xiàn)他們之間有很多的相似處,是不是兩者可以通用呢?
我們不要著急先來(lái)總結(jié)一下他們的相同點(diǎn)和不同點(diǎn):
相同點(diǎn):可以應(yīng)用于任何元素
不同點(diǎn):
1、ID選擇器只能在文檔中使用一次。與類(lèi)選擇器不同,在一個(gè)HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類(lèi)選擇器可以使用多次。
下面代碼是正確的:
可是我再也沒(méi)遇到一個(gè)像福貴這樣令我難忘的人了,對(duì)自己的經(jīng)歷如此清楚,又能如此精彩地講述自己是如何衰老的。這樣的老人在鄉(xiāng)間實(shí)在是難以遇上,也許是困苦的生活損壞了他們的記憶,面對(duì)往事他們通常顯得木訥,常常以不知所措的微笑搪塞過(guò)去。
而下面代碼是錯(cuò)誤的:
可是我再也沒(méi)遇到一個(gè)像福貴這樣令我難忘的人了,對(duì)自己的經(jīng)歷如此清楚,又能如此精彩地講述自己是如何衰老的。這樣的老人在鄉(xiāng)間實(shí)在是難以遇上,也許是困苦的生活損壞了他們的記憶,面對(duì)往事他們通常顯得木訥,常常以不知所措的微笑搪塞過(guò)去。
2、可以使用類(lèi)選擇器詞列表方法為一個(gè)元素同時(shí)設(shè)置多個(gè)樣式。我們可以為一個(gè)元素同時(shí)設(shè)多個(gè)樣式,但只可以用類(lèi)選擇器的方法實(shí)現(xiàn),ID選擇器是不可以的(不能使用 ID 詞列表)。
id就像身份證號(hào)碼,是唯一的,該身份證號(hào)碼就能代表你。一個(gè)人不能有兩個(gè)身份證號(hào)碼,也不能一個(gè)身份證號(hào)碼表示兩個(gè)人。
而class就像昵稱(chēng),該昵稱(chēng)也能代表你。一個(gè)人可以有多個(gè)昵稱(chēng),也可以多個(gè)人用同個(gè)昵稱(chēng)。
那么時(shí)候用id,什么時(shí)候用class?
W3C標(biāo)準(zhǔn)這樣規(guī)定的,在同一個(gè)頁(yè)面內(nèi),不允許有相同名字的id對(duì)象出現(xiàn),但是允許相同名字的class。
這樣,一般網(wǎng)站分為頭,體,腳部分,因?yàn)榭紤]到它們?cè)谕粋€(gè)頁(yè)面只會(huì)出現(xiàn)一次,所以用id。
其他的,比如說(shuō)你定義了一個(gè)顏色為red的class,在同一個(gè)頁(yè)面也許要多次用到,就用class定義。
另外,當(dāng)頁(yè)面中用到j(luò)s或者要?jiǎng)討B(tài)調(diào)用對(duì)象的時(shí)候,要用到id,所以要根據(jù)自己的情況運(yùn)用。
成熟網(wǎng)站里,你很少看到css里用id選擇器的,都是用class,id選擇器留給寫(xiě)js的人用,這樣避免沖突。
id是用于一個(gè)特定的樣式的(唯一性),并且只能使用一次。class是用于一組相同樣式的(相似性),可以使用多次。
不應(yīng)該用使用次數(shù)來(lái)說(shuō)明,應(yīng)該說(shuō)id只能指定唯一元素,而class可以指定多個(gè)元素,將這些元素劃分為一類(lèi)。