zoukankan      html  css  js  c++  java
  • 伪类与伪元素的区别

      在CSS1和CSS2中对伪类和伪选择器没有做出很明显的区别定义,而二者在语法是一样的,都是以:开头,这造成很多人会将某些伪元素误认为是伪类,如:before:after;而在CSS3给出的定义中,二者区别更为明显,也更容易理解。

    一、定义

    • 伪类

    The pseudo-class concept is introduced to permit selection based on information that lies outside of the document tree or that cannot be expressed using the other simple selectors.

      解读:伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息。前者包含那些匹配指定状态的元素,比如:visited:active;后者包含那些满足一定逻辑条件的DOM树中的元素,比如:first-child:first-of-type:target

    • 伪元素

    Pseudo-elements create abstractions about the document tree beyond those specified by the document language.

      解读:伪元素为DOM树没有定义的虚拟元素。不同于其他选择器,它不以元素为最小选择单元,它选择的是元素指定内容。比如::before表示选择元素内容的之前内容,也就是""::selection表示选择元素被选中的内容。

    二、语法

      在CSS3中,伪类与伪元素在语法上也有所区别,伪元素修改为以::开头。但因为历史原因,浏览器对以:开头的伪元素也继续支持,但建议规范书写为::开头。

    三、伪类/伪元素一览表

    • 伪类

      SelectorMeaningCSS
      :active 选择正在被激活的元素 1
      :hover 选择被鼠标悬浮着元素 1
      :link 选择未被访问的元素 1
      :visited 选择已被访问的元素 1
      :first-child 选择满足是其父元素的第一个子元素的元素 2
      :lang 选择带有指定 lang 属性的元素 2
      :focus 选择拥有键盘输入焦点的元素 2
      :enable 选择每个已启动的元素 3
      :disable 选择每个已禁止的元素 3
      :checked 选择每个被选中的元素 3
      :target 选择当前的锚点元素 3
      :first-of-type 选择满足是其父元素的第一个某类型子元素的元素 3
      :last-of-type 选择满足是其父元素的最后一个某类型子元素的元素 3
      :only-of-type 选择满足是其父元素的唯一一个某类型子元素的元素 3
      :nth-of-type(n) 选择满足是其父元素的第n个某类型子元素的元素 3
      :nth-last-of-type(n) 选择满足是其父元素的倒数第n个某类型的元素 3
      :only-child 选择满足是其父元素的唯一一个子元素的元素 3
      :last-child 选择满足是其父元素的最后一个元素的元素 3
      :nth-child(n) 选择满足是其父元素的第n个子元素的元素 3
      :nth-last-child(n) 选择满足是其父元素的倒数第n个子元素的元素 3
      :empty 选择满足没有子元素的元素 3
      :in-range 选择满足值在指定范围内的元素 3
      :out-of-range 选择值不在指定范围内的元素 3
      :invalid 选择满足值为无效值的元素 3
      :valid 选择满足值为有效值的元素 3
      :not(selector) 选择不满足selector的元素 3
      :optional 选择为可选项的表单元素,即没有“required”属性 3
      :read-only 选择有"readonly"的表单元素 3
      :read-write 选择没有"readonly"的表单元素 3
      :root 选择根元素 3

    注意:p:first-child表示选择的元素既要是p标签,同时要是其父元素的第一个子元素,不要错误认为是表示p元素的第一个子元素;同理,p:first-of-type表示选择的元素要是p标签,同时要是其父元素的第一个p标签元素;其他类似的伪类含义相似。

    • 伪元素

      SelectorMeaningCSS
      ::first-letter 选择指定元素的第一个单词 1
      ::first-line 选择指定元素的第一行 1
      ::after 在指定元素的内容前面插入内容 2
      ::before 在指定元素的内容后面插入内容 2
      ::selection 选择指定元素中被用户选中的内容 3

    参考链接

    [1] w3schools.com

    [2] CSS3伪类和伪元素的特性和区别;

    原文:https://www.cnblogs.com/ammyben/p/8012747.html

  • 相关阅读:
    poj 1579(动态规划初探之记忆化搜索)
    hdu 1133(卡特兰数变形)
    CodeForces 625A Guest From the Past
    CodeForces 625D Finals in arithmetic
    CDOJ 1268 Open the lightings
    HDU 4008 Parent and son
    HDU 4044 GeoDefense
    HDU 4169 UVALive 5741 Wealthy Family
    HDU 3452 Bonsai
    HDU 3586 Information Disturbing
  • 原文地址:https://www.cnblogs.com/NineKit/p/9865554.html
Copyright © 2011-2022 走看看