`

CSS选择器及优先级

    博客分类:
  • CSS
阅读更多

这篇文章写得很清晰: http://www.demix.com.cn/blog/?p=34

 

最近一直被两个东西搞得很烦。一个是JavaScript的闭包,另外一个就是CSS选择器的优先级问题。

网上很多都是用一种数位计算法来进行优先级的比较。其实这样有些大题小作了一点。一个是模型不形象,比较难记,二者那种方法其实就是下面要所的优先级排序的具体化。

通常我们可以将CSS的优先级由高到低分为六组:

  1. 无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
  2. 第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
  3. 第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
  4. 第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
  5. 第五级由一个或多个 类型选择器定义。如 div{margin:6px;}  覆盖  *{margin:10px;} 。
  6. 最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。

另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。如 #i100 *.c20 *.c10{} 的优先级就会高于 #i100 *.c10 div p span em{} ,这是由于前者拥有一个第三级和两个第四级的选择器而后者第三级和第四级的选择器各为一个,当然前者优先级会比较高。

CSS选择器是一个非常灵活的CSS属性,优雅的使用它会使你的页面代码不再臃肿,而且还可以作为hack的妙用方法之一。

当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:

  1. 位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。
  2. 第二级的优先属性由位于 <style/>标签中的 @import 引入样式表所定义。
  3. 第三级的优先属性由<link/>标签所引入的样式表定义。
  4. 第四级的优先属性由<link/>标签所引入的样式表内的 @import 导入样式表定义。
  5. 第五级优先的样式有用户设定。
  6. 最低级的优先权由浏览器默认。

理解了这些CSS优先级问题后,也就不必苦恼于样式定于中的此类问题了。  :)

PS:以上学习于Pro CSS and HTML Design Patter

分享到:
评论

相关推荐

    CSS选择器权重计算及优先级

    介绍CSS中,单个选择器,以及复合选择器的权重计算规则,比如: .box #mydiv ul li.txt。通过计算选择器的权重,区别其优先级,判 断最终样式的覆盖效果。

    CSS标签选择器优先级.pdf

    CSS标签选择器优先级.pdf

    CSS中选择器优先级顺序实战讲解.pdf

    CSS中选择器优先级顺序实战讲解.pdf

    关于CSS选择器优先级的判断题附结果截图

    主要介绍了关于CSS选择器优先级的判断并附结果截图,需要的朋友可以参考下

    彻底弄懂CSS选择器以及优先级

    CSS选择器优先级得关系为: !important&gt;内联&gt;ID选择器&gt;类选择器&gt;标签选择器。 一种优先级算法 内联样式表的权值最高 (style=””) 权值为1000 统计选择符中的ID属性个数。(#id) 权值为100 统计选择符中的CLASS属性...

    CSS选择器种类、优先级与匹配原理详解

    这个时候突然意识到了CSS选择器的优先级问题,这里就CSS选择器的优先级问题做了一些总结。 51CTO推荐阅读:巧妙地使用CSS选择器 选择器种类 严格来讲,选择器的种类可以分为三种:标签名选择器、类选择器和ID选择...

    java教程超全面javaweb教程28天day2- 06 css的基本选择器的优先级

    java教程超全面javaweb教程28天day2-_06_css的基本选择器的优先级

    详解CSS中的选择器优先级顺序

    CSS在使用选择器对元素施加属性的时候会有先后顺序,包括特殊性和重要性等概念在内,这里我们就来详解CSS中的选择器优先级顺序,需要的朋友可以参考下

    详解CSS中的选择器优先级及样式层叠问题解决

    可是,我们经常看到带有元素名称的选择器,例如,在微软的项目模板中就有大量的带有元素名称的选择器,如果没有用的话,为什么要这样写呢?哈哈哈,这么写是有原因的,下面就带大家一起看一下! CSS Code复制内容到...

    深入理解CSS选择器优先级

    主要帮助大家深入理解CSS选择器优先级的相关内容,通过八个小例子分析比较CSS选择器优先级,感兴趣的小伙伴们可以参考一下

    解决CSS样式冲突的几个办法(小结)

    通过使用组合器(Combinator)将选择器的描述写得更加精确(参考CSS选择器 – MDN ),例如对于下述代码片段,如果想给.cellphones中的.apple增加样式,只使用.apple,势必会对.fruit中的.apple也造成影响。...

    css选择器优先级深入理解

    css基础选择器有标签选择器、类选择器、id选择器、通用选择器,本文将深入介绍css选择器优先级,这会给正在解决优先级问题的朋友,带来些许帮助

    CSS选择器-xmind

    CSS选择器 xmind - 选择器分类(ID选择器,类选择器,标签选择器,通配选择器,属性选择器,伪类选择器)。 - 选择器关系(分组,后代,子元素,相邻兄弟,后续兄弟)。 - CSS特性(优先级,继承,层叠)。

    CSS属性简写和选择器的优先级问题

    主要介绍了CSS属性简写和选择器的优先级问题,是CSS入门学习中的基础知识,需要的朋友可以参考下

    css优先级98908u0

     ID选择器(形如#id{}) 类选择器(形如.class{}) 标签选择器(形如body{}或者*{}),也就是ID选择器,类选择器,标签选择器中,ID选择器的优先级最高,标签选择器最低;  选择器越具体优先级就越高,也就是  ....

    举例详解CSS中的的优先级

    优先级是根据由每种选择器类型构成的级联字串计算而成的。他是一个对应匹配表达式的权重。 如果优先级相同,靠后的 CSS 会应用到元素上。 注意:元素在文档树中的位置是不会影响优先级的优先级顺序 优先级逐级增加的...

    01-HTML-CSS个人听课笔记

    内容概要:HTML5 新特性、语义化、CSS 选择器及优先级、position 属性:relative,absolute,sticky,Static、box-sizing属性、CSS 盒子模型、BFC块级格式上下文原理场景、元素水平垂直居中、元素隐藏、页面布局:...

Global site tag (gtag.js) - Google Analytics