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. 下载文件的一种简单方法js

    我在做的一个项目有一部分要下载附件,可是我们公司用了一个包和网上的用response的解决方法冲突,而网上的js解决方法又用到了ActiveXObj我们经理不让用这个.还好我一个同事很利害用了一个很简 ...

  2. Opensturt和Struct区别

    1 OpenStruct和Struct区别,Opestruct你需要创建时,直接给属性赋值,而Struct需要先定义属性后 ,再给属性赋值.选择哪个就看你对属性赋值的时机, 2 Struct和Open ...

  3. 解决dedev5.7更新出现include\userlogin.class.php on line 21的办法

    第一种情况解决办法:   在dede\templets文件夹 找到 index_body.htm  文件 把这些注释掉. $(function() {    $.get("index_tes ...

  4. Nginx 配置指令location 匹配符优先级和安全问题【转】

    Nginx配置指令location匹配符优先级和安全问题 使用nginx 很久了,它的性能高,稳定性表现也很好,得到了很多人的认可.特别是它的配置,有点像写程序一样,每行命令结尾一个";&q ...

  5. Java UDP网络编程 - 最简单示例

    UDP也是网络通讯中的一个重要协议,与TCP区别可参见浅谈TCP/IP 和 UDP的区别,本文就对Java UDP通讯做一个简单例子介绍 服务端: package wyf; import java.i ...

  6. IE,Chrome滚动条样式CSS

    <style type="text/css"> *{ scrollbar-face-color:#F3F3F3; /*面子*/ scrollbar-arrow-colo ...

  7. go mobile 得生命周期事件

    生命周期事件,就是状态从一个阶段切换成另外一个状态时触发的事件.所以我们可以看到 lifecycle.Event 的定义如下:   生命周期一共有下面四个阶段: lifecycle.StageDead ...

  8. ExtGrid

    刷新表中数据 Ext.getCmp('SystemManage_role_ContainPresonnel_grid').store.reload(); store.load({ url: '/dat ...

  9. [SQL]SqL给局部变量赋值有两种方法

    给局部变量赋值有两种方法: .SET @variable_name=value .SELECT @variable_name=value 两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SE ...

  10. poj 2299 Ultra-QuickSort :归并排序求逆序数

    点击打开链接 Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 34676   Accepted ...