CSS偽類:first-child

CSS 偽類用于向某些選擇器添加特殊的效果。

CSS偽類的基礎語法:

selector : pseudo-class {
  property: value
}

當然,CSS類也可以與偽類搭配使用:

selector.class : pseudo-class {
  property: value
}

在我第一次看到 :first-child 偽類時,我的第一個感覺就是,這是在針對指定元素的第一個子元素起作用,很明顯,我是根據(jù)字面意思來理解的。

但結果令我感到很意外,我的感覺是完全錯的,而且錯的很離譜,因為 :first-child 偽類的意思是,指定元素是上級元素中的第一個子元素時起作用,也就是,當它自己是第一個子元素時起作用,并不是之前以為的它的第一個子元素起作用。

還是先上代碼看效果吧:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>:first-child 偽類</title>
  <style>
    div {
      border: solid 1px aqua;
      padding: 10px;
      margin: 10px auto;
    }
    .box {
      width: 300px;
    }
    p:first-child {
      color: red;
    }
  </style>
</head>
<body>
  <div class="box">
    <p>最外層第一行文本</p>
    <p>最外層第二行文本</p>
    <div>
      <p>第二層第一行文本</p>
      <p>第二層第二行文本</p>
    </div>
    <div>
      <span>第二層第一行文本</span>
      <p>第二層第二行文本</p>
      <p>第二層第三行文本</p>
    </div>
  </div>
</body>
</html>

上面這塊兒代碼,執(zhí)行的效果如下圖


image

相信這段代碼和效果已經(jīng)很明顯了,目的是使用 :first-child 偽類將 p 標簽變紅。

最外層的 div 和中間第一個 div 的第一行文本都變成了紅色,因為它們的第一個元素都是 p,而第二層的第二個 div 里的第一行文本并沒有變成紅色,這是因為在這個 div 里,第一個元素是 span,并不是 p。

從這個示例及效果可以看出,:first-child 偽類僅針對指定元素或類作為當前層級的第一個元素時起作用,也就是指定元素是兄弟元素中的老大時起作用。

不得不吐槽下這個命名,也忒容易讓人誤會了些。

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容