美文网首页程序员
关于css中优先级问题

关于css中优先级问题

作者: 君莫叹人生如若初见 | 来源:发表于2016-12-14 14:42 被阅读93次

最近在做页面的时候,遇见一个这样的问题。
使用semantic-ui的时候,运用其卡片的ui设计,但是,向其中添加阴影的时候,发现并不生效。下面是我的一段代码:

//此时我定义了该ui类,并且在类名后面写了自己的类名来写属于自己的样式
 <div class="ui card cardcontainer">

然后style是以下方式。

.cardcontainer {
    position: absolute;
    left: 700px;
    top: 100px;
    -moz-box-shadow: 2px 2px 10px #909090 ;/*firefox*/
    -webkit-box-shadow: 2px 2px 10px #909090 ;/*safari或chrome*/
    box-shadow:2px 2px 10px #909090 ;/*opera或ie9*/
  }

但是,发现并不生效,在Chrome里面调试结果如下:

semantic.png cardcontainer.png
发现我在类里面的css并没有生效。于是第一反应是优先级肯定是有问题的。所以,返回head里面查看的时候,果然发现link的类在semantic之前(如下图)
css.png

于是将其修改后,在调试,发现竟然还没有变化 。当时由于页面在急,没有多想,直接用!important来强制让css生效。


页面做完后,空闲时间想着用!impotant应该不是最好办法,于是又补习了一下css优先级的问题。
网上关于讲解css优先级的博客也许多,可以见此博客
总结后,发现问题:
css同一个类里面多个类名叠加,权重比较高。如下面例子:

<div style="width:100px;height:100px;" class="a"></div>
<div style="width:100px;height:100px;" class="b"></div>
<div style="width:100px;height:100px;" class="a b c"></div>
<div style="width:100px;height:100px;" class="b a"></div>

css:

 .a {
  background-color: red;
}
.b {
  background-color: green;
}
.a.b{
  background-color: blue;
}

.b.a{
  background-color: orange;
}

.c {
    background-color: yellow;
}

.a.b.c{
    background-color:yellow;
}

可以发现,色块的颜色分别是:红色,绿色,黄色,橘黄色。

色块

为什么会是这样的颜色呢?

原来如果类中类名叠加在一起的时候,权重比较高。所以.a.b是一个等级,其颜色是蓝色,又由于.b.a(注意其中没有空格)权重与.a.b相等,而css优先级下面的比上面的优先级高的原则,所以呈现出橘黄色
所以权重高的将权重低的覆盖了,这就解释了我们上述的问题。
总结:

  • 相同权值情况下,CSS样式的优先级总结来说,就是——就近原则(离被设置元素越近优先级别越高):
    内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。

  • 权值不同时,浏览器是根据权值来判断使用哪种css样式的,哪种样式权值高就使用哪种样式。

相关文章

  • 关于css中优先级问题

    最近在做页面的时候,遇见一个这样的问题。使用semantic-ui的时候,运用其卡片的ui设计,但是,向其中添加阴...

  • 关于CSS优先级问题

    之前遇到这种问题一直简单粗暴的使用 !import,今天在老大的指引下才发现这里面也大有文章,下面梳理一下我自己的...

  • css选择器优先级以及photoshop快捷键

    css选择器优先级 CSS选择器的优先级:作用的元素一样,样式一样,就会有优先级问题,当优先级相同时,一旦发生重...

  • 【CSS】!important并非最强

    在CSS学习过程中,一个不可避免的知识点就是CSS优先级问题,也可以说CSS特制度问题。 id选择器 > 类选择器...

  • 2018-07-25

    目前会的,关于css|htmlcss 1.能分清块级元素,行内元素,行内块,并互相转换 2.css中优先级和权值 ...

  • 前端复习第二周

    主要复习CSS,style来引入css,link来外联css文件 优先级标签内css优先级 > hand内部css...

  • React — css 样式的模块化

    问题描述 当不同组件中的css规则,存在冲突时,高优先级的样式,就会覆盖低优先级的样式,示例如下: 目录结构 样式...

  • CSS要点记录

    CSS要点记录 CSS 指层叠样式表 (Cascading Style Sheets) 多种样式时的优先级问题 数...

  • CSS中!important的使用

    CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < 元素style中的属性,...

  • 笔记 - CSS基础

    浏览器与支持特性 caniuse.com 关于CSS优先级: 一般情况下,优先级如下:(外部样式)External...

网友评论

    本文标题:关于css中优先级问题

    本文链接:https://www.haomeiwen.com/subject/eapimttx.html