CSS選擇器

CSS選擇器規(guī)定了CSS規(guī)則會作用到哪些元素上。

基本選擇器

  • 元素選擇器:根據(jù)元素名稱匹配元素
元素 {樣式聲明}
  • 類選擇器:根據(jù)元素class屬性中的內(nèi)容匹配元素
.類名 {樣式聲明}
  • ID選擇器:根據(jù)元素的ID屬性匹配元素
#ID {樣式聲明}
  • 通配選擇器:匹配任意類型的元素
* {樣式聲明}
  • 屬性選擇器:根據(jù)屬性名或?qū)傩灾灯ヅ湓?
    • [attr]帶有以 attr 命名的屬性的元素
    • [attr=value]帶有以 attr 命名的,且值為"value"的屬性的元素
    • [attr~=value]帶有以 attr 命名的屬性的元素,并且該屬性是一個以空格作為分隔的值列表,其中至少一個值為"value"
    • [attr|=value]帶有以 attr 命名的屬性的元素,屬性值為“value”或是以“value-”為前綴
    • [attr^=value]帶有以 attr 命名的,且值是以"value"開頭的屬性的元素
    • [attr$=value]帶有以 attr 命名的,且值是以"value"結(jié)尾的屬性的元素
    • [attr*=value]帶有以 attr 命名的,且值包含有"value"的屬性的元素
    • [attr operator value i] 在帶有屬性值的屬性選型選擇器表達式的右括號(]括號)前添加用空格間隔開的字母i(I)可以忽略屬性值的大小寫
img[src$=".svg" i] { /**忽略大小寫**/
  color: pink;
}

組合選擇器

  • 多元素選擇器:當(dāng)使用 , 連接兩個元素時使得該選擇器可以同時匹配第一個元素和第二個元素
前方元素 , 目標(biāo)元素 {樣式聲明}
  • 相鄰兄弟選擇器:匹配緊跟其前方元素的同胞元素
前方元素 + 目標(biāo)元素 {樣式聲明}
  • 通用兄弟選擇器:當(dāng)使用 ~ 連接兩個元素時,它會匹配第二個元素,條件是它必須跟(不一定是緊跟)在第一個元素之后,且他們都有一個共同的父元素
元素 ~ 元素 {樣式聲明}
  • 子選擇器:當(dāng)使用 > 選擇符分隔兩個元素時,它只會匹配那些作為第一個元素的直接后代(子元素)的第二元素.
元素1 > 元素2 {樣式聲明}
  • 后代選擇器:當(dāng)使用空格連接兩個元素時使得該選擇器可以只匹配那些由第一個元素作為祖先元素的所有第二個元素(后代元素)
元素1 元素2 {樣式聲明}

偽類選擇器

  • :link:匹配未被訪問的鏈接

  • :visited:匹配已被訪問的鏈接

  • :focus:匹配點擊觸摸、tab鍵選擇的元素

  • :hover:匹配鼠標(biāo)懸停其上的元素

  • :active:匹配被用戶激活的元素(鼠標(biāo)在其上已經(jīng)按下、還沒有釋放的元素)

為了正確地渲染鏈接元素的樣式需遵循LVFHA的先后順序,即::link — :visited — :focus — :hover — :active

  • :focus-within:匹配獲得焦點,或該元素的后代獲得焦點的元素

  • :checked:匹配處于選中狀態(tài)的radio, checkbox或select中的option元素

  • :disabled:匹配被禁用的元素

  • :enabled:匹配被啟用的元素

  • :root:匹配文檔樹的根元素。對于HTML來說,:root 表示html元素,除了優(yōu)先級更高之外,與 html 選擇器相同

  • :not():匹配不符合參數(shù)選擇器X描述的元素

  1. X不能包含另外一個否定選擇器
  2. X會參與權(quán)重計算
  • :nth-child(an+b):匹配文檔樹中在其之前具有 an+b-1 個兄弟節(jié)點的元素,其中 n >=0
  1. :nth-child(0n+3) / :nth-child(3) 匹配第三個元素
  2. 1n+0 或簡單的 n 匹配每個元素
  3. :nth-child(2n+1) / :nth-child(odd) 匹配奇數(shù)行
  4. :nth-child(2n) / :nth-child(even) 匹配偶數(shù)行
  5. :nth-child(-n+3) 匹配前三個子元素
  • :nth-of-type(an+b):匹配文檔樹中在其之前具有 an+b-1 個相同標(biāo)簽的元素,其中 n >=0
  1. E:nth-of-type(2) 匹配第二個標(biāo)簽為E的元素
  2. .class:nth-of-type(2) 匹配相同標(biāo)簽的第二個且該(第二個)標(biāo)簽的類名匹配.class
<style>
      .item:nth-of-type(3){
        color:red;
      }
</style>
<div>
      <h1>標(biāo)題</h1>
      <p class="item">這是鍛若</p>
      <p>這是鍛若</p>
      <span>這是span</span>
      <span class="item">這是span</span>
      <span class="item">這是span</span> <!-- 紅色 -->
      <p class="item">這是鍛若</p> <!-- 紅色 -->
      <p class="item">這是鍛若</p>
      <p class="item">這是鍛若</p>
      <h1 class="item">標(biāo)題</h1>
      <h1>標(biāo)題</h1> <!-- 不是紅色 -->
  </div>

偽元素選擇器

  • ::before :before

  • ::after :after

  • ::first-letter :first-letter:匹配某塊對象第一行的第一個字母,并且文字所處的行之前沒有其他內(nèi)容(如圖片和內(nèi)聯(lián)的表格)

  • ::first-line :first-line:匹配某塊對象第一行

  • ::placeholder:匹配一個表單元素的占位文本

  • ::selection:匹配文檔中被用戶高亮的部分(比如使用鼠標(biāo)或其他選擇設(shè)備選中的部分)

注意 塊對象指display: block, inline-block...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 其實平時用得多的選擇器無非也就是那么幾個,時間久了,許多不常用的選擇器就慢慢忘記了。為了不讓自己忘記這些選擇器,今...
    盛夏晚清風(fēng)閱讀 1,955評論 0 5
  • class 和 id 的使用場景? class寫專門的class通用和私有模塊命名,id具有唯一性且優(yōu)先級太高,用...
    好好頑閱讀 483評論 0 0
  • 一、CSS選擇器常見的有幾種? 基本選擇器 通配選擇器~選擇文檔中所有的html元素,用一個*表示 元素選擇器~選...
    dengpan閱讀 1,031評論 0 3
  • CSS選擇器常見的有幾種? 基礎(chǔ)選擇器 “*” -> 通用元素選擇器,匹配頁面任何元素。很少使用 “#” -> i...
    饑人谷_吳亞敏閱讀 369評論 0 0
  • 1.class 和 id 的使用場景? 類選擇器允許以一種獨立于文檔元素的方式來指定樣式。該選擇器可以單獨使用,也...
    草鞋弟閱讀 2,555評論 0 1

友情鏈接更多精彩內(nèi)容