1. 程式人生 > >006---css複合選擇器(交集選擇器,並集選擇器,後代選擇器,子元素選擇器,屬性選擇器,偽元素選擇器)

006---css複合選擇器(交集選擇器,並集選擇器,後代選擇器,子元素選擇器,屬性選擇器,偽元素選擇器)

複合選擇器是由兩個或讀個基礎選擇器,通過不同的方式組合成的,目的是為了可以選擇更準確的目標元素。

一、交集選擇器


例如:

<div class="orange">I am P1</div>
<p class="orange">I am P2</p>
.orange {
	color: orange;
}
p.orange {
	font-size: 40px;
}

效果是:


p.orange {
	font-size: 40px;
}

這段程式碼的p.orange{}就是交集選擇器, 中間沒用空格。

圖解:

                                        

二、並集選擇器

並集選擇器是各個選擇器通過逗號連線而成的,任何形式的選擇器,都可以作為並集選擇器的一部分。如果某些選擇器定義的樣式完全相同,或部分相同,就可以使用並集選擇器、

語法:

                        

例如:

<div>I am P1</div>
<p>I am P2</p>
div,
p {
	color: orange;
}

效果:


圖解:

                            

三、後代選擇器

後代選擇器又稱為包含選擇器,用來選擇元素或元素組的後代。其寫法就是把外層標籤寫在前面,中間用空格分隔。當標籤發生巢狀時,內層標籤就成為外層標籤的後代。

        

例如:

<p>I am P1</p>
<div>
	<p>I am P2</p>
</div>
p {
	color: skyblue;
}

div p {
	font-size: 40px;
}

效果展示:


圖解:

            

四、子元素選擇器

子元素選擇器只能選擇作為其元素子元素的元素。其寫法就是父親標籤寫在前面,子級標籤寫在後面,中間跟一個“>”進行連線,注意,符號左右兩側各保留一個空格。

                    

例如:

<ul class="nav">
	<li> 一級選單
		<ul>
			<li>二級選單</li>
			<li>二級選單</li>
			<li>二級選單</li>
		</ul>
	</li>
</ul>
.nav > li {
	color: skyblue;
}

效果是:


但是樣式為:

.nav li {
	color: red;
}
.nav > li {
	color: skyblue;
}

效果卻是這樣:


像第二個樣式,子級元素選擇器會覆蓋後代選擇器,但是隻覆蓋了一級選單(.nav的兒子)。

五、屬性選擇器


例如:

<a href="#" title="aa">百度</a>
<a href="#" title="bb">新浪</a>
<a href="#">jj</a>
<a href="#">yy</a>
<a href="#">xx</a>
a[title] {
	color: skyblue;
}
效果展示(只選中a標籤裡有title屬性的a標籤):

又例如:

<input type="text" value="輸入">
<input type="text" value="輸入">
<input type="text" value="輸入">
<input type="submit">
<input type="reset">
<input type="button" value="按鈕">
input[type="text"]{
	color: red;
}

此時屬性均為type,那麼選出文字框進行新增樣式,就如上選擇,效果展示:


對於後面三個,就是,選擇屬性值具有相同的字元(可以不完全相等),進行新增樣式。如,對於第四個,有class="font12",class="font22",class="font32",這三個class的屬性值的首幾個字母均為“font”,這樣就可以通過 標籤名(如div), div[class^=font]{ color:red;} 進行設定樣式。其他兩個類似。

六、偽類選擇器

1. E::first-letter文字的第一個單詞或字

2. E::first-line文字的第一行

3. E::selection可改變選中文字的樣式

注意:“:”一個冒號是偽類選擇器,“::”兩個冒號是偽元素選擇器。

對於第三個,效果是如下圖:


當滑鼠對文字進行選擇的時候,實現E::selection的樣式。

4. E::before和E::after(△重要

在E元素內部的開始位置和結束位置建立一個元素,該元素為行內元素,且必須結合content屬性使用。

div::before {
	content: "開始";
}
div::after {
	content: "結束";
}
E:after和E:before在高版瀏覽器下自動識別為E::after和E::before。

如:

<div>今年</div>
div::before {
	content: "我";
}
div::after {
	content: "18歲";
}

效果如下:


第二個圖表示插入的文字在div裡。