一.首先从CSS级别来进行优先级划分:

CSS控制页面样式的四种方法:

1.行内样式

通过style特性

<p style=”color:#F00; background:#CCC; font-size:12px;”></p>

2.内嵌方式

将CSS代码写在head和/head之间,并用style进行声明

<style type=”text/css”>
<!–
#div1{width:64px; height:64px; float:left;}
#div1 img{width:64px; height:64px;}
–>
</style>

3.链接方式

<link href=”style.css” type=”text/css” rel=”stylesheet” />

4.导入方式

导入样式和链接样式比较相似,采用import方式导入CSS样式表,在HTML初始化时,会被导入到HTML文件中,成为文件的一部分,类似第二种内嵌方式。(这个目前没遇到过)

四种样式的优先级别是(从高至低):行内样式、内嵌样式、链接样式、导入样式

目前有个疑问:如果内嵌定义了p,链接定义了a,那么内嵌应该不会覆盖链接吧?

二.从CSS内部进行优先级划分

CSS通过一个叫做层叠(cascade)的过程处理这种冲突。层叠给每个规则分配一个重要程度指数。作者定义的样式具有最高的重要性指数,其次是用户定义的样式。但是为了增强用户的控制能力,用户可以通过为任何规则增加一个!important来提高它的重要性指数,让它的优先级高于任何规则,甚至是比作者的!important还要高。
因此,层叠重要性指数的次序依次为:

  1. 标记为!important的用户样式
  2. 标记为!important的作者样式
  3. 作者样式
  4. 用户样式
  5. 浏览器/用户代理的默认样式

默认样式的选择器的优先指数由选择符对应的数值相加而成,数值越高,优先级越高。

CSS中的选择符有四类:

  1. 行内样式(Inline Style),如<span style="color:red">...</span>
  2. ID选择符(ID selectors),如#myid
  3. 类、属性选择符、伪类(Classes, attributes and pseudo-classes),如 .class {...}、[href$=dudo.org]、:hover
  4. 元素(elements)、伪元素选择符(pseudo-elements),如 p {...}、:first-line {...}
  5. 通配符选择器,即*,为0
  6. 继承来的,最低。

行内样式为:1000
ID选择符为:0100
类选择符为:0010
元素样式为:0001

例如,body #wrap p {...},那么它的优先级指数就是 1 100 1=102,而body div#wrap p {...}的优先级指数就是 1 1 100 1 =103。

三.继承产生的冲突

血缘越近的优先级越高,父继承比爷爷继承优先级高.

浏览器的控制台是很好的参考工具,而且会详细帮你划掉冲突中被排除的规则.

比如如下:

2的颜色还是会是蓝色,因为继承的权重最低。

即使将span改为*,也还是蓝色,继承的权重比*还低。

<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
span{color:blue;}
body div.red{color: red;}
</style>
</head>
<body>
<div class="parent">
<div class="red">1</div>
<div class="blue"><span>2</span></div>
</div>

  

参考:

http://www.jb51.net/css/6773.html

http://www.cnblogs.com/liwon/p/3526369.html

