更新時(shí)間:2023-04-06 來源:黑馬程序員 瀏覽量:
書寫CSS樣式表時(shí),可以使用CSS基礎(chǔ)選擇器選中HTML元素。但是在實(shí)際網(wǎng)站開發(fā)中,一個(gè)網(wǎng)頁可能包含成千上萬的HTML元素,如果僅使用CSS基礎(chǔ)選擇器是遠(yuǎn)遠(yuǎn)不夠的。為此,CSS提供了兒種復(fù)合選擇器,實(shí)現(xiàn)了更強(qiáng)、更方便的選擇功能。復(fù)合選擇器是由兩個(gè)或多個(gè)基礎(chǔ)選擇器通過不同的方式組合而成的。CSS復(fù)合選擇器包括標(biāo)簽指定式選擇器、后代選擇器和并集選擇器,具體介紹如下。
(1)標(biāo)簽指定式選擇器
標(biāo)簽指定式選擇器又稱為“交集選擇器”,由兩個(gè)選擇器構(gòu)成,一個(gè)為標(biāo)簽選擇器,另一個(gè)為class選擇器或id選擇器,兩個(gè)選擇器之間不能有空格,例如,“h3.special”或“pone”。
下面通過一個(gè)案例對標(biāo)簽指定式選擇器做具體演示。
<!doctype html> <html> <head> <meat charset="utf-8"> <title>標(biāo)簽指定式選擇器的應(yīng)用</title> <style type="text/css"> p{ color:blue;} ·speclal{color:green;} p.special{color:red;} /*標(biāo)簽指定式選擇器*/ </style> </head> (body> <p>普通段落文本(藍(lán)色)</p> <p clasa="apecial“>指定了.special類的段落文本(紅色)</p> <h3 class="spectal">指定了,special類的標(biāo)題文本(綠色)</h3> </body> </html>上例中定義了<p>標(biāo)簽和“special”類的樣式;此外,還單獨(dú)定義了“pspecial”,用于控制特殊顯示的樣式。
(2)后代選擇器
后代選擇器用于選擇元素或元素組的后代,其定義方法就是把外層標(biāo)簽寫在前面,內(nèi)層標(biāo)簽寫在后面,中間用空格分隔。當(dāng)標(biāo)簽發(fā)生嵌套時(shí),內(nèi)層標(biāo)簽就成為外層標(biāo)簽的“后代”。
如果<p>標(biāo)簽內(nèi)嵌套<strong>標(biāo)簽,就可以使用后代選擇器對其中的<strong>標(biāo)簽進(jìn)行控制,如下。
<!doctype htnl> <html> <head> <meta charset="utf-8"> <title>后代選擇器</title> <style type-"text/css"> p strong{color:red:} /*后代選擇器*/ strong{color:blue:} </style> </head> <body> <p>段落文本<strong>嵌套在段落中,使用strong標(biāo)簽定義的文本(紅色)。</strong></p> <strong>嵌套之外由strong標(biāo)簽定義的文本(藍(lán)色)。</strong> </body> </html>
定義了兩個(gè)<strong>標(biāo)簽,并將第一個(gè)<strong>標(biāo)簽嵌套在<p>標(biāo)簽中,然后分別設(shè)置<strong>標(biāo)簽和“p strong”的樣式。運(yùn)行效果如圖所示。
通過圖片可以看出后代選擇器p strong定義的樣式僅適用于嵌套在<p>標(biāo)簽中的<strong>標(biāo)簽,其他的<strong>標(biāo)簽不受影響。需要說明的是,后代選擇器不局限于應(yīng)用在兩個(gè)元素中,如需要加入更多的元素,只需在元素之間加上空格即可。如果例3-l1中的標(biāo)簽中還嵌套了一個(gè)<em>標(biāo)簽,要想控制這個(gè)<em>標(biāo)簽,可以使用“pstrong em”選中該<em>標(biāo)簽。
(3)并集選擇器
并集選擇器的各個(gè)選擇器通過英文逗號(hào)連接而成,任何形式的選擇器(包括標(biāo)簽選擇器、類選擇器和i選擇器),都可以作為并集選擇器的一部分。如果某些選擇器定義的樣式完全相同或部分相同,可以利用并集選擇器為它們定義相同的CSS樣式。
如果在頁面中有2個(gè)標(biāo)題和3個(gè)段落且它們的字號(hào)和顏色相同,同時(shí)其中一個(gè)標(biāo)題和兩個(gè)段落文本有下畫線效果,這時(shí)就可以使用并集選擇器定義CSS樣式,如下例所示。
<!doctype html> <html> <head> <meta charaet="utf-8"> <title>井集選擇器</title> <style type="text/css"> h2,h3,p{color:red; font-size:14px:}/*不同標(biāo)簽組成的并集選擇器*/ h3,.special,#one{text-decoration:underline;} /*標(biāo)簽選擇器、類選擇器、id選擇器組成的并集選擇器*/ </style> </head> <body> <h2>二級(jí)標(biāo)題文本。</h2> <h3>三級(jí)標(biāo)題文本,加下畫線,</h3> <p claas="special">段落文本1,加下畫線。</p> <p>段落文本2,普通文本。</p> <p id="one">段落文本3,加下畫線。</p> </body> </html>
在例3-12中,使用由不同標(biāo)簽組成的并集選擇器“h2.h3.p”控制所有標(biāo)題和段落的字號(hào)和顏色。然后,使用由標(biāo)簽選擇器、類選擇器、id選擇器組成的并集選擇器“h3.special,fhfone”定義某些文本的下畫線效果。