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 ...
随机推荐
- MSTest不支持参数化测试的解决方案
之前的项目中做单元测试一直用的是NUnit,这次做新项目,负责人要求统一用MsTest,理由是MsTest是Visual Studio内置的.用就用吧,我没什么意见.不过用了两天,我就发现一个大问题: ...
- firefox浏览器删除插件
打开注册表编辑器([开始菜单]→[运行]或 Win+R快捷键打开运行,输入regedit). 2 点击菜单栏[编辑]→[搜索],或者按 Ctrl + F 快捷键,搜索 MozillaPlugins . ...
- web前端开发分享-css,js进阶篇
一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践 经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无 从 ...
- 《php和mysql web开发》读书笔记
总算是强迫自己把第一篇给看完了,在这里做一个小结,将一些知识点记录下来. 一.第一篇 使用PHP 1.php中的注释.php支持c.c++和shell脚本风格注释 /**/多行注释 //单行注释 ...
- Java简单文件传输 socket简单文件传输示例
服务器端代码: import java.io.*; import java.net.*; /** * Created with IntelliJ IDEA. * User: HYY * Date: 1 ...
- DHTMLX 前端框架 建立你的一个应用程序 教程(七)-- 添加筛选功能
表格的过滤筛选 我们在每列第一行添加一个文本,用做数据的条件筛选. 我们还提供服务端的筛选 ,当有大量数据时 , 我们可以使用dhtmlxConnector 进行后台数据的筛选. 添加过滤器到表格列中 ...
- NHibernate与EF(Entity Framework)的区别
http://www.cnblogs.com/lukun/archive/2011/05/16/2047587.html NHibernate与EF(Entity Framework)的区别 http ...
- SQLite入门与分析(八)---存储模型(1)
写在前面:SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树 ...
- ANDROID_MARS学习笔记_S01原始版_016_Service
一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...
- 第八章CDC设备
8.1 CDC设备介绍 USB的CDC类是USB通信设备类(Communication Device Class)的简称.CDC类是USB组织定义的一类专门给各种通信设备(电信通信设备和中速网络通信设 ...