偽元素初解

一、偽元素與偽類

1. 常見的偽類

:active      <!--向被激活的屬性添加樣式-->
:hover       <!--當鼠標懸浮于元素上方時,向元素添加樣式-->
:link        <!--向未被訪問的鏈接添加樣式-->
:visited     <!--想已被訪問的鏈接添加樣式-->
etc.

2. 偽元素

::before       <!--在元素之前添加內容-->
::after        <!--在元素之后添加內容-->
::first-letter <!--向文本的第一個字母添加特殊樣式-->
::first-line   <!--向文本的首行添加特殊樣式-->
::selection    <!--向選中的內容添加樣式-->

二、偽元素(這里只說::before和::after)

1. 了解

  • 創(chuàng)建一個虛假元素插入到元素的前或者后
  • 它不在文檔流中,無法使用正常的DOM操作;
  • 它可以用css去操控
  • 在技術上來說,與添加一個span標簽等價
  • :before/:after寫法也可以被瀏覽器解析,但是為了區(qū)別于偽類,還是建議用兩個冒號書寫
  • 注意:因為其很難使用DOM操作,所以需要交互的部分不要使用偽元素去生成

2. ::before/::after基本語法

  • css樣式中必須加入content屬性

  • content屬性以表示該偽元素中的內容;若無內容則用空字符串表示

      .p1::before{
          content: "我是一個:before";
      }
      .p1::after{
          content: "我是一個:after";
      }
    

3. 效果分析

  • 可以看到偽元素效果在技術上與span等價

  • 偽元素在瀏覽器檢解析中的位置是在父元素內容的前后



      *{
          margin: 0;
          padding: 0;
      }
      .p1::before{
          content: "我是一個:before";
          background-color: skyblue;
      }
      .p1::after{
          content: "我是一個:after";
          background-color: skyblue;
      }
      span{
          background-color: skyblue;
      }
      p{
          width: 400px;
          background-color: pink;
          text-align: center;
      }
      
      <!--html-->
      
      <p class="p1">我是一個p1</p>
      <p class="p2">
          <span>我是一個:before</span>我是一個p2<span>我是一個:after</span>
      </p>
    

4. 再來個例子

  • 偽元素常配合定位來生成父級的某些附加部分,如下圖米奇的耳朵



      *{
          margin: 0;
          padding: 0;
      }
      div{
          width: 100px;
          height: 100px;
          border: 2px solid black;
          border-radius: 50%;
          position: relative;
          left: 200px;
          top: 200px;
      }
      div::before{
          content: "";
          width: 40px;
          height: 40px;
          background-color: black;
          border-radius: 50%;
          position: absolute;
          left: -14px;
          top: -24px;
      }
      div::after{
          content: "";
          width: 40px;
          height: 40px;
          background-color: black;
          border-radius: 50%;
          position: absolute;
          left: 74px;
          top: -24px;
      }
      
      <!--html部分-->
      
      <div class="head"></div>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 各種純css圖標 CSS3可以實現很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫出這些圖形,要比...
    劍殘閱讀 9,978評論 0 8
  • 1、垂直對齊 如果你用CSS,則你會有困惑:我該怎么垂直對齊容器中的元素?現在,利用CSS3的Transform,...
    kiddings閱讀 3,297評論 0 11
  • 1、屬性選擇器:id選擇器 # 通過id 來選擇類名選擇器 . 通過類名來選擇屬性選擇器 ...
    Yuann閱讀 1,752評論 0 7
  • 轉自理解偽元素 :before 和 :after層疊樣式表(CSS)的主要目的是給HTML元素添加樣式,然而,在一...
    種諤閱讀 938評論 0 3
  • 都說人是環(huán)境的產物,一點也不假,在這個浮躁的社會裡,我們身在其中,很多人被感染,被左右,也變得開始浮躁,忘了自己是...
    露丹兒閱讀 592評論 0 0

友情鏈接更多精彩內容