CSS规则的优先级匹配
CSS规则之间能够互相覆盖。这一点我们应该已经习以为常了。然而正是因为规则之间能够互相覆盖、子元素继承父元素的默认行为,导致了CSS冲突的问题。
碰到CSS冲突时。通常我们会增加一些更加具体的规则来明白怎样显示,以此解决冲突。通常越具体的规则优先级会越高,但优先级到底是怎样定义的呢?
首先依据CSS定义位置来差别,优先级从低到高例如以下:
- 浏览器默认样式(Browser Default Style)
- 外部样式表
- 内部样式表
- 行内样式 (e.g., style="font-weight:bold")
相同定义位置的规则。依据不同类型选择器的个数来确定。选择器的优先级从低到高例如以下规则:
- F: Universal selectors (e.g., *)
- E: Type selectors (e.g., h1)
- D: Class selectors (e.g., .example)
- C: Attributes selectors (e.g., [type="radio"])
- B: Pseudo-classes (e.g., :hover)
- A: ID selectors (e.g., #example)
即 ID > 伪类 > 属性 > 类 > 元素 > 通配符,首先我们数规则中ID的个数,ID个数越多的规则优先级越高。假设同样。再数伪类,以此类推。
来个样例:
article p span{
color: blue;
}
#red{
color: red;
}
article的优先级:"A=0, B=0, C=0, D=0, E=3, F=0 (000030)"
p span#red的优先级:"A=1,
B=0, C=0, D=0, E=0, F=0 (100000)"(更高!)
再比方:
#wrapper header div nav #gnavi{
list-style-type: none;
}
#top #hright #gnavi{
list-style-type: square;
}
#wrapper的优先级:"A=2, B=0, C=0, D=0, E=3, F=0 (200030)"
header div nav #gnavi#top的优先级:"A=3, B=0, C=0, D=0, E=0, F=0 (300000)"(更高!)
#hright #gnavi
此外,最高优先级的是!import的属性,假设都加了!important那就继续数规则中属性和元素的个数。
能避免
!important的话就不要这样写了,这种样式太难扩展了。
參考链接:
- http://www.w3.org/wiki/CSS/Training/Priority_level_of_selector
- http://www.hongkiat.com/blog/css-priority-level/
除非注明,本博客文章均为原创,转载请以链接形式标明本文地址: http://harttle.com/2015/07/16/css-priority.html
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中的有些属性并没有起作用.通 ...
- 从webkit内核简单看css样式和css规则优先级(权重)
目录 webkit中样式相关类及类间关系 样式规则匹配 权重(优先级)计算 权重相同时的覆盖原则 webkit中样式相关类及类间关系 资料来源: <webkit技术内幕> 结构相关类: 1 ...
- 浏览器+css基础+选择器+权重+匹配规则
浏览器的组成: shell+内核 shell:用户能看得到的界面就叫shell 内核:渲染rendering引擎和js引擎 现在主流拥有自己开发内核的浏览器:opera现在属于360和昆仑万维 CSS ...
- nginx匹配规则说明以及匹配的优先级
location 匹配规则语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义location = /uri = 表示精确匹配,只有完全匹配上才能生效lo ...
随机推荐
- 大数据学习——KETTLE入门学习——kettle安装
https://blog.csdn.net/u012637358/article/details/82593492 下载的kettle是汉化的 改成英文的 工具——选项——选择英文
- Java判断浏览器是微信还是支付宝
private static final String WX_AGENT = "micromessenger"; private static final String ALI_A ...
- Leetcode 115 Distinct Subsequences 解题报告
Distinct Subsequences Total Accepted: 38466 Total Submissions: 143567My Submissions Question Solutio ...
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...
- iOS学习笔记38-MJExtension使用
一.MJExtension第三方框架 我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据.等等,如果我们自己全部手动去创建模型并 ...
- Hadoop High Availability
Hadoop High Availability HA(High Available), 高可用,是保证业务连续性的有效解决方案, 通常通过设置备用节点的方式实现; 一般分为执行业务的称为活动节点(A ...
- 面向对象oop思想
OOP核心思想:封装,继承,多态. 理解: 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象.而每继承性是对具有层次关系的类的属性和操作进行共享的 ...
- linux查找文件命令
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
- python根据文件目录、文件类型和文件与当前时间差删除文件
直接贴代码: 删除某个目录下的文件,不遍历木路下文件夹下的文件,根据时间差删除,默认7天 #!/usr/bin/python # -*- coding: gbk -*- import os impor ...
- linux下安装firefox
首先检查系统有没有安装:rpm -qa|grep firefox 如果有安装,先删掉rpm -e * firefox不同版本下载:http://liulanmi.com/firefox 具体方法如下: ...