网络编程
位置:首页>> 网络编程>> 网页设计>> 说说CSS的优先权 考虑CSS的继承与层叠

说说CSS的优先权 考虑CSS的继承与层叠

  发布时间:2008-12-11 13:33:00 

标签:优先权,继承,层叠,css

CSS2.1 中规定了关于 CSS 规则 Specificity(特异性)的计算方式,用一个四位的数字串(注:CSS2 中是用三位)来表示,最后以 Specificity 的高低判断 CSS 的优先权。

Specificity 具体的计算规则:

1.元素的 style 样式属性,加 1,0,0,0。 
2.每个 ID 选择符(#id),加 0,1,0,0。 
3.每个 class 选择符(.class)、每个属性选择符(例 [attr=”"] )、每个伪类(例 :hover),加 0,0,1,0。 
4.每个元素或伪元素(例 :firstchild)等,加 0,0,0,1。 
5.其他选择符(例 全局选择符 *,子选择符 >),加 0,0,0,0。 
最后逐位相加数字串,得到最终的 Specificity 值,按照从左到右的顺序逐位比较。除了 Specificity 还有一些其他规则:

6.!important 声明的规则高于一切,如果 !important 声明冲突,则比较优先权。 
7.如果优先权一样,则按源码中“后来者居上”的原则。 
8.由继承而得到的样式属性不参与 specificity 的计算,低于一切其他规则(例 全局选择符 * )。 

范例分析:

body h1 {color: green;} 
/* 两个普通元素加成,结果是 0,0,0,2 */ 
/*0,0,0,1 小于 0,0,0,2 ,后者胜出*/ 

h2.grape {color: purple;} 
/* 一个普通元素、一个class选择符加成,结果是 0,0,1,1*/ 

h2 {color: silver;} 
/*一个普通元素,结果是 0,0,0,1 */ 
/*0,0,1,1 大于 0,0,0,1 ,前者胜出*/ 

html > body table tr[id=”totals”] td ul > li {color: maroon;} 
/* 7个普通元素、一个属性选择符、两个其他选择符(子选择符 >),结果是0,0,1,7 */ 

li#answer {color: navy;} 
/* 一个ID选择符,一个普通选择符,结果是0,1,0,1 */ 
/*0,0,1,7 小于 0,1,0,1,后者胜出*/ 

故此将这片文章发上来和大家分享

在实际开发中,需要注意经验的总结与记忆。

只有理解与形象的东西,才能更好的吸收与应用。

0
投稿

猜你喜欢

  • 原来sql还有个stuff的函数,很强悍。 一个列的格式是单引号后面跟着4位的数字,比如'0003,'0120,'4
  • 有时候我们会在页面上显示用户的所在地区,这个原理是:先得到用户的IP,然后去查询将IP转换成一个数值,最后去查这个数值所在的范围,来得到用户
  • 数据处理在现代企业运营中变得越来越重要,越来越关键,甚至会成为企业发展的一项瓶颈. 数据保护的重要性也不言而喻. 如果一个企业没有很好的数据
  • 最近在改一个页面,原来的编码是gb2312,为了国际化,改成utf-8,开始时浏览还是正常。因为电脑偶感小恙,于是恢复了系统,这才发现改后的
  • 今天写了一个放迅雷焦点广告的效果,还请大家多多指正,先附上效果图一张:相关文章:迅雷首页新闻图片轮播效果js源码首先是JS代码部分,之前一定
  • 一、密码式给数据库起一个随机复杂的名称,避免被猜到被下载,这种方式在以前很流行,因为大家都对自己的代码很有自信。但随着错误提示对数据库地址的
  • 设置cookie每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:document.cooki
  •  这是个删除非空目录的例子test.asp要执行删除你需要对该目录具有修改权限<% dim fso,tmpfold
  • 首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的, 所以一般用户无法更改密码,除非请求管理员。方法一使用ph
  • 请问鼠标移过去就出现二级菜单代码怎么写啊    <head><style type="tex
  • 但是有时候,可以视看处进逻辑程度,可以把三者写成一个触发器,只是在其中稍作判断而已。 你可以根据从下面方法判断触发器是是处理了插入,删除还是
  • SQL Server数据库连接中常见的错误分析:一."SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生
  • 简单的说,组织体系指的就是组织信息的方式。看了一堆拗口的定义后,我根据自己的理解画了下面这个图:从上图看出,同样的图形元素由于采用了不同的组
  • 问题: 1.购物车中的数据是否应该存储在数据库中? 我特别想知道在真正的项目中,那些真正的软件工程师是如何考虑这个问题的。在Google上一
  • Css tranistions允许元素的属性在单位时间内发生平滑的过渡,在阅读完《CSS Transitions Module Level
  • 程序设计是困难的,其核心是管理的复杂性。计算机程序是人类做出的最复杂的东西。质量是不可靠的且隐蔽的。好的体系架构是必需给程序足够的结构使其健
  • 用户界面和用户体验(UI/UX)是任何产品成败的关键,尤其 Web,Web 是一种公开的,可以被任何人随时随地访问的特殊产品,用户的体验几乎
  • 优秀的Stoyan Stefanov在他的新书中(《Javascript Patterns》)介绍了很多编写高质量代码的技巧,比如避免使用全
  • 如何搭建完整的网站架构并设计出一个出色的网站?关于这个问题,我们很难提出一个绝对权威和正确的设计思路,但任何网站的设计都需要遵循一个循序渐进
  • 如何用METADATA替换ADOVBS.INC?     在ASP中,使用组件时,如ADO,得先包含
手机版 网络编程 asp之家 www.aspxhome.com