多个Class作用于同一个元素的结果分析

 
多个class作用于同一个元素出现样式冲突,因为权重相同,结果如何呢
 
【代码】

<html>
<head>
  <style type="text/css">
  .bColor{    /*这个在css文件流中位于最前*/
     color:green;    
     font-weight:border;
  }
  .aColor{     /*这个在css文件流中位于最后*/
     color:red;
     font-size:24px;
  }
  </style>
</head>

<body>
  <b class="aColor bColor">alex</b>
</body>
</html>

 
最后alex的显示效果是alex
 
【详细分析】

其实对于浏览器来说,两个或多个class在最后都会合成一个“class”,我们暂且称之为lastClass
由于两者权重(也就是优先级的计算结果)相同,我们可以知道最后的显示效果完全是两个class的并集,我们往下继续分析:
 
aColor + bColor -合成-> lastClass
 
等价于:
 
<b class="lastClass">alex</b>
 
因为不管是aColor还是bColor都只是lastClass一部分,因此我们可以将上文中的样式修改如下:
 
  .lastClass{    /*这个原来是bColor*/
     color:green;     /*这个color在后面被重写了,所以失效*/
     font-weight:border;
  }
    .lastClass{     /*这个原来是aColor*/
     color:red;
     font-size:24px;
  }
 
lastClass”则是依据CSS样式文件流从上往下依次为单个样式属性赋值的
,CSS样式最后的实际显示是以单个样式属性为准的,class只是对元素进行批量赋值,不是CSS样式的实际值,对于单个css样式属性来说,自然是以最后一次赋值为准
 
【总结】:

问题中的显示结果和class属性内class先后无关,和CSS样式里面单个样式属性从上往下先后有关,同一个样式属性冲突时以CSS样式中写在最后的一次赋值为准,不同的样式属性取多个class叠加效果为准

多个Class作用于同一个元素的结果分析的更多相关文章

  1. 为什么margin-top不是作用于父元素【margin外边距合并问题】

    coding时发现margin-top居然没作用于本元素上,而是作用到了父元素上. 原来是margin外边距合并导致的.以下是网上搬运来的知识: margin外边距合并详解:外边距合并现象在网页布局中 ...

  2. 为什么margin-top不是作用于父元素

    为什么margin-top不是作用于父元素:建议:尽可能的手写代码,可以有效的提高学习效率和深度.至于margin-top属性的基本用法再简单不过,那就是设置一个对象的上外边距,看下面的代码实例: & ...

  3. css两个紧挨着的css选择器修饰同一个元素

    #status, .commands{ height: 25px; line-height: 25px;}.upload .commands{ float: right;}.hidden{ displ ...

  4. 为什么子元素设置margin-top会作用在父元素上?

    原因在于:CSS 外边距合并 复现: <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  5. 多个线程作用于同一个runnable对象

    多个线程作用于同一个runnable对象 学习了:https://www.cnblogs.com/ligang305/archive/2012/08/10/2632126.html http://as ...

  6. 弯道超车,换一个思路,避免addEventListener为同一个元素重复赋予事件

    addEventListener可以给同一个元素赋予多次同一个事件. 执行一次,就多一次事件效果.这不是我想要的. window.onload = function(){ var box = docu ...

  7. JS---DOM---为同一个元素绑定多个不同事件指向同一个事件处理函数

    为同一个元素绑定多个不同事件指向同一个事件处理函数 1. 用了switch(e.type){} 来修改 2. break <input type="button" value ...

  8. 如何让 height:100%; 起作用---父级元素必须设定高度

    参考: http://www.webhek.com/post/css-100-percent-height.html https://www.cnblogs.com/kunmomo/p/1060066 ...

  9. 子元素用margin-top 为什么反而作用在父元素上?对使用margin-top 的元素本身不起作用?

    在这个说明中,“collapsing margins”(折叠margin)的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容.padding区域.bor ...

随机推荐

  1. cx_Oracle摘记

    由于想使用python操作oracle所以查看了cx_Oracle的官方文档,同时也查看了twisted中cx_Oracle的使用.下面是摘自文档中一些我认为有用的内容 cx_Oracle is a ...

  2. 北京培训记day2

    后缀三姐妹 P.S.后缀大家族关系:后缀自动机fail指针=后缀树,后缀树前序遍历=后缀数组 一.后缀数组:orz罗穗骞集训队论文 给每个后缀按字典序排序 rank[]表示从i开始的后缀排名多少 sa ...

  3. CodeForces - 453A Little Pony and Expected Maximum

    http://codeforces.com/problemset/problem/453/A 题目大意: 给定一个m面的筛子,求掷n次后,得到的最大的点数的期望 题解 设f[i]表示掷出 <= ...

  4. Javascript作用域研究(with)

    基本用法参考:http://www.cnblogs.com/silentjesse/p/4024536.html 这里说明以下with的用法: with语句 with语句主要用来临时扩展作用域链,将语 ...

  5. Android 启动后页面跳转

    1.LoadingActivity public class LoadingActivity extends Activity implements Handler.Callback { privat ...

  6. PHP 自动加载规范PSR-4

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  7. 2 django系列之django分页与templatetags

    preface 当页面出现的条目多的时候,我们就需要使用分页功能了.Django作为一个知名的web框架,自然也提供了分页功能,下面说说它. Python-shell 练练手 在python下入手 先 ...

  8. gdb调试器的使用

    想要使用gdb调试程序的话,首先需要gcc -g main.c -o test 然后运行gdb test对程序进行调试 l (小写的l,是list的首字母),用以列出程序 回车    是运行上一个命令 ...

  9. 特性 Attribute

    特性就是一个类,必须是Attribute的子类 一般以Attribute结尾,然后在使用的时候,可以去掉这个结尾 可以在特性中声明字段.属性.方法.构造函数.委托.事件... [AttributeUs ...

  10. shell if 浮点数比较

    转shell中的浮点数比较http://nigelzeng.iteye.com/blog/1604640 博客分类: Bash Shell shell比较浮点数  由于程序需要,我要判断一个浮点数是否 ...