CSS選擇器詳解
CSS選擇器,顧名思義,就是將特定的HTML頁面標籤選擇出來,然後規定相應的CSS樣式。
1. 基礎選擇器
1.1 標籤選擇器
概念:標籤選擇器是指用HTML標籤名稱作為選擇器,按標籤名稱分類,為頁面中某一類標籤指定統一的CSS樣式。
語法:標籤名 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... }
作用:標籤選擇器 可以把某一類標籤全部選擇出來。 比如所有的div標籤 和 所有的 span標籤
優點:是能快速為頁面中同類型的標籤統一樣式
缺點:不能設計差異化樣式。
案例:
|
1.2 類選擇器
概念: 類選擇器是指用在標籤中指定的class屬性值作為選擇器,按class值分類,為頁面中相同class值的標籤指定統一的CSS樣式。
語法: .class值 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... } (一定要注意在class名之前有一個小點兒“ . ”)
作用:類選擇器可以把某一類標籤再次按照class值進行分類選擇出來。
優點:在指定統一樣式的時候,不受限於不同的標籤種類,只要是有相同的類名就可以指定相同的CSS樣式;而且複用性較高,可以設計差異化樣式。
缺點:適用範圍廣沒有明顯缺點,相較於id選擇器,優先順序較低。同時適用兩種選擇器的標籤,衝突項按照id選擇器樣式
案例:
|
1.3 id選擇器
概念: id選擇器是指用在標籤中指定的id值作為選擇器,按id值進行分類。id值唯一,可以針對單一的標籤進行指定樣式。
語法: #id值 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... } (一定要注意在id名之前有一個小點兒“ # ”)
作用:id選擇器可以指定某一個標籤,將標籤指定CSS樣式。id值唯一,不可複用。
優點:id選擇器優先順序較高,對於需要進行個性化樣式的標籤可以進單獨指定樣式;需要對單個標籤進行指令碼操作時,使用id更高效
缺點:可以進行個性化指定樣式,但是可複用性很差。
案例:
|
1.4 萬用字元選擇器
概念: 萬用字元選擇器,顧名思義對於所有的元素都適用,都可以指定樣式。
語法: * {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... }
優點:在對於可以全域性通用的樣式進行指定使用,較為高效
缺點:範圍過於廣,所有元素適用,不經常使用。
案例:
|
2. 複合選擇器
複合選擇器是由兩個或多個基礎選擇器,通過不同的方式組合而成的,目的是為了可以選擇更準確更精細的目標元素標籤。
2.1 後代選擇器
概念:後代選擇器又稱為包含選擇器,用來選擇元素或元素組的後代(子元素以及子元素的子元素)。
語法: 父級 後代級 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... } 把外層標籤寫在前面,內層標籤寫在後面,中間用空格分隔
作用:內層標籤(後代級)就成為外層標籤(父級)的後代。子孫後代都可以這麼選擇,不必須是子級。 或者說,它能選擇任何包含在內的標籤。
案例:
|
2.2 子元素選擇器
概念:子元素選擇器只能選擇作為某元素子元素的元素,只能選擇關聯直接上下級的標籤元素。
語法: 父級 > 子級 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... } 連線符號兩邊有空格
作用:父級標籤與自己標籤之間是直接關聯的,即父與子的關係,樣式只能指定是對應父子級的標籤元素,必須是子級。
案例:
|
2.3 交集選擇器
概念:交集選擇器由兩個選擇器構成,找到的標籤必須滿足:既有標籤一的特點,又有標籤二的特點。
語法:A選擇器B選擇器 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... } 兩個選擇之間沒有空格;適用標籤、class、id選擇器
作用:給所有選擇器選中的標籤中, 相交的那部分標籤設定屬性。使用場景並不多。
案例:
|
2.4 並集選擇器
概念:並集選擇器由多個選擇器構成,並集的標籤都會被賦予指定的樣式。
語法: A選擇器,B選擇器,...... {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; ...... } 選擇器之間使用逗號隔開
作用:如果某些選擇器定義的樣式完全相同,或部分相同,就可以利用並集選擇器為它們定義相同的CSS樣式。就是說,只要逗號隔開的,所有選擇器都會執行後面樣式。
案例:
|
2.5 連結偽類選擇器
概念:偽類選擇器用於向某些選擇器新增特殊的效果。連結偽類選擇器較為常用,給連結新增特殊效果。
語法:偽類 用 2個點 就是 冒號進行表示 比如 :link{}
連結偽類選擇器舉例:
- a:link /* 未訪問的連結 */
- a:visited /* 已訪問的連結 */
- a:hover /* 滑鼠移動到連結上 */
- a:active /* 選定的連結 */
- 注意:寫的時候,順序儘量不要顛倒,按照 lvha 的順序。否則可能會引起錯誤。
a { /* a是標籤選擇器 所有的連結 */
font-weight: 700;
font-size: 16px;
color: gray;
}
a:hover { /* :hover 是連結偽類選擇器 滑鼠經過 */
color: red; /* 滑鼠經過的時候,由原來的 灰色 變成了紅色 */
}