`
panshaobinSB
  • 浏览: 197941 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CSS优先级(转)

阅读更多
http://blog.csdn.net/shirenfeigui/article/details/8625015
我将CSS优先级总结为四个级别的优先,按照从高到低的顺序排列分别是标签离修饰内容近,!important相关,选择器级别,CSS代码位置靠下。在比较的时候从高往低比较。如果在某一优先级层面上已经比较出不同,就不需要继续比较;否则进入下一级的比较。下面详细的描述这四个优先级

第一优先级为标签离修饰内容近。例如<div id="a"><div class="b">内容</div></div>中,b的位置就比a离文字更近,当选择#a和.b的时候,.b的优先级更高

第二优先级为!important相关的优先,顺序为!important用户,!important作者,作者,用户,浏览器。其中用户是阅读网页的人,作者是写网页代码的人,浏览器指浏览器的默认样式。在浏览网页的时候我们可以发现,对于未定义过CSS字体大小的网页,可以通过点击浏览器上面的字体大小改变字体,这就是用户高于浏览器的例子。而定义过CSS字体大小的网页,则无法通过浏览器上面的字体大小改变字体,这就是作者高于用户的例子。

第三为选择器级别的优先。选择器有四种,按照优先级排列为:行内样式(style=""),id选择器(#name{}),class选择器(.name{}),标签选择器(div{})。在进行比较的时候,先比较最高位的数量,如果相同,比较低位的数量,直到得出结果。如果所有位的数量均相同,进入第四优先级的比较。

第四为选择器为CSS代码的位置。加入CSS的方法有四种:
行内样式:<div style="color:red;">
嵌入式:<style type="text/css">p{color:red;)</style>
外部链接式:<link href="sty.css" rel="stylesheet" type="text/css" />
导入式:<style type="text/css">@import url("sty2.css");</style>
在前三级优先级均相同的情况下,它们的位置哪个靠下,哪个优先级高。由于行内样式在第三级优先级最高,所以不可能出现行内样式和其它样式进入第四级pk的情况,因此在第四级的比较中是进行嵌入式,外部链接式,导入式的位置比较。先将外部链接式和导入式的代码排列在文档内,然后就可以比较单条语句的顺序了。
注意:1、语句可以位于页面的任何位置,总是靠下的优先
2、对于一个<style>标签,要么写入嵌入样式,要么写入导入样式。

下面给出一些实例来描述以上四个优先级之间的关系

第一和第二的比较
<style type="text/css">
#a{color:blue!important;}
#b{color:red;}
</style>
<body>
<div id="out"><div id="a"><p id="b">文字</p></div></div>

b离修饰内容更近,虽然a有!important,还是不能覆盖,显示红色

第二和第三的比较
<style type="text/css">
#a{color:blue!important;}
div #a{color:red;}
</style>
<body>
<div id="out"><div id="a"><p id="b">文字</p></div></div>

div #a中有一个标签选择,一个id选择;a中只有一个id选择,但由于使用了!important所以优先级变高,显示蓝色。

第一和第三的比较
<style type="text/css">
#b{color:blue;}
#out #a{color:red;}
</style>
<body>
<div id="out"><div id="a"><p id="b">文字</p></div></div>

虽然下面的id选择符更多,但是b离内容更近,所以是蓝色

第一和第三的比较-行内样式的优先级问题
<style type="text/css">
.c3{color:blue;}
</style>
<body>
<div style="color:red;" id="a" class="c2" ><p id="b" class="c3">文字</p></div>

在外层div使用了行内样式,但CSS选择器选择的是更靠近内容的class,所以是蓝色。如果选择器选择.c2,类选择优先级不如行内选择,就显示为红色

附加内容:内嵌代码修饰的位置
<style type="text/css">
#b{color:blue;}
</style>
<body>
<div id="out"><div id="a"><font color="red"><p id="b">文字</p></font></div></div>

这里虽然有行内样式,但其修饰位置比b更加靠外,所以是蓝色

font修饰的到底是哪个呢?font其实也可以看做一个标签
<style type="text/css">
font{color:blue;}
</style>
<body>
<div id="out"><div id="a"><font color="red"><p id="b">文字</p></font></div></div>

这时候显示为蓝色。而选择#a的时候就会显示红色了。选择#b的时候则显然是蓝色。这说明内嵌标签的修饰位置在它两端的标签之间,而内嵌标签的修饰词汇的优先级比标签选择(参考第三级优先)更弱。
分享到:
评论

相关推荐

    css优先级总结

    CSS 优先级小结 CSS初学感觉很简单,但随着学习的深入才感觉CSS的水由多深,平常总会遇到各种坑,先总结一些经常遇到的坑。

    HTML5&CSS3网页制作:CSS优先级.pptx

    CSS高级特性--CSS优先级 CSS优先级 01 CSS优先级 网页制作时,对统一元素,应用不同的背景,会出现什么情况? 思考 background-color:pink; background-color:blue; background-color:red; 【结论】 定义CSS样式时,...

    css样式优先级比较实例

    css样式优先级比较实例, css样式优先级比较实例, css样式优先级比较实例

    CSS优先级总结.pdf

    CSS优先级总结.pdf

    css优先级98908u0

     我们先看看css的优先级的几个基本的规则:  ID选择器(形如#id{}) 类选择器(形如.class{}) 标签选择器(形如body{}或者*{}),也就是ID选择器,类选择器,标签选择器中,ID选择器的优先级最高,标签选择器最低; ...

    Web前端开发中新手必看的CSS优先级关系教程共3页.pd

    Web前端开发中新手必看的CSS优先级关系教程共3页.pdf.zip

    CSS优先级计算的规则

    主要介绍了CSS优先级计算的规则,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    CSS优先级规则的细节

    详解CSS优先级的读法,CSS优先级包含四个级别(文内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数。根据这四个级别出现的次数计算得到CSS的优先级。  最近看到篇对CSS优先级有比较好的解释的...

    网页css优先级为您详细解读

    所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序,CSS是层叠样式表(Cascading Style Sheets)的简称,我们能通过CSS为文档设置丰富且易于修改的外观

    CSS 优先级使用技巧

    css优先级的四大原则: 原则一: 继承不如指定 如果某样式是继承来的永远不如具体指定的优先级高。例子1:CODE:&lt;style type=text/css&gt; &lt;!– *{font-size:20px} .class3{ font-size: 12px; } –&gt; &lt;/style...

    CSS优先级算法如何计算?有哪些判定规定及计算方式

    CSS 的specificity 特性或称非凡性,它是一个衡量CSS值优先级的一个标准,既然作为标准,就具有一套相关的判定规定及计算方式,specificity用一个四位的数 字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面...

    css优先级计算方法(推荐)

    主要的css选择器有id,class,tag,[],:,::等...则通常的css优先级比较可转化为数值大小的比较,如:#list li和.list .content ul li,其优先级为: 100+1=101 &gt; 10+10+1+1=22 前者的优先级大于后者。 以上这篇css优先级计

    css样式应用优先级实用PPT课件.pptx

    css样式应用优先级实用PPT课件.pptx

    老调重弹的CSS优先级

    首先,我们对CSS作一个简单的说明:CSS是层叠样式表(Cascading Style Sheets)的简称。它的规范代表了互联网历史上一个独特的发展阶段。现在对于从事网页制作的朋友来说,应该... 所谓CSS优先级,即是指CSS样式在浏览

    CSS 优先级问题详解

    那么应该如何处理 CSS 优先级问题呢,下面我总结了一些解决 CSS 优先级问题的常用法则。 样式距离 我们可以通过使用外部样式、内部样式、内联样式等方法给元素添加指定的样式,此时的优先级是: 外部样式 &lt; 内部...

    CSS优先级和!important与IE6的BUG讨论及解决方案

    本来我对他谁的ie6不支持!important也没什么异议,可是正好在前几天正好用个这个!important属性解决了一个样式优先级的问题,而且是支持ie6的,这是为什么呢?到底ie6支不支持!important呢

    CSS 优先级 详细分析

    在讲CSS优先级之前,我们得要了解什么是CSS,CSS是用来做什么的。 首先,我们对CSS作一个简单的说明:CSS是层叠样式表(Cascading Style Sheets)的简称。它的规范代表了互联网历史上一个独特的发展阶段。现在对于...

    浏览器如何判断css优先级

    如果优先级相同,元素最终会应用 CSS 中靠后的声明. 注意: 在文档树中的距离是不会对元素优先级计算产生影响的.(可以看文档中无视DOM树中的距离的例子) 优先级顺序下列是一份优先级逐级增加的选择器列表: 通用选择...

Global site tag (gtag.js) - Google Analytics