1. gzyueqian
      13352868059

      h5培訓(xùn)機(jī)構(gòu)學(xué)校哪里好?你可以試著了解一下粵嵌的HTML5開發(fā)

      更新時(shí)間: 2018-09-23 12:00:00來源: HTML5開發(fā)瀏覽量:3240

          偽類和偽元素的理解

          官方解釋:
          偽類一開始單單只是用來表示一些元素的動(dòng)態(tài)狀態(tài),典型的就是鏈接的各個(gè)狀態(tài)(LVHA)。隨后CSS2標(biāo)準(zhǔn)擴(kuò)展了其概念范圍,使其成為了所有邏輯上存在但在文檔樹中卻無須標(biāo)識(shí)的“幽靈”分類。
          偽元素則代表了某個(gè)元素的子元素,這個(gè)子元素雖然在邏輯上存在,但卻并不實(shí)際存在于文檔樹中。
          我自己的理解:
          偽類,類,class是一個(gè)類,就類似class這樣,表示一些元素的狀態(tài)的,但是無須標(biāo)識(shí)的分類。
          偽元素,就是一個(gè)元素,類似p標(biāo)簽元素,等等,邏輯上存在,但是實(shí)際并不存在在文檔樹中。
          另外一個(gè)簡(jiǎn)單的理解和區(qū)分就是:
          偽類前面是一個(gè)冒號(hào),為元素前面是兩個(gè)冒號(hào)。E:first-child 偽類,E::first-line為元素。
          特殊情況::before 和 ::after 偽元素
          before 和after是在元素前面和后面添加一些元素,因此是偽元素,CSS3選擇器中已經(jīng)將其前面變?yōu)閮蓚€(gè)冒號(hào)了。請(qǐng)看:w3cselect
          問題來了,那么為什么我們平時(shí)用before和after前面就一個(gè)冒號(hào)?
          CSS1和CSS2中對(duì)偽類的偽元素的區(qū)別比較模糊,甚至經(jīng)常有同行將:before、:after稱為偽類。老的規(guī)范中,偽類和偽元素都用一個(gè)冒號(hào),新規(guī)范為了區(qū)分,偽元素統(tǒng)一用兩個(gè)“::”,所以,大家注意了,往后在寫css3的時(shí)候,為元素要用兩個(gè)冒號(hào),偽類用一個(gè)冒號(hào)。
          偽類和偽元素的應(yīng)用
          我之前的css常用效果,講了一些。
          像偽元素
          ::-webkit-scrollbar
          ::selection
          ::-webkit-input-placeholder
          ::after
          等等。
          偽元素中用的多的要數(shù)::after和::before了
          可以用這兩個(gè)偽元素做很多效果!

          html


          <a href="#">haorooms</a>
          css
      
          a {
              position: relative;
              display: inline-block;
              outline: none;
              text-decoration: none;
              color: #000;
              font-size: 32px;
              padding: 5px 10px;
          }
      
          a:hover::before, a:hover::after { position: absolute; }
          a:hover::before { content: "5B"; left: -20px; }
          a:hover::after { content: "5D"; right:  -20px; }


          其中content中可以用attr也可以用url

          例如:


          a::after { content:"(" attr(href) ")"; } 
          h1::before { content: url(logo.png); } 


          偽類中用的多的要數(shù):nth-child()選擇器了,關(guān)于nth-child(),我們看下文
          nth-child()瀏覽器支持
          IE9及以上版本,火狐,谷歌,Safari ,Opera都支持!
          定義和用法
          :nth-child(n) 選擇器匹配屬于其父元素的第 n個(gè)子元素,不論元素的類型。
          n 可以是數(shù)字、關(guān)鍵詞或公式。

          例如:


          p:nth-child(2)
          {
          background:#ff0000;
          }
      
          <body>
      
          <h1>這是標(biāo)題</h1>
          <p>haorooms個(gè)段落。</p>
          <p>haorooms第二個(gè)段落。</p>
          <p>haorooms第三個(gè)段落。</p>
          <p>haorooms第四個(gè)段落。</p>
      
          </body>


          上面這段代碼請(qǐng)問那個(gè)段落顏色是紅色的?

          答案是“haorooms個(gè)段落。”顏色變成了紅色!
          解釋::nth-child(n) 選擇器匹配屬于其父元素的第 n個(gè)子元素,不論元素的類型。p:nth-child(2),P標(biāo)簽的父元素是body,body的第二個(gè)子元素是“haorooms個(gè)段落。”所以haorooms個(gè)段落顏色變?yōu)榱思t色!!!
          注意
          很多朋友經(jīng)常把:nth-child() 和:nth-of-type()混淆。
          CSS3 E:nth-of-type() 選擇器的意思是“選擇E同類型的同級(jí)的  第n個(gè)元素“
          ”

          看下面的例子:


          p:nth-of-type(2)
          {
          background:#ff0000;
          }
      
          <body>
      
          <h1>這是標(biāo)題</h1>
          <p>haorooms個(gè)段落。</p>
          <p>haorooms第二個(gè)段落。</p>
          <p>haorooms第三個(gè)段落。</p>
          <p>haorooms第四個(gè)段落。</p>
      
      
          </body>

          代碼一樣,我的樣式僅僅是把 p:nth-child(2)改成了 p:nth-of-type(2),現(xiàn)在就是“haorooms第二個(gè)段落。”顏色變成了紅色。
          奇偶數(shù)匹配
          現(xiàn)在開始說說我開通說的table的tr偶數(shù)行變色的問題了。

          因?yàn)閠able的子元素一般是tr,不會(huì)有別的,所以可以用


          tr:nth-child(odd) 與 tr:nth-child(even)

          當(dāng)然也可以用


          tr:nth-of-type(odd) tr:nth-of-type(even)


          分別匹配序號(hào)為奇數(shù)與偶數(shù)的元素。奇數(shù)(odd)與(2n+1)結(jié)果一樣;偶數(shù)(even)與(2n+0)及(2n)結(jié)果一樣。
          倍數(shù)寫法
          :nth-child(an) 【:nth-of-type(an)同理,不解釋】
          匹配所有倍數(shù)為a的元素。其中參數(shù)an中的字母n不可缺省,它是倍數(shù)寫法的標(biāo)志,如3n、5n。
          例子:
          li:nth-child(3n){background:orange;}/*把第3、第6、第9、…、所有3的倍數(shù)的LI的背景設(shè)為橙色*
          延伸
          :nth-child(2n+1), :nth-child(2n-3) , :nth-child(4n+3) ,還可以 :nth-child(-an+b)也就是反向匹配。
          ,總結(jié)一下偽類與偽元素的特性及其區(qū)別:
          偽類本質(zhì)上是為了彌補(bǔ)常規(guī)CSS選擇器的不足,以便獲取到更多信息;
          偽元素本質(zhì)上是創(chuàng)建了一個(gè)有內(nèi)容的虛擬容器;
          CSS3中偽類和偽元素的語法不同;
          可以同時(shí)使用多個(gè)偽類,而只能同時(shí)使用一個(gè)偽元素

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕乱码免费专区 | 天堂v亚洲国产ⅴ第一次 | 激情久久一区二区三区 | 亚洲日韩欧美在线午夜 | 亚洲国产欧美一区 | 在线播放国产精品大片 |