CSS 选择器及其优先级
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 样式的优先级由四个级别组成,它们分别是:
- 是否为标签中定义的样式
- ID 选择符的个数
- 类选择符,伪类选择符和属性选择符的个数
- 元素选择符和伪元素选择符的个数
在计算 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 选择器及其优先级的更多相关文章
- CSS选择器以及优先级与匹配原理
最常用的五类CSS选择器 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选 ...
- CSS选择器、优先级与匹配原理(转)
CSS选择器.优先级与匹配原理 导航 为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors, Part 1 计算指定选择器的优先 ...
- 详解CSS选择器、优先级与匹配原理
原文链接:http://polaris1119.javaeye.com/blog/764428 作为一个Web开发者,掌握必要的前台技术也是很重要的,特别是在遇到一些实际问题的时候.这里给大家列举一个 ...
- 转载:详解CSS选择器、优先级与匹配原
转载网址:http://polaris1119.javaeye.com/blog/764428 文章就CSS选择器的优先级问题做了一些总结,严格来讲,选择器的种类可以分为三种:标签名选择器.类选择器和 ...
- CSS选择器、优先级和匹配原理
作为一个Web开发者,掌握必要的前台技术也是很重要的,特别是在遇到一些实际问题的时候.这里给大家列举一个例子: 给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通 ...
- 详解CSS选择器、优先级与匹配原理【转】
作为一个Web开发者,掌握必要的前台技术也是很重要的,特别是在遇到一些实际问题的时候.这里给大家列举一个例子: 给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通 ...
- (转)css选择器及其优先级
文章主要介绍什么是CSS选择器,CSS选择器的分类以及CSS选择器的优先级三部分内容,希望能够帮助到正在学习CSS的童鞋,有什么不足的地方欢迎大家批评指正. 一.什么是CSS选择器? CSS选择器又被 ...
- CSS 选择器及优先级
CSS 选择器及优先级 1.根据权值计算 div .class1 #people的权值等于1+10+100=111 .class2 li #age的权值等于10+1+100=111 2.权值相同,那么 ...
- CSS选择器、优先级与匹配原理
为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors, Part 1 计算指定选择器的优先级:重新认识CSS的权重 标签的权值为 ...
- CSS选择器及其优先级
一:一些普通的选择器 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&quo ...
随机推荐
- 如何确定照片是否被PS过
除了用软件,还可以先右键属性----解除锁定----重新打开属性看详细信息.
- 1012: [JSOI2008]最大数maxnumber
单点更新,区间求最大值的题: 可以使用树状数组和线段树: #include<cstdio> #include<cstring> #include<algorithm> ...
- FastCGI中文规范
http://fuzhong1983.blog.163.com/blog/static/1684705201051002951763/ . 介绍 FastCGI是对CGI的开放的扩展,它为所有因特网应 ...
- ASP.NET生命周期详解
最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等 ...
- SDUT 1646 Complicated Expressions
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1646 题意 : 话说我根本没读题,,,因为实在 ...
- Vmware 8.00 文件共享ubuntu
http://bolg.sinaapp.com/html/2012/1848.html 这是解决vm不能共享的解决方案. 今天学会的Linux命令: cp -i *** ~/tmp cd VMware ...
- easyui源码翻译1.32--SearchBox(搜索框)
前言 使用$.fn.searchbox.defaults重写默认值对象.下载该插件翻译源码 搜索框提示用户需要输入搜索的值.它可以结合一个菜单,允许用户选择不同的搜索类别.在用户按下回车键或点击组件右 ...
- VirtualBox虚拟vdi磁盘扩容
http://blog.chinaunix.net/uid-25627207-id-3342576.html
- puppy 制作linux
经过一段时间的使用以后,我们每个人电脑里的Puppy Linux都是独一无二的,我们可以通过简单的方法将自己电脑上的Puppy制作成iso或Live-CD,成为自己玩的“Only You”Puppy ...
- oracle的exp、imp命令
1.EXP a>完全模式 full=y EXP USER/PASSWORD@DB (AS ROLE) BUFFER=64000 FILE=C:\FULL.DMP FULL=Y b>用户模式 ...