css的优先级

凡是做前端开发的,想必都知道css样式的优先级,如果我现在让你回答,你肯定会说出一个标准答案来:行内样式>内部样式>外部样式。

但是这个答案也仅仅是个答案罢了。真正在实际使用过程中你会发现,这个标准答案有时也会让你挠头感到纳闷。下面我简单介绍一下隐藏在css优先级下面的一些不为人知的秘密,当然,前端大神的话直接忽略就可以了。我把话题抛出来,算是抛砖引玉吧。

刚才已经说了,css优先级的顺序为行内样式大于内部样式,内部样式大于外部样式,也就是经常提到的就近原则。但是这里也有一个小例外,那就是外部样式在内部样式的后面引入。如果你把外部样式在内部样式后面引入,你会发现相同类名或者ID定义的样式,行外的优先级是高于行内的,这就归因于浏览器加载css样式的时候是顺序加载的,放在后面的样式会覆盖前面的。其实这个也可以用就近原则来解释,谁离标签近,谁生效嘛。

这时候,外部样式文件中设置的字体颜色会生效。

其实,css样式和引入的顺序有直接关系之外,还和css选择器的优先权有直接关系。废话不多说,先上一个图:

看到图大家应该能理解什么意思了,我下面跟点css样式代码,再简单给大家介绍一下上面图片什么意思。

根据上图给的权值,通过权值计算,得到针对em标签的两个样式权值,分别为111和103。权值越大,样式的优先级越高。这时候就近原则已经无法解释了。这就是css权值计算带来的改变。

其实除了样式文件的引入顺序和样式权值可以改变样式的优先级以外,还有另外一个大家可能会接触到的更改css样式的关键字。那就是”!important”。如果你在使用一个框架,发现某一个样式总是覆盖不掉。又或者你定义了一个样式,想拥有最终的控制权,怕被别人的样式覆盖掉。那就检查或者使用”!important”吧,用它修饰的样式拥有最高的控制权。

时间: 2024-12-26 12:30:14

css的优先级的相关文章

CSS选择器优先级【转】

样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style 有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式. 示例如下: <head>     <style type="text/css&

CSS 样式优先级

首先,选择器优先级顺序 优先级逐级增加的选择器列表: 通用选择器(*) 元素(类型)选择器 类选择器 属性选择器 伪类 ID 选择器 内联样式 !important 规则例外,该样式声明会覆盖CSS中任何其他的声明. 一些经验法则: Never 永远不要在全站范围的 css 上使用 !important Only 只在需要覆盖全站或外部 css的特定页面中使用   !important Never 永远不要在你的插件中使用 !important Always 要优化考虑使用样式规则的优先级来解决

css选择器 优先级的问题

最近写代码时发现,有时候写出的样式不会被引用.看了一些其他人写的网站源码后,我发现了这样写可以解决问题,如下: 比如说<div class="abc">  <div class="edf">     <div class="fgg">    </div>  </div></div>确定class="fgg"时,写成:.abc .efg .fgg{/* 代码

CSS选择器优先级(转)

原文:http://www.cnblogs.com/wangfupeng1988/p/4285251.html 另外,w3c有文章介绍了CSS选择器的特定性,见https://www.w3.org/TR/css3-selectors/#specificity 1. 引言 上一节<css知多少(5)——选择器>最后提到,选择器类型过多将导致一些问题,是什么问题呢?咱们直接举例子说明. 上图中,css中的两个选择器都是针对<span>的,而且两个设置的颜色不一样,这里的<span

CSS总结(四)—— CSS选择器优先级

css选择器优先级 优先顺序: 1.!important (IE6不支持此属性) 2.html中元素标签添加的style=“”(css难以管理,不推荐) 3.一个或多个id选择器 例:#top{margin:0;} 4.一个或多个类选择器(包括属性.伪类选择器) 例:.outer{}   [data-job="frontend"]{}    a:active{} 5.标签选择器 例:div{margin:3px;} 6.通配选择器 例:*{margin:10px;} ★ 选择器规则:

一道关于CSS选择器优先级的题

<span style="font-size:14px;"><html> <head> <style type="text/css"> #redP p { /* 权值 = 100+1=101 */ color:#F00; /* 红色 */ } #redP .red em { /* 权值 = 100+10+1=111 */ color:#00F; /* 蓝色 */ } #redP p span em { /* 权值 =

关于CSS的优先级,CSS优先级计算

原则一: 继承不如指定原则二: #id > .class > 标签选择符原则三:越具体越强大原则四:标签#id >#id ; 标签.class > .class CSS优先级权重计算法 CSS优先级包含四个级别(标签内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数! 根据这四个级别出现的次数计算得到CSS的优先级. CSS优先级的计算规则如下:* 元素标签中定义的样式(Style属性),加1,0,0,0* 每个ID选择符(如 #id),加0,1,0,0* 每

CSS选择器优先级总结

CSS三大特性-- 继承. 优先级和层叠. 继承:即子类元素继承父类的样式; 优先级:是指不同类别样式的权重比较; 层叠:是说当数量相同时,通过层叠(后者覆盖前者)的样式. css选择符分类 首先来看一下css选择符(css选择器)有哪些? 1.标签选择器(如:body,div,p,ul,li) 2.类选择器(如:class="head",class="head_logo") 3.ID选择器(如:id="name",id="name_t

css部分样式整理-特殊字体格式、导航栏固定、块级元素与行内元素、html 元素的margin与padding默认值、css样式优先级概括等

1.一些特殊字体样式: 首行缩进2字符:{text-indent:2em;} 水平居中:{text-align:center;} 两端对齐:{text-align:justify;} 垂直居中:{vertical-align: middle;} 字间距2字符:{letter-spacing:2em;} 行间距2倍:{line-height:2;}     2.导航栏固定在页面某处(相对于<body>):     {position:fixed;left:  px;top:  px;}  3.块

CSS的优先级、选择器、注意事项

CSS的优先级: 内嵌样式>ID选择器>类选择器>标签选择器 内部样式>内部样式>外部样式 CSS的选择器: 选择器:在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. 1.基本选择器(如下:): ID选择器:根据标签ID设置标签的样式(例如:#div1{height:100px;}),通常用来设置划分区间使用. 类选择器:根据标签的类设置标签的样式(例如:.div1{height:100px;}),通常用于设置不同标签却有相同样式. 标签选择器:根据标签名设置标