css层叠性冲突中的优先级的更多相关文章

  1. 0017 CSS 三大特性:层叠性、继承性、优先级

    目标: 理解 能说出css样式冲突采取的原则 能说出那些常见的样式会有继承 应用 能写出CSS优先级的算法 能会计算常见选择器的叠加值 5.1 CSS层叠性 概念: 所谓层叠性是指多种CSS样式的叠加 ...

  2. CSS学习笔记03 CSS层叠性、继承性、特殊性

    层叠性 所谓层叠性是指多种CSS样式的叠加,也就是说后面设置的样式会层叠(覆盖)之前的样式,层叠性的前提是CSS的选择器的优先级相同,例如,当使用内嵌式CSS样式表定义<p>标记字号大小为 ...

  3. css层叠性和继承性

    1.了解css层叠性 层叠性是什么?就是解决处理css选择器和属性冲突的能力.css的选择器权重是分大小,就是当多个选择器都选中了同一个标签时,听谁的??? 标签选择器 < 类选择器 < ...

  4. CSS3基础——笔记+实战案例(CSS基本用法、CSS层叠性、CSS继承性)

    CSS3基础——笔记 CSS是Cascading Style Sheet的缩写,翻译为"层叠样式表" 或 "级联样式表".CSS定义如何显示HTML的标签央视, ...

  5. CSS样式的引入&区别&权重&CSS层叠性&CSS样式的来源

    CSS样式的引入: 内部样式: 内部样式:写在当前页面style标签中的样式 内联样式:写在style属性中的样式 外部样式: link标签引入的CSS文件 @import引入的CSS文件,需要写在c ...

  6. 认识CSS中css的三大特性:层叠性、继承性以及优先级

    前端之HTML.CSS(四) CSS CSS三大特性 层叠性:多种样式的叠加,一个属性通过两个选择器设置在同一个元素上,后一个样式会把前一个样式层叠(覆盖).层叠性的两种情况:第一种样式冲突时,后样式 ...

  7. 前端 CSS层叠性 CSS选择器优先级

    层叠性 层叠性:权重的标签覆盖掉了权重小的标签,说白了 ,就是被干掉了 权重:谁的权重大,浏览器就会显示谁的属性 我们现在已经学过了很多的选择器,也就是说在一个HTML页面中有很多种方式找到一个元素并 ...

  8. CSS——层叠性

    层叠性:浏览器渲染是从上而下的,当多个样式作用于同一个(同一类)标签时,样式发生了冲突,总是执行后边的代码(后边代码层叠前边的代码).和标签调用选择器的顺序没有关系. <!DOCTYPE htm ...

  9. CSS层叠性

    比较id,类,标签的数量 谁多就谁在上面 255个类的权重等于一个id 当权重一样时,以后设置的为准 通过继承而来的,权重为0 !important (设置权重无限大)可以影响权重,但只能影响选中的, ...

随机推荐

  1. 51nod 1437 迈克步(单调栈)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1437 题意: 思路: 单调栈题.求出以每个数为区间最大值的区间范围即可. ...

  2. HTML基本内容

    设置背景色:<body bgcolor="#AAAAAA">,设置背景图:<body background="1.png">. 颜色的知 ...

  3. 用 Anaconda 完美解决 Python2 和 python3 共存问题

    Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时在两个版本中进行开发,调试. 如何在系统中同时共存 Python2 ...

  4. 【BZOJ】1875: [SDOI2009]HH去散步

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1875 注意的是路径不可以重复,所以这题把边看成点.每一条无向边拆成两条有向边. 令${F[ ...

  5. idea中svn的使用教程

    引言:以下是idea集成小乌龟后的svn使用教程,一张图足以说明问题,后续如果遇到了比较复杂一点的问题再来补充. 参考文档:https://blog.csdn.net/liuhailiuhai12/a ...

  6. XML.libXml2_ZC

    1.字符串比较函数: xmlStrcmp(...) 这是大小写敏感的比较 xmlStrcasecmp(...) 这是大小写不敏感的比较(忽略字符串里面字符的大小写) 2.查找节点 2.1.循环 2.2 ...

  7. Array、List和ArrayList的区别(推荐: 浅显易懂)

    数组.List和ArrayList的区别(推荐: 浅显易懂)   有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自 ...

  8. System.out.println 报错: 只能运行在方法体内哦, 类里面只包含属性和方法哦,注意!

    类里面包含属性和方法 所以, System.out.println,只能放在方法体内运行,不能放在类里.方法外哦

  9. 力扣(LeetCode) 997. 找到小镇的法官

    在一个小镇里,按从 1 到 N 标记了 N 个人.传言称,这些人中有一个是小镇上的秘密法官. 如果小镇的法官真的存在,那么: 小镇的法官不相信任何人. 每个人(除了小镇法官外)都信任小镇的法官. 只有 ...

  10. LeetCode第[20]题(Java):Valid Parentheses

    题目:有效的括号序列 难度:Easy 题目内容: Given a string containing just the characters '(', ')', '{', '}', '[' and ' ...