CSS 的选择器有很多类型,我们将常用的这些列表如下:

一、CSS 选择器的类别

1. 基本选择器

基本选择器 解释 备注
* 通用选择器,匹配所有元素 CSS2
E 元素选择器,匹配类型为 E 的所有元素 CSS1 
.foo 类选择器,匹配 class 属性包含 "foo" 的所有元素 CSS1 
#bar ID 选择器,匹配 id 属性等于 "bar" 的惟一元素 CSS1 

2. 组合选择器

组合选择器 解释 备注
E, F 多元素选择器,匹配 E 和 F CSS1
E F 后代选择器,匹配 E 的后代 F CSS1
E > F 子元素选择器,匹配 E 的子元素 F CSS2
E + F 相邻选择器,匹配紧随 E 元素的同级元素 F CSS2 

3. 属性选择器

属性选择器 解释 备注
E[att] 匹配拥有 attr 属性的所有 E 元素 CSS2
E[att=val] 匹配 attr 属性等于 val 的所有 E 元素 CSS2 
E[att~=val] 匹配 attr 属性包含 val 值的所有 E 元素,各个值用空格隔开 CSS2
E[att|=val] 匹配 attr 属性包含 val 值的所有 E 元素,各个值用连字号隔开 CSS2 

4. 伪类选择器

伪类选择器 解释 备注
E:hover 匹配鼠标悬停其上的所有 E 元素 CSS2
E:focus 匹配获得输入焦点的所有 E 元素 CSS2
E:active 匹配处于活动状态的所有 E 元素 CSS1
E:link 匹配未被访问的所有 E 链接 CSS1 
E:visited 匹配已被访问的所有 E 链接 CSS1
E:first-child 匹配 E 元素的第一个子元素 CSS2

5. 伪元素选择器

伪元素选择器 解释 备注
E:before 在 E 元素之前添加内容 CSS2
E:after 在 E 元素之后添加内容 CSS2 
E:first-line 匹配 E 元素的第一行 CSS1
E:first-letter 匹配 E 元素的首个字符 CSS1

二、CSS 优先级的计算

CSS 样式的优先级由四个级别组成,它们分别是:

  1. 是否为标签中定义的样式
  2. ID 选择符的个数
  3. 类选择符,伪类选择符和属性选择符的个数
  4. 元素选择符和伪元素选择符的个数

在计算 CSS 样式的优先级时,根据这些级别和特殊情形依次比较:(A)!important 样式高于其它样式;(B)标签内定义的样式优先于 CSS 文件中定义的样式;(C)如果前面的优先级一样,则依次比较后面三个级别的数目,谁大谁优先;(D)继承得到的样式比非继承的低;(E)如果优先级都一样,则使用最后出现的样式。

参考资料:
[1] W3C CSS2 Selectors
[2] W3C CSS3 Selectors
[3] Selectors - Web developer guide | MDN
[4] CSS selectors - quirksmode.org
[5] CSS Properties & Selectors | CSS Creator
[6] Understanding CSS Selectors (Internet Explorer) - MSDN
[7] CSS Compatibility in Internet Explorer (Internet Explorer) - MSDN
[8] CSS选择器笔记 - 阮一峰的网络日志
[9] CSS选择器的浏览器支持 | 前端观察
[A] W3C CSS 2.1 - Calculating a selector's specificity
[B] Specifics on CSS Specificity | CSS-Tricks
[C] CSS优先级 - Rain Man - 博客园

