问答详情
源自:1-2 汽泡特效(SVG类型icon使用)

伪类 伪元素

为什么在添加圆的下面的倒三角的时候用伪类,而不是用伪元素?.tooltip-content::after{},
伪类和伪元素的区别是什么?

提问者:左转右行 2015-04-23 11:42

个回答

  • 慕斯8234454
    2020-05-04 10:03:51

    单冒号 (:) 表示伪类 :  已有元素处于某种状态时 , 为其添加对应的样式 , 状态是根据用户行为而动态变化 , 譬如 : 当用户悬停在指定的元素时,我们可以通过:hover 来描述这个元素的状态

    双冒号 (::) 表示伪元素 : 伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过::before 来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

  • Perona
    2015-05-05 12:36:55

    没有吧,定义不一样的说。

    伪类:http://www.w3school.com.cn/css/css_pseudo_classes.asp

    伪元素:http://www.w3school.com.cn/css/css_pseudo_elements.asp

    单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。

    双冒号是在当前规范中引入的,用于区分伪类和伪元素。但是伪类兼容现存样式,浏览器需要同时支持旧的伪类,比如:first-line、:first-letter、:before、:after等。

    对于CSS2之前已有的伪元素,比如:before和:after,单冒号和双冒号的写法::before和::after作用是一样的。

    如果只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。


  • Perona
    2015-04-23 12:12:16

    伪类用于向某些选择器添加特殊的效果。如::link,:visited,:hover,:active等。

    伪元素用于将特殊的效果添加到某些选择器。如::first-line,:first-letter,:before,:after 等。