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(Cascading Style Sheets)是一种用于描述网页文档布局的语言,主要用于控制HTML或XML等文档中的元素显示样式。初学者往往会觉得CSS非常简单直观,但实际上,随着对CSS掌握...
在多个CSS规则应用于同一元素时,理解CSS优先级至关重要,因为它决定了哪个样式会生效。这个概念对于创建美观且功能完备的网页至关重要。 首先,我们来探讨CSS优先级的基本原则: 1. 继承性:当一个元素没有明确的...
CSS优先级总结 CSS优先级总结是一个非常重要的知识点,它决定了CSS样式的应用顺序和优先级。在CSS中,优先级是指样式规则的应用顺序,高优先级的样式规则将覆盖低优先级的样式规则。 在CSS中,有多种选择器可以...
CSS优先级是网页设计中一个至关重要的概念,它决定了浏览器如何解析和应用样式规则,从而影响页面元素的呈现。在深入探讨优先级之前,我们先简单回顾一下CSS的基础。CSS,全称为层叠样式表(Cascading Style Sheets...
### CSS优先级冲突:终极解决指南 在前端开发过程中,CSS(Cascading Style Sheets,层叠样式表)是必不可少的一项技术。它不仅能够帮助设计师和开发者控制网页的布局、颜色、字体等视觉特性,还能通过媒体查询实现...
本教程“Web前端开发中新手必看的CSS优先级关系教程共3页.pdf”旨在详细阐述这一主题。 首先,我们需要了解CSS选择器的基本类型及其权重。选择器分为四类:ID选择器(如#myId)、类选择器(如.myClass)、标签选择...
### CSS优先级与!important属性详解 #### CSS优先级的基本规则 在CSS中,样式表的优先级决定了元素最终采用哪一套样式。理解CSS优先级的基本规则对于开发人员来说至关重要,尤其是在处理复杂的页面布局时。 1. **...
在CSS(层叠样式表)中,样式优先级是一个关键概念,它决定了浏览器如何解析和应用不同的CSS规则来渲染网页元素。本实例将深入探讨CSS样式的优先级比较,帮助你更好地理解和控制页面的视觉呈现。 首先,我们需要...
CSS优先级计算规则是网页设计与开发中的一个基础知识点,它决定了当多个CSS规则应用于同一元素时,哪些规则将被浏览器采纳。以下是对这一知识领域的详细说明。 首先,CSS的引入方式对优先级有一定的影响。一般来说...
CSS优先级的规则基于几个原则,主要包括特殊性的权重计算和选择器类型的区分。特殊性是一个量度,用以表示某个CSS规则相对于其他规则的优先级权重,用一组数字来表示(通常是三位数,但在CSS 2.1中使用四位数)。...
详解CSS优先级的读法,CSS优先级包含四个级别(文内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数。根据这四个级别出现的次数计算得到CSS的优先级。 最近看到篇对CSS优先级有比较好的解释的...
css优先级的四大原则: 原则一: 继承不如指定 如果某样式是继承来的永远不如具体指定的优先级高。例子1:CODE:<style type=text/css> <!– *{font-size:20px} .class3{ font-size: 12px; } –> </style...
CSS 样式应用优先级详解 CSS 样式应用优先级是指在CSS样式规则应用时的顺序和优先级。该优先级规则决定了哪些样式规则将被应用于HTML元素。下面是CSS样式应用优先级的详细解释: 1. 重要声明(!important) 重要...
CSS优先级是CSS编程中的一个核心概念,它决定了当同一个元素受到多个CSS规则影响时,哪些规则会被应用,哪些则不会。学习CSS优先级对于前端开发者来说至关重要,因为它能够帮助开发者解决样式冲突的问题,并编写出...
CSS 的specificity 特性或称非凡性,它是一个衡量CSS值优先级的一个标准,既然作为标准,就具有一套相关的判定规定及计算方式,specificity用一个四位的数 字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面...
主要的css选择器有id,class,tag,[],:,::等...则通常的css优先级比较可转化为数值大小的比较,如:#list li和.list .content ul li,其优先级为: 100+1=101 > 10+10+1+1=22 前者的优先级大于后者。 以上这篇css优先级计
那么应该如何处理 CSS 优先级问题呢,下面我总结了一些解决 CSS 优先级问题的常用法则。 样式距离 我们可以通过使用外部样式、内部样式、内联样式等方法给元素添加指定的样式,此时的优先级是: 外部样式 < 内部...
总结来说,CSS优先级关系是通过样式来源和选择器特异性来确定的。理解这个关系对于精确控制网页的样式至关重要。正确地应用这些规则可以帮助开发者避免样式冲突,创建出更加整洁和易于管理的CSS代码。