css3選擇器參考手冊:http://www.runoob.com/cssref/css-selectors.html,裏面有css1 2 3的選擇器的列表
1. 屬性選擇器(屬性+特性)
屬性選擇器結合了正則表達式中的^開頭、$結尾、*任意位置
比如:
a[src^="https"]:選擇每一個src屬性的值以"https"開頭的a標籤
a[src$=".pdf"]:選擇每一個src屬性的值以".pdf"結尾的a標籤
a[src*="runoob"]:選擇每一個src屬性的值包含子字符串"runoob"的a標籤
注意:其他屬性和特性都可以選中。
2. 僞類選擇器(重要的幾個)
(1):not() 選擇每個並非什麼的元素
比如:div:not([class="demo"]):選擇屬性class不是demo的div,括號內是屬性選擇器。
注意:not的括號內是對前面的選擇器的修飾,not前是選擇器,not括號中屬性選擇器。
(2):empty 選擇元素的innerHTML爲空的元素,哪怕一個空格都不可以
比如:p:empty:選擇innerHTML爲空的p標籤
(3):target 選擇當前活動的元素(包含該錨名稱的點擊的URL)目前只知道a標籤的錨點
比如:
目標元素原本的id樣式,當點擊後,顏色發生了改變:
(4)選擇子元素(慎用)
注意:僞類選擇器是修飾他之前選擇器的,下面的li是子元素本身。
li:first-child:li元素是它所在層級中的第一個元素。和:nth-of-type(1)是一個意思。
li:last-child:li元素是它所在層級中的最後一個元素。
li:nth-child(3):li元素是它所在層級中第幾個元素
li:nth-last-child(3):li元素是它所在層級中倒數第幾個元素
例子:下面是標籤的序號,其中序號是1的li被選中
(5)同一類型(type)的子元素
注意:僞類選擇器是修飾他之前選擇器的,下面的li是子元素本身。
li:first-of-type:在每一層級中,忽略其他標籤,針對每一層級的li標籤,選擇所有的子元素的第一個li;
li:last-of-type:選擇所有的子元素的最後一個li;
li:nth-of-type():選擇所有的子元素的第三個子li;
li:nth-last-of-type():選擇所有的子元素的倒數第三個li;
下面例子:每一層級中li標籤的序號
(6):only-child 唯一子元素,選中該元素是唯一子元素的元素。
ul li:only-child{color: red;}
結果:只有2變紅
(7):only-of-type 選中該類型元素(比如p標籤,忽略同層級中的其他標籤),子元素中該類型元素唯一
ul li:only-of-type{color: red;}
結果:2 和 3都變紅
(8)關於input標籤的一些選擇器
input:enabled :選擇每一個已啓用的輸入元素
input:disabled:選擇每一個禁用的輸入元素
input:checked:選擇每個選中的輸入元素
input:read-only:用於匹配設置 "readonly"(只讀) 屬性的元素(一些文本框,input框等會用到)
input:read-write:用於匹配可讀及可寫的元素
比如:
結果:當點擊複選框的時候,每一次點擊複選框都會發生變化,選中時,是上圖的樣式,取消選中時,是原來的樣式
注意:修飾的是複選框,input的文字,因爲input是單標籤,後面的文字跟input標籤沒有關係。
比如:
結果:特別注意value屬性的含義
3. 僞元素
css3對僞元素有了一定的調整,必須使用雙::
(1)::first-letter 選中標籤內第一個字或字母
(2)::first-line 選擇標籤的第一行
(3)::before 和 ::after
(4) ::selection 匹配元素中被用戶選中或處於高亮狀態的部分,用鼠標選中文本時,瀏覽器默認情況下,效果是“藍色的背景,白色的字體”
::selection{color: red;} 設置所有的文字
也可以設置某個標籤元素的文字
4. 條件選擇
(1)div > p :直接子元素,div標籤下的直接子元素p
(2)div + p :元素後的第一個兄弟節點,div標籤後面的緊跟着的第一個兄弟節點且是p標籤,該p標籤被選中。
(3)div ~ p : 元素後的兄弟節點,
比如:
結果: