总结在前:

0. 参考资料

1. 伪类和伪元素是不同的两种东西。

2. 伪类和伪元素都属于CSS选择器。

3. CSS引入伪类和伪元素是为了实现基于文档树之外的信息,i.e. 段落的第一行,的格式化。

4. 伪类和伪元素都不出现在源文件和文档树中。

  伪类:一开始单单只是用来表示一些元素的动态状态,典型的是<a>的 LVHA四个状态,CSS2标准扩展了概念范围, 使其成为了所有逻辑上存在,但在文档树中却无须标识的分类。

伪元素:代表某个元素的子元素,虽然这个子元素在逻辑上存在, 但是不存在于文档树中。

 

5. CSS3中为区分二者使用冒号,但是还没有完全实现,目前都是单冒号:

  -- 伪类用一个冒号 :first-child

  -- 伪元素用两个冒号  ::first-line

详细一点谈:

参考资料

  在CSS中可以将类选择器视为正则中的模式, div.value  等同于  div[class~=value]  ,CSS中的样式通常依附于一个元素在文档树中的位置,这个模型对于大多数情况来说是足够的,但是一些常见的版式状态不能应用于文档树的结构,如first-line,没有简单的CSS选择器可以应用到它,而且它也是动态变化的。

  伪类: 伪类对元素的划分是基于特征的,而不是基于他们的名字、属性或者内容,原则上特征是不可以从文档树中推断得到的(那是怎么实现的呢?)。伪类可以是动态的,在用户和文档进行交互的时候,一个元素可以得到或者失去一个伪类。  :first-child  和  :lang  某些情况可以用文档树推断,是例外。伪类有: :first-child, :link, :vistited, :hover:, active:focus, :lang

   伪元素:创造关于文档语言能够制定的文档树之外的抽象。 如: 文档语言不能提供访问元素内容的第一个letter或者第一行的机制,而使用伪元素可以办到。伪元素还给不存在源文件中的内容分配样式,i.e.  :before 和 :after

  伪类可以独立于文档的元素来分配样式,而且可以分配给任何元素(最常见的是 a 元素,也可以应用到其他元素上如  li ),逻辑上和功能上和类类似(i.e.都有匹配的作用),但是其是预定义的,不存在于文档树中且表达方式也不同,所以叫伪类。

  伪元素所控制的内容和一个元素控制的内容是一样的, 但是伪元素不是真正的元素,不存在于文档树中(可以动态添加到文档中), 不是真正的元素。

CSS 伪类和伪元素--pseudo的更多相关文章

  1. 谈谈css伪类与伪元素

    前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常见的:focus.:hover以及<a>标签的:link.:visited等,伪元素较常见的比如:before.:after等. ...

  2. css中伪类和伪元素的区别

    转载:http://www.cnblogs.com/ihardcoder/p/5294927.html CSS3伪类和伪元素的特性和区别   前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常 ...

  3. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  4. CSS伪类和伪元素

    一.伪类 CSS伪类用于向某些选择器添加特殊的效果,在W3规范中,CSS伪类有如下几个: CSS2.1 :active:向被激活的元素添加样式(激活是指点击鼠标那一下) :focus:向拥有键盘输入焦 ...

  5. CSS 属性 - 伪类和伪元素的区别

    伪类和伪元素皆独立于文档结构.它们获取元素的途径也不是基于id.class.属性这些基础的元素特征,而是在处于特殊状态的元素(伪类),或者是元素中特别的内容(伪元素).区别总结如下: ①写法不一样: ...

  6. 详解 CSS 属性 - 伪类和伪元素的区别[转]

    首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...

  7. CSS 属性 - 伪类和伪元素

    CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果.这里特殊指的是两者描述了其他 cs ...

  8. 关于css中伪类及伪元素的总结

    css中的伪类和伪元素总是混淆,今天参考了很多资料,也查看了部分文档,现将伪类及伪元素总结如下: 一.由来: 伪类和伪元素的引入都是因为在文档树里有些信息无法被充分描述,比如CSS没有"段落 ...

  9. CSS的伪类和伪元素

    伪类 W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2). 属性 描述 CSS :active 向被激活的元素添加样式. 1 :focus 向 ...

随机推荐

  1. GC之八--GC 触发Full GC执行的情况及应对策略

    目录: GC之一--GC 的算法分析.垃圾收集器.内存分配策略介绍 GC之二--GC日志分析(jdk1.8)整理中 GC之三--GC 触发Full GC执行的情况及应对策略 gc之四--Minor G ...

  2. Python项目打包成exe文件

    这里我们使用pyinstaller这个软件即可,使用pip即可完美安装,在要打包的程序目录下打开cmd输入 pyinstaller -F 文件名.py 即可成功,运行成功后生成一个dict文件夹,东西 ...

  3. ngui自适应

    增加UIROOT using UnityEngine; namespace Com.Xyz.UI { [ExecuteInEditMode] [RequireComponent(typeof(UIRo ...

  4. 十九 yield方法

    yield()方法的作用是放弃当前的CPU资源,让 其他任务占用CPU执行时间.但放弃时间不确定, 有可能刚刚放弃,马上又获得CPU时间片.

  5. 卷积神经网络之AlexNet网络模型学习

    ImageNet Classification with Deep Convolutional Neural Networks 论文理解  在ImageNet LSVRC-2010上首次使用大型深度卷 ...

  6. Confluence 5.4.2安装

    默认安装路径 /opt/atlassian/confluence/bin Confluence是Atlassian公司出品的团队协同与知识管理工具. Confluence是一个专业的企业知识管理与协同 ...

  7. html中的一些常用的样式标签

    html中的一些常用的样式标签 <p>这里是文本,<mark>高亮</mark></p> <strong>加粗,加重语气</stron ...

  8. 用python给图片添加文字(水印)

    题目来源于:Python 练习册,每天一个小程序 第0000题 代码如下: #-*- coding:utf-8 -*- import PIL from PIL import Image from PI ...

  9. Spring注解配置Aop

    之前学习了SpringAop的基本原理.http://www.cnblogs.com/expiator/p/7977975.html 现在尝试使用注解来配置SpringAop. Aop,面向切面编程. ...

  10. centos7 更新源 安装ifconfig

    centos7最小化安装后,ifconfig是不可用的,可以使用ip addr或ip link查看网络信息. 更新源之前,先确定网络是否连通.我用的虚拟机,因为桥接受公司ip限制,换成了NAT模式,确 ...