::after與:after的區別(及偽類與偽元素的區別)


寫偽元素的時候,發現有的時候是:after,有的時候是::after。這兩者有什么區別呢??

1. 單冒號和雙冒號的區別

CSS3之后才有雙冒號::,表示偽元素

  • 用於對偽類(Pseudo-class)和偽元素(Pseudo-element)進行區分。
  • 即偽類只能用單冒號。
  • 偽元素在CSS3中,推薦使用雙冒號::

2. 偽元素和偽類的區別

偽元素是選中了某個元素的符合邏輯的某個實際卻不存在的部分,本質上是創建了一個有內容的虛擬容器;

用法 selector:pseudo-element {property:value;}

  • first-letter設置首字母的樣式,first-line設置首行的樣式
  • before在元素之前添加內容
  • after在元素之后插入內容

偽類則是像真正的類一樣發揮着類的作用

用法 selector : pseudo-class {property: value}

常見偽類

  • :link 未被訪問的鏈接
  • :visited 已被訪問的鏈接
  • :hover 鼠標懸停
  • :active 被激活的元素
  • :focus 有鍵盤輸入焦點
    • css定義中,:hover必須位於:link和:visited之后才有效,
    • :active 必須被置於:hover 之后,才有效
      :lang——:lang(no)指定lang屬性為no或no-的元素
    • :lang 的處理與 |= 選擇器相同。
  • :first-child 父元素的第一個子元素(在IE中必須聲明DOCTYPE)

CSS3新增了許多偽類

  • 第n個特定類型元素(xxxtype)
    • :first-of-type:last-of-type:nth-of-type(n):only-of-type:nth-last-of-type(n)
      • 特定類型元素的首個/尾個/第幾個/唯一一個/倒數第幾個
  • 類似first-child的選擇第n個元素的偽類
    • :last-child,:nth-child(n),:only-child,:nth-last-child(n)
  • :root根元素(HTML中根元素始終是HTML元素)
  • :empty沒有子元素的元素(包括文本節點)
  • :target當前活動的目標元素
    • url后帶有錨名稱#指向文檔內某元素,該被指向元素為目標元素
  • :enable, :valid, :read-only,:checked,:required
    ......

注意

  • 可以同時使用多個偽類,而只能同時使用一個偽元素;
  • CSS3中偽元素的語法是兩個冒號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM