<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CSS偽類和偽元素的區(qū)別

          共 2037字,需瀏覽 5分鐘

           ·

          2021-03-31 13:08

          作者:Marhoo??

          來源:SegmentFault 思否社區(qū)


          偽類:

          用于選擇DOM樹之外的信息,或是不能用簡單選擇器進(jìn)行表示的信息。(相當(dāng)于一個(gè)特殊的class選擇器,用來添加一些特殊效果)

          簡而言之作用于元素當(dāng)前的狀態(tài)修飾(點(diǎn)擊,懸浮,鏈接)


          偽元素:

          為DOM樹沒有定義的虛擬元素。不同于其他選擇器,它不以元素為最小選擇單元,它選擇的是元素指定內(nèi)容。(相當(dāng)于一個(gè)特殊的元素(div、span),可以用來存放一些特殊樣式或者內(nèi)容)

          簡而言之作用于元素當(dāng)前內(nèi)容修飾(之前,之后,首字,首行)



          偽類種類:

          偽元素種類:

          區(qū)別比較

          這里通過兩個(gè)例子來說明兩者的區(qū)別。

          下面是一個(gè)簡單的html列表片段:

          <ul>
              <li>我是第一個(gè)</li>
              <li>我是第二個(gè)</li></ul>


          如果想要給第一項(xiàng)添加樣式,可以在為第一個(gè)<li>添加一個(gè)類,并在該類中定義對應(yīng)樣式:

          <ul>
              <li class="first-item">我是第一個(gè)</li>
              <li>我是第二個(gè)</li></ul>

          li.first-item {
              color: orange}


          如果不用添加類的方法,我們可以通過給設(shè)置第一個(gè)<li>的:first-child偽類來為其添加樣式。這個(gè)時(shí)候,被修飾的<li>元素依然處于文檔樹中。

          li:first-child {
              color: orange}

          下面是另一個(gè)簡單的html段落片段:

          <p>Hello World, and wish you have a good day!</p>


          如果想要給該段落的第一個(gè)字母添加樣式,可以在第一個(gè)字母中包裹一個(gè)元素,并設(shè)置該span元素的樣式:

          <p><span class="first">H</span>ello World, and wish you have a good day!</p>

          .first {
              font-size: 5em;}


          如果不創(chuàng)建一個(gè)<span>元素,我們可以通過設(shè)置<p>的:first-letter偽元素來為其添加樣式。這個(gè)時(shí)候,看起來好像是創(chuàng)建了一個(gè)虛擬的<span>元素并添加了樣式,但實(shí)際上文檔樹中并不存在這個(gè)<span>元素。

          <p>Hello World, and wish you have a good day!</p>

          p:first-letter {
              font-size: 5em;}


          從上述例子中可以看出,偽類的操作對象是文檔樹中已有的元素,而偽元素則創(chuàng)建了一個(gè)文檔數(shù)外的元素。因此,偽類與偽元素的區(qū)別在于:有沒有創(chuàng)建一個(gè)文檔樹之外的元素。


          偽元素是使用單冒號還是雙冒號

          CSS3規(guī)范中的要求使用雙冒號(::)表示偽元素,以此來區(qū)分偽元素和偽類,比如::before和::after等偽元素使用雙冒號(::),:hover和:active等偽類使用單冒號(:)。除了一些低于IE8版本的瀏覽器外,大部分瀏覽器都支持偽元素的雙冒號(::)表示方法。

          然而,除了少部分偽元素,如::backdrop必須使用雙冒號,大部分偽元素都支持單冒號和雙冒號的寫法,比如::after,寫成:after也可以正確運(yùn)行。



          點(diǎn)擊左下角閱讀原文,到 SegmentFault 思否社區(qū) 和文章作者展開更多互動(dòng)和交流,掃描下方”二維碼“或在“公眾號后臺回復(fù)“ 入群 ”即可加入我們的技術(shù)交流群,收獲更多的技術(shù)文章~

          - END -


          瀏覽 28
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  2019年情侣免费自拍视频青青 | 国产精品久久在线视频 | 黄色色情网站在线观看 | 丁香五月六月 | 五月丁香激情综合 |