CSS選擇器

class 和 id 的使用場景

id定位到頁面上唯一元素,而class定位到某一類元素。

CSS選擇器種類

(1)基礎選擇器

* 通用選擇器,匹配頁面任何元素(這便決定了它很少被使用)

#id id選擇器,匹配特定id的元素

.class 類選擇器,匹配class特定類的元素

element標簽選擇器

(2)組合選擇器

E,F(xiàn) 多元素選擇器,用,分隔,同時匹配元素E和元素F

E F后代選擇器,用空格分隔,匹配E元素所有的后代

E>F子元素選擇器,用>分隔,匹配E元素所有的直接元素(注意此處選擇是第一層級的,而嵌套的不會被選擇)

E~F普通相鄰選擇器,匹配E元素之后的所有同級元素

E+F直接相鄰選擇器,匹配E元素之后的相鄰同級元素F

.class1.class2表示既..又..(注意中間沒有分隔符)

element#id用的不多#id本身就可以選擇

(3)屬性選擇器

E[attr] 匹配所有具有屬性attr的元素

E[attr=value]匹配所有屬性為value的元素

E[attr~=value]匹配所有屬性attr,具有多個空格分隔,其中一個值等于 value的元素。

E[attr^=value]匹配屬性attr的值以value開頭的元素

E[attr$=value]匹配屬性attr的值以value結尾的元素

E[attr*=value]匹配屬性attr的值包含value的元素

(4)偽類選擇器

E:first-child 匹配作為長子的元素E

E:link 匹配所有未被點擊的鏈接

E:visited 匹配所有已被點擊的鏈接

E:active匹配鼠標已經(jīng)按下但沒有釋放的元素

E:hover 匹配鼠標懸停其上的元素

E:focus 匹配獲得當前焦點的元素

E:long(c)匹配long屬性=c的元素

E:enabled 匹配表單中可用的元素

E:disabled 匹配表單中禁用的元素

E:checked 匹配表單中被選中的radio或checkbox元素

E:selection 匹配用戶當前選中的元素

E:root 匹配文檔的根元素,對于HTML文檔,就是HTML元素

E:nth-child(n) 匹配其父元素的第n個子元素,第一個編號為1

E:nth-of-type(n)  與nth-child(n)作用類似,但是僅匹配使用同種標簽的元素

(5)偽元素選擇器

E::first-line 匹配E元內容的第一行

E::first-letter 匹配E元素內容的第一個字母

E::before 在E元素之前插入生成的內容

E::after 在E元素之后插入生成的內容
  1. 選擇器優(yōu)先級;復雜場景如何計算優(yōu)先級
(1)優(yōu)先級(高到低)

1.在屬性后面使用!important 會覆蓋頁面內任何位置定義的元素樣式

2.作為style屬性寫在元素標簽的內聯(lián)樣式

3.id選擇器

4.類選擇器

5.偽類選擇器

6.屬性選擇器

7.標簽選擇器

8.通配符選擇器

9.瀏覽器自定義
(2)復雜場景如何計算優(yōu)先級:作如下歸類:a=行內樣式<div style="xxx"></div>;b=id選擇器;c=類、屬性和偽類選擇器;d=標簽、偽元素選擇器;通過計算和比較大小來定奪誰優(yōu)先,a大則最優(yōu)先,a相等則比較b,以此類推。

a:link, a:hover, a:active, a:visited 的順序及原因

四個偽類選擇器定義了"鏈接、已訪問過的鏈接、鼠標停在上方時、點下鼠標時"的樣式,正確使用順序為:a:link  a:visited  a:hover  a:active 存在覆蓋問題故要嚴格遵照這個順序進行。

以下選擇器含義

#header{ }    id為header的元素

.header{ }     class為header的元素

.header .logo{ }      class為header 子元素中 class為logo的元素

.header.mobile{ }     class同時包含header和mobile的元素

.header p, .header h3{ }     class為header元素中的p標簽和h3標簽

#header .nav>li{ }      id為header的class為nav元素的直接子元素為li的標簽

#header a:hover{ }       id為header元素中的a標簽的hover狀態(tài)

#header .logo~p{ }      id為header下 class為logo標簽之后所有的p標簽

#header input[type=“text”]{ }      id為header的后代中,input標簽中,屬性type的值為"text"的元素集合

div :first-child和div :first-of-type的作用和區(qū)別

first-child 匹配其父元素的第一個子元素

first-of-type 匹配其父元素下使用同種標簽的第一個元素

div :first-child:匹配div下的第一個子元素

div :first-of-type:匹配div下同種類型第一個,得到可能不止一個

【 !需要注意:加個空格會變成組合選擇器,而這兩個的區(qū)別同上兩個一樣,所匹配的目標不一樣】
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 其實平時用得多的選擇器無非也就是那么幾個,時間久了,許多不常用的選擇器就慢慢忘記了。為了不讓自己忘記這些選擇器,今...
    盛夏晚清風閱讀 1,960評論 0 5
  • 1.CSS 元素選擇器 最常見的 CSS 選擇器是元素選擇器。換句話說,文檔的元素就是最基本的選擇器。如果設置 H...
    饑人谷_小侯閱讀 952評論 0 1
  • 1.class 和 id 的使用場景? class:類選擇器,一個標簽可以有多個類且同一個類可以用到不同的標簽上,...
    饑人谷_兔子君閱讀 1,282評論 0 0
  • class 和 id 的使用場景? class定位到頁面上的某一類元素。id定位到頁面上的某一元素。id是唯一的,...
    小囧兔閱讀 510評論 0 0
  • 1,class 和 id 的使用場景? 1.class是類選擇器,用.class定義,定位到頁面中有相同特征的一類...
    _思銘閱讀 437評論 0 0

友情鏈接更多精彩內容