详解 CSS 属性 - 伪类和伪元素的区别

来源:互联网 发布:上海斑马公寓知乎 编辑:程序博客网 时间:2024/05/16 14:03
详解 CSS 属性 - 伪类和伪元素的区别

之前写了一篇 《详解 CSS 属性 - :before && :after》 的博文,当时自己没分清楚伪元素和伪类,所以在文章内把概念混淆了,庆幸 @riophae 兄指正了我的错误,所以今天打算好好研究下两者的区别。
首先,阅读 w3c 对两者的定义:

  • CSS 伪类用于向某些选择器添加特殊的效果。
  • CSS 伪元素用于将特殊的效果添加到某些选择器。

可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果。这里特殊指的是两者描述了其他 css 无法描述的东西。

伪类种类

伪元素种类

区别

这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。

p>i:first-child {color: red}<p> <i>first</i> <i>second</i></p>

//伪类:first-child 添加样式到第一个子元素
如果我们不使用伪类,而希望达到上述效果,可以这样做:

p:first-letter {color: red}<p>I am stephen lee.</p>

//伪元素:first-letter 添加样式到第一个字母
那么如果我们不使用伪元素,要达到上述效果,应该怎么做呢?

:Pseudo-classes::Pseudo-elements

但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。

0 0
原创粉丝点击