CSS 选择器及其优先级的更多相关文章

  1. CSS选择器以及优先级与匹配原理

    最常用的五类CSS选择器 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选 ...

  2. CSS选择器、优先级与匹配原理(转)

    CSS选择器.优先级与匹配原理 导航 为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors, Part 1 计算指定选择器的优先 ...

  3. 详解CSS选择器、优先级与匹配原理

    原文链接:http://polaris1119.javaeye.com/blog/764428 作为一个Web开发者,掌握必要的前台技术也是很重要的,特别是在遇到一些实际问题的时候.这里给大家列举一个 ...

  4. 转载:详解CSS选择器、优先级与匹配原

    转载网址:http://polaris1119.javaeye.com/blog/764428 文章就CSS选择器的优先级问题做了一些总结,严格来讲,选择器的种类可以分为三种:标签名选择器.类选择器和 ...

  5. CSS选择器、优先级和匹配原理

    作为一个Web开发者,掌握必要的前台技术也是很重要的,特别是在遇到一些实际问题的时候.这里给大家列举一个例子: 给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通 ...

  6. 详解CSS选择器、优先级与匹配原理【转】

    作为一个Web开发者,掌握必要的前台技术也是很重要的,特别是在遇到一些实际问题的时候.这里给大家列举一个例子: 给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通 ...

  7. (转)css选择器及其优先级

    文章主要介绍什么是CSS选择器,CSS选择器的分类以及CSS选择器的优先级三部分内容,希望能够帮助到正在学习CSS的童鞋,有什么不足的地方欢迎大家批评指正. 一.什么是CSS选择器? CSS选择器又被 ...

  8. CSS 选择器及优先级

    CSS 选择器及优先级 1.根据权值计算 div .class1 #people的权值等于1+10+100=111 .class2 li #age的权值等于10+1+100=111 2.权值相同,那么 ...

  9. CSS选择器、优先级与匹配原理

    为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors, Part 1 计算指定选择器的优先级:重新认识CSS的权重 标签的权值为 ...

  10. CSS选择器及其优先级

    一:一些普通的选择器 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&quo ...

随机推荐

  1. single page

    http://msdn.microsoft.com/zh-cn/magazine/cc507641.aspx#S7 http://blog.nodejitsu.com/scaling-isomorph ...

  2. python image模块

    Image 模块 Image 模块提供了同名的类用来表示PIL的图像.Image模块还提供了许多工厂(factory)函数,包块从文件加载图像的函数,以及创建新图像的函数.    例子  下面的脚本加 ...

  3. routes.IgnoreRoute("{resource}.axd/{*pathInfo}")作用

    {resource}.axd 表示后缀名为.axd所有资源 如webresource.axd{*pathInfo} 表示所有路径 作用:使路由系统忽略处理ASP.NET的Web资源文件(WebReso ...

  4. UVA 1160 X-Plosives

    题意是一次装入物品,物品由两种元素组成,当遇到即将装入的物品与已经装入的物品形成k个物品,k种元素,跳过该物品的装入.可以将每种元素看成顶点,物品看成一条边.这样问题就转化为利用并查集求环的情况. 算 ...

  5. MSSql2008打开企业管理器出错,具体显示提示无法识别的配置节 system.serviceModel。

    MSSql2008打开企业管理器出错详细信息: 标题: 已注册的服务器 ------------------------------   无法读取此系统上以前注册的服务器的列表.请在“已注册的服务器” ...

  6. 让QT编译快一点(增加基础头文件)

    姚冬,中老年程序员 进藤光.杨个毛.欧阳修 等人赞同 我是来反对楼上某些答案的.我曾经用MFC写了金山词霸(大约20多万行),又用Qt写了YY语音(大约100多万行),算是对两种框架都比较有经验.纠正 ...

  7. 万能脚本助Web执行底层Linux命令

    需求分析: 这里先要说明的是,这一篇不是QT系列的文章,而是关于Web的,之所以要写这篇,是因为以前做Web相关开发的时候,经常涉及到与linux底层命令打交道,比如说创建一个目录,删除一个目录,或者 ...

  8. 弱安全协议探测工具-sslciphercheck

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为 网络通信提供安全及数据完整性的一种安全协议.TLS ...

  9. lunux下查看文件文件夹大小的命令

    使用ls -lht命令显示当前目录下的所有文件,其中有一列就是显示这个文件的大小.如果要看一个文件夹的大小,可以用du -sh *

  10. poj2029Get Many Persimmon Trees(最大矩阵和)

    链接 类似最大矩阵 sum存下 枚举最大就是 #include <iostream> #include<cstdio> #include<cstring> #inc ...