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 ...
随机推荐
- [uiautomator篇][9]遇到问题
1 (1) 修改apk的存储权限,不要创建文件会提示:文件找不到 (2) 退出应用 mDevice.executeShellCommand("am force-stop com.antutu ...
- C语言知识点(4)
一.while. dowhile. 1.while while (表达式) { 语句: … 语句: } 2.while do { printf(“%d/n,I);…}while (i<=1 ...
- 九度oj 题目1363:欢乐斗地主
题目描述: 如果大家玩过欢乐斗地主这个游戏,就一定知道有一个具有“提示”功能的按钮.如果你不知道你现在手里的牌有没有比上家大的牌,并且你也懒得去一张一张地看你手中的牌.这时候你就可以点“提示”按钮,系 ...
- ——CentOS 7 安装SQL Server2019
环境准备 不废话,先把研究环境搭建起来.由于某些原因(晚点再说),本系列首先使用CentOS 7作为操作系统.官方指引中支持的Linux平台及文件系统中并没有指出CentOS,但是作为与Red Ha ...
- [BZOJ4318] WJMZBMR打osu! / Easy (期望DP)
题目链接 Solution Wa,我是真的被期望折服了,感觉这道题拿来练手正好. DP的难度可做又巧妙... 我们定义: \(f[i]\) 代表到第 \(i\) 次点击的时候的最大答案. \(g[i] ...
- 【hihocoder】欧拉路径 并查集判连通
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- web 工程中利用Spring的 ApplicationContextAware接口自动注入bean
最常用的办法就是用 ClassPathXmlApplicationContext, FileSystemClassPathXmlApplicationContext, FileSystemXmlApp ...
- C# 模拟windows文件名称排序(使用windows自带dll)
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] private static extern int StrCmpLogi ...
- SharepPoint 2013安装体会
SharePoint 2013出来了,一直没有找到合适的机器来安装.前天腾出来一台内存8G的机器,决定在Hyper-V上安装在一台虚机,然后装个Windows 2012,再装SharePoint 20 ...
- 为了防止detailsview中修改后,而girdview却没立即更新显示
原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] 可以在detailsview的事件中添加如下语句,即增加一个头,让它在0秒的时候刷新: Response.AddH ...