CSS的specificity特性或非凡性,它是一个衡量css优先级的一个标准,

既然的标准就有判定规定和计算方式,specificity用一个四位数来表示,

更像四级从左到右,左的最大级,一级大于一级,数位之间没有进制,

多个选择符用到同一个元素上时那么specificity上值高的最终获得优先级。

css specificity

规则

1、行内样式优先级specificity值为1,0,0,0 高于外部定义

  如<div style="height:50px; width:50px;">Div</div>  //行内样式

  外部定义指经由<link>或<style>标签定义的规则

2、按CSS代码中出现的顺序决定,后者CSS样式居上;(近水楼台 先得月)

3、!important声明specificity值优先级最高

4、由继续而得到的样式没有specificity的计算,它低于一切其他规则(比如全局选择符*定义规则)

算法:

当遇到多个选择符同时出现时候 
按选择符得到的Specificity值逐位相加, 
{数位之间没有进制 比如说: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0} 
就得到最终计算得的specificity, 
然后在比较取舍时按照从左到右的顺序逐位比较。

实例分析:

1.div { font-size:12px;} 
分析: 
1个元素{ div},Specificity值为0,0,0,1

2.body div p{color: green;} 
分析: 
3个元素{ body div p },Specificity值为0,0,0,3

3.div .sjweb{ font-size:12px;} 
分析: 
1个元素{ div },Specificity值为0,0,0,1 
1个类选择符{.sjweb},Specificity值为0,0,1, 0 
最终:Specificity值为 0,0,1,1

4.Div # sjweb { font-size:12px;} 
分析: 
1个元素{ div },Specificity值为0,0,0,1 
1个类选择符{.sjweb},Specificity值为0,1,0, 0 
最终:Specificity值为 0,1,0,1

5.html > body div [id=”totals”] ul li > p {color:red;} 
分析: 
6个元素{ html body div ul li p} Specificity值为0,0,0,6 
1个属性选择符{ [id=”totals”] } Specificity值为0,0,1,0 
2个其他选择符{ > > } Specificity值为0,0,0,0 
最终:Specificity值为 0,0,1,6

CSS优先级算法是如何计算?的更多相关文章

  1. 508,css优先级算法如何计算?

    优先级就近原则,同权情况下样式定义最近者为准 载入样式以最后载入的定位为准 优先级:!important>id > class >tag;  !important比内联优先级高 (百 ...

  2. CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算?

    CSS 选择符有哪些? 1.id选择器(#id) 2.类选择器(.class) 3.标签选择器(div,h1,p) 4.相邻选择器(h1 + p) 5.子选择器(ul > li) 6.后代选择器 ...

  3. css选择器有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先

    CSS选择器:基本可以分为通配选择器,标签选择器,类选择器,ID选择器,简单属性选择,具体属性选择,根据部分属性值选择,特定属性选择,从结构上来分还有后代选择器,子元素选择器,相邻兄弟选择器以及伪类. ...

  4. CSS选择符、属性继承、优先级算法以及CSS3新增伪类、新特性

    CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?CSS新增了哪些特性?下面我整理了一些,仅供参考. CSS 选择符: 1)      id选择器(# myid) ...

  5. CSS优先级的两种理解方式

    方式一:值相加 我们先去MDN看看官方的解释: 优先级是如何计算的? 优先级就是分配给指定的 CSS 声明的一个权重,它由 匹配的选择器中的 每一种选择器类型的 数值 决定. 而当优先级与多个 CSS ...

  6. css选择器及css优先级

    三个css选择器:id选择器#test1{ }.class选择器.test2{ }.标签选择器div{ }对三个div:<div>我是普通div</div>.<div i ...

  7. 关于CSS的优先级,CSS优先级计算

    原则一: 继承不如指定原则二: #id > .class > 标签选择符原则三:越具体越强大原则四:标签#id >#id ; 标签.class > .class CSS优先级权 ...

  8. css 优先级 机制

    多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External style sheet ...

  9. z-index、display、selector选择器优先级css优先级面试用到

    z-index:控制元素叠放顺序,哪个z-index数值越大,那个优先被叠放在上面. relative.absolute.fixed这三种情况可以使用z-index. static不可以使用. dis ...

随机推荐

  1. SQL Server 2005 不允许远程连接解决方法

    刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:“在连接到 SQL Server 2005 时,在默认的设 置下 SQL Server 不允许进行远程连接可能会导致此失 ...

  2. Java SE 第二十一讲----抽象类

    1.抽象类(abstract class):使用了abstract关键字修饰的类叫做抽象类,抽象类无法实例化,也就是说,不能new出来一个抽象类的对象. 2.抽象方法(abstract method) ...

  3. 微信JSSDK示例代码 笔记

    using System; using System.Collections.Generic; using System.Web; using System.IO; using System.Secu ...

  4. 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍

    调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...

  5. DataRow对象的行状态(RowState)和行版本(DataRowVersion)属性

    DataRow对象有两个比较重要的属性,分别是行状态(RowState)和行版本(DataRowVersion),通过这两个属性能够有效的管理表中的行.下面简要的介绍一下行状态和行版本的特点和关系. ...

  6. Codeforces 631C

    题意:给定n和m. 给定一个长度为n的序列,m次操作. 接下来m次操作,每行第一个数若为1,则增序排列,若为2则降序排列,第二个数是排列的范围,即从第一个数排序到第某个数. 思路: 首先,对于其中范围 ...

  7. So Hard (水题)

    题目网址:http://acm.fzu.edu.cn/problem.php?pid=2193 Problem Description 请将有限小数化为最简分数. Input 一个整数n 表示需要转化 ...

  8. 菜鸟-手把手教你把Acegi应用到实际项目中(4)

    今天就讲个ConcurrentSessionFilter. 在Acegi 1.x版本中,控制并发HttpSession和Remember-Me认证服务不能够同时启用,它们之间存在冲突问题,这是该版本的 ...

  9. ASP.NET MVC 之 View 测试

    项目又出问题了!手贱了一下,使用某个工具整理了一下 View 中的内容,不经意之间,将 View 的输出中大小写不小心搞错了,导致输出的内容没有办法正常解析. 这种问题太隐蔽了,下次再遇到怎么办呢? ...

  10. 解决eclipse中出现Resource is out of sync with the file system问题

    解决eclipse中出现Resource is out of sync with the file system问题 . 分类: 嵌入式开发平台和环境相关 2011-12-27 16:18 4872人 ...