当前位置:   article > 正文

CSS 伪类与伪元素辨析_css味蕾

css味蕾

什么是伪类

伪类是一种选择器,选择处于特定状态的元素。比如当它们是某一类型的第一个元素时,或者当鼠标指针悬浮在元素上时。类似表现为向文档中的某个部分应用了一个类,通常有助于减少 HTML 中多余的类,使得代码更灵活、更易于维护。

语法:

pseudo-class-name
  • 1

例如:选中 <article> 元素中的第一个 <p>元素

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>选中 article 元素中的第一个 p 元素</title>
    <style>
      article p:first-child {
        font-size: 120%;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <article>
      <p>
        Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh
        onion daikon amaranth tatsoi tomatillo melon azuki bean garlic.
      </p>

      <p>
        Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot
        courgette tatsoi pea sprouts fava bean collard greens dandelion okra
        wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.
      </p>
    </article>
  </body>
</html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

伪类示例代码结果

结构伪类

类似上文提到的 :first-child,根据DOM节点在DOM树的位置选择元素的选择器,可称之为结构伪类。例如:

  • :first 匹配分页媒体的第一页。
  • :first-child 匹配兄弟元素中的第一个元素。
  • :first-of-type 匹配兄弟元素中第一个某种类型的元素。

用户行为伪类

用户行为伪类亦可称之为动态伪类状态伪类。这些伪类只会在用户以某种方式和文档交互时应用,表现为用户在和元素交互时,在元素上添加了一个类。例如:

  • :hover 只会在用户将鼠标指针移动到元素上时,才会被激活。
  • :focus 只会在用户使用键盘控制,选定元素的时候被激活。

更多伪类请见MDN-味蕾和伪元素-参考节

什么是伪元素

伪元素类似表现为向 HTML 中添加了全新的元素,而不是向现有元素上应用类。

语法:

::pseudo-element-name
  • 1

:一些早期的伪元素曾使用单冒号的语法,现代的浏览器为了保持后向兼容,支持早期的带有单双冒号语法的伪元素。

例如:选中 <p> 元素中文本内容第一行

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>选中 p 元素中文本内容第一行</title>
    <style>
      article p::first-line {
        font-size: 120%;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <article>
      <p>
        Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh
        onion daikon amaranth tatsoi tomatillo melon azuki bean garlic.
      </p>

      <p>
        Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot
        courgette tatsoi pea sprouts fava bean collard greens dandelion okra
        wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.
      </p>
    </article>
  </body>
</html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

伪元素代码结果
更多伪元素如下表:

选择器描述
::after匹配出现在原有元素的实际内容之后的一个可样式化元素。
::before匹配出现在原有元素的实际内容之前的一个可样式化元素。
::first-letter匹配元素的第一个字母。
::first-line匹配包含此伪元素的元素的第一行。
::grammar-error匹配文档中包含了浏览器标记的语法错误的那部分。
::selection匹配文档中被选择的那部分。
::spelling-error匹配文档中包含了浏览器标记的拼写错误的那部分。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/845889
推荐阅读
相关标签
  

闽ICP备14008679号