总结在前:

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. css loading 效果

    .loading{ width:160px; height:56px; position: absolute; top:50%; left:50%; line-height:56px; color:# ...

  2. java代码-------Runnable的用法

    总结:主要是实现Runnable接口就必须重写run()方法,然后需要创建Thread类的对象,再调用start()方法 package com.s.x; public class testRunna ...

  3. 网络网关TCP/IP

    vmware中的4种网络连接模式 2008-11-13 11:11:21 分类: 系统运维 很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正. bri ...

  4. lamp环境应用实践

    LAMP之apache2.4.33 apache工作模式 apache 常用工作模式有2种,区别在于 worker模式 1. 线程模式 2. 占用资源少 3. 稳定性略差 4. 并发大 prefork ...

  5. 如何查看与分析IIS服务器日志?

    发布时间:2012-12-01 16:17:28.0 作者:青岛做网站   网站日志分析是站长每天的必备工作之一,服务器的一些状况和访问IP的来源都会记录在IIS日志中,所以IIS日志对每个服务器管理 ...

  6. 【转】Android编码规范建议18条

    转自:http://www.chinaz.com/design/2015/0908/443732.shtml Android编码规范建议18条 适合手机app设计师和android 工程师阅读. 1. ...

  7. 基于aop的redis自动缓存实现

    目的: 对于查询接口所得到的数据,只需要配置注解,就自动存入redis!此后一定时间内,都从redis中获取数据,从而减轻数据库压力. 示例: package com.itliucheng.biz; ...

  8. OpenLayers 3 之 切换图层控件

    OpenLayers 3 之 切换图层控件 openlayers 3中并没有默认的图层切换控件,GitHub中有一个项目实现了我们需要的控件-------- ol3-layerswitcher . 可 ...

  9. leetcode462

    public class Solution { public int MinMoves2(int[] nums) { var list = nums.OrderBy(x => x).ToList ...

  10. 模板导入 {include 模块名}

    模板导入可以和上面讲的模板继承一起使用, 可以使用模板的批量复制和导入 下面举一个例子 我们先写一个需要导入模块的html  tp1 {% extends 'master.html' %} {% bl ...