伪元素选择器

伪元素选择器

  • ::first-letter —— 匹配指定选择器的首字母/首汉字

  • ::first-line —— 匹配指定选择器的首行。

  • ::selection —— 匹配元素中被用户选中或处于高亮状态的部分。

  • ::before —— 匹配被选元素的内容前面插入内容,可以与 content 配合使用

  • ::after —— 匹配被选元素的内容后面插入内容,可以与 content 配合使用

    before 和 after 的内容是无法被选取的

伪类和伪元素的区别

  1. 伪类本质上是为了弥补常规 CSS 选择器的不足,以便获取到更多信息;

  2. 伪元素本质上是创建了一个有内容的虚拟容器;

  3. CSS3 中伪类和伪元素的语法不同—— :是伪类 , ::是伪元素

  4. 可以同时使用多个伪类,而只能同时使用一个伪元素,且伪元素只能在末尾使用

  5. 根本区别在于:它们是否创造了新的元素, 这个新创造的元素就叫 "伪元素" 。

    • 伪元素/伪对象:是虚拟的元素,是创建新元素。 这个新元素(伪元素) 是某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中.
    • 伪类:(无标签,找不到, 只有符合触发条件时才能看到 ), 逻辑上存在但在文档树中却无须标识的“幽灵”分类。

伪元素特点

  • 伪元素要配合 content 属性一起使用
  • 伪元素不会出现在 DOM 中,所以不能通过 js 来操作,仅仅是在 CSS 渲染层加入
  • 伪元素的特效通常要使用:hover 伪类样式来激活

:before 和 ::before

  • 相同点
    • 都可以用来表示伪类对象,用来设置对象前的内容
    • :befor 和::before 写法是等效的
  • 不同点
    • :befor 是 Css2 的写法,::before 是 Css3 的写法
    • :before 的兼容性要比::before 好 ,不过在 H5 开发中建议使用::before 比较好

由于::before 和::after 生成的伪元素 包含在元素格式框内
因此不能应用在替换元素或单标签元素上, 比如 img 或 br 元素。

那些用 src 的都属于 导入,导入就是替换元素
用 href 的属于 引用,如 a 标签,非替换元素

相关推荐