详解CSS优先级规则的级别与细节

2016-02-19 18:53 10 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的详解CSS优先级规则的级别与细节懂设计的网友们快点来了解吧!

【 tulaoshi.com - Web开发 】

  详解CSS优先级的读法,CSS优先级包含四个级别(文内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数。根据这四个级别出现的次数计算得到CSS的优先级。

  对优先级的读法,应该是以“组”来分,这个组之间相互独立,从左到右进行对比。它们成组出现,以逗号分隔。

  selector( a , b , c , d )
  compare: ↑ , ↑ , ↑ , ↑
  selector( a , b , c , d )

  正如w3c.org中原文所示,分为a,b,c,d四组,全为正整娄,默认为0,对应于不同的选择器结构和组成形式。在选择器之间的优先级进行对比时,从左到右1对1对比,当比出有大者时即可停止比较。

li.red.level {} /* a=0 b=0 c=2 d=1 - specificity = 0 , 0 , 2 , 1 */
/*compare ↑ , ↑ , √ */
h1 + *[rel=up]{} /* a=0 b=0 c=1 d=1 - specificity = 0 , 0 , 1 , 1 */
/*compare ↑ , ↑ , ↑ , √ */
ul ol li.red {} /* a=0 b=0 c=1 d=3 - specificity = 0 , 0 , 1 , 3 */
/*compare ↑ , ↑ , √ */
#x34y {} /* a=0 b=1 c=0 d=0 - specificity = 0 , 1 , 0 , 0 */
/*compare ↑ , √ */
style="" /* a=1 b=0 c=0 d=0 - specificity = 1 , 0 , 0 , 0 */

  (上表中,↑表示还要进行比较,√表示从此处已得到了结果)

  再有,只要正确书写,仅从优先级中大概知道选择器结构形式了,如:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  1,0,0,0表示是元素内的style;

  0,2,1,1表示是一个由两个ID选择器,1个类或伪类或属性选择器,以及一个元素选择器组成的选择器。

  CSS优先级规则的细节:

  在纠正读法后,才能开始讲详细的规则:

  a组数值只有把CSS写进style属性时才会为1,否则为0.写进style的样式声明其实不算是个选择器,所以这里面的b,c,d组值均为0,只有真正的选择器才会有b,c,d组值。

  b组数值决定于ID选择器#ID,有多少个ID选择器,并会进行此组数值累加;

  c组数值决定于类、伪类和属性选择符,并会进行该组数值累加;

  d组数值决定于元素名,即元素选择器,并会进行该组数值累加;

  注意,这四组数值分别对应于不同类型的选择器,互不影响,根据读法法则进行比较。

  这里没有讨论到!important,就近原则和继承,也没有实例代码,欢迎大家来webjx.com共同讨论!

  下面是列子:CSS优先级问题

  CSS优先级包含四个级别(文内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数。根据这四个级别出现的次数计算得到CSS的优先级。

  CSS优先级的计算规则如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

    * 页面中定义的样式,加1,0,0,0
    * 每个ID选择符(如 #id),加0,1,0,0
    * 每个Class选择符(如 .class)、每个属性选择符(如 [attribute=])、每个伪类(如 :hover)加0,0,1,0
    * 每个元素选择符(如p)或伪元素选择符(如 :firstchild)等,加0,0,0,1

  然后,将这四个数字分别累加,就得到每个CSS定义的优先级的值,

  然后从左到右逐位比较大小,数字大的CSS样式的优先级就高。

来源:http://www.tulaoshi.com/n/20160219/1619361.html

延伸阅读
通过使用“条件格式规则管理器”对话框,您可以在工作簿中创建、编辑、删除和查看所有条件格式规则。(在“开始”选项卡上的“样式”组中,单击“条件格式”旁边的箭头,然后单击“管理规则”。) 当两个或更多个条件格式规则应用于一个单元格区域时,将按其在此对话框中列出的优先级顺序评估这些规则。 列表中较高处的规则的优先级高...
标签: Web开发
本节主要讲解,两个内容, 第一:CSS如何控制页面样式,有几种方式; 第二:这些方式出现在同一个页面时的优先级。       使用xHTML+CSS布局页面,其中有个很重要的特点就是内容与表象相分离,内容指HTML页面代码,表象就是CSS代码了,如果把页面看成穿着衣服的人的话,人就是HTML,是内容,而衣服呢就是CSS,是表...
标签: Web开发
正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。   运算符 下表从最高到最低说明了各种正则表达式运算符的优先级顺序: 运算符 说明 \ 转义符 (), (?:), (?=), [] 括号和中括号 *, +, ?, {n}, {n,}, {n,m} 限定符 ^, $, \任何元字符、任何字符 定位点和序列 | 替换 ...
个人理解,内核级线程和进程是一样的,前者与POSIX线程(pthread)有很大的区别。因此,内核的进程调度策略和系统调用也适用于内核级线程。 调度策略有三种: 1. SCHED_NORMAL 非实时调度策略,默认情况下是100~139,由nice值决定; 2. SCHED_FIFO实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行...
import java.util.*; /**  * pTitle: 提高线程优先级/p  * pDescription: 通过修改线程的优先级,是线程获得优先处理。/p  * pCopyright: Copyright (c) 2003/p  * pFilename: upPRIThread.java/p  * @version 1.0  */ public class upPRIThread {  //主方法  public static void main(String[] ...

经验教程

256

收藏

23
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部