深入理解CSS权重和计算面试必会

来源:程序思维浏览:1557次
每个选择器都有自己的权重。你的每条css规则,都包含一个权重级别。
这个级别是由不同的选择器加权计算的,通过权重,不同的样式最终会作用到你的网页中。
 
深入理解CSS权重和计算面试必会

如果你不了解CSS权重,写CSS代码的过程中使用各种选择器时,你不知道哪个选择器的优先级高,哪个选择器的优先级低,就只能最原始最粗俗的方式是“死记硬背”,但如果理解了CSS权重后,会事半功倍!

选择器优先原则:!important > 行间样式 > ID 选择器 >class 选择器|伪类选择器|属性选择器 >元素选择器|伪元素选择器 > 通配符选择器|子选择器选择器|相邻兄弟选择器

1.关于CSS权重
 
是指样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式。
 
CSS权重 权重值 例如
!important(加在样式属性值后) 10000 demo{ background-color:red!important; }
行间样式 1000 style=""
id 100 #content
class、属性、伪类 10 .demo{}、[span]{}、a:link {color:red;}
标签、伪元素 1 div{}
通配符(*)、子选择器(>)、相邻选择器(+)、同胞选择器(~) 0 *{}、div > span{}

注意:上图中的数值不是我们日常生活中使用的10进制数值,而是256进制数!!

!important的权重值在256数值中是正无穷大的数,在权重运算过程中,正无穷+1和正无穷相比,如果在数学的角度来说是无法比较的,但在计算机中,始终是正无穷+1>正无穷,这是因为计算机表示的数字是有穷的(即有界),计算机里面的正无穷表示一个定量值,所以无穷大的数在计算机中运算是能与无无穷大的数比较的,无论是哪种计算机语言的运算,都是如此!

2.CSS权重计算

CSS文件
demo.css

/*这是class选择器*/
.classDiv .classP{
/*权重值:(.classDiv=10)+ (.classP=10) =20 */
background-color: red;
}
/*
这个是id选择器
*/
#idDiv #idP{
/*权重值:(#idDiv=100) + (#idP= 100) = 200 */
background-color: green;
}
/*这是id选择器和class选择器*/
#idDiv .classP{
/*权重值:(#idDiv=100) + (.classP= 10) = 110*/
background-color: pink;
}

/*这个是id选择器 和 标签选择器*/
#idDiv p{
/*权重值:(#idDiv=100) + (p=1)=110*/
background-color: yellow;
}

HTML文件
demo.html

<html lang="zh,en">
<head>
<title>myWeb</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="demo.css">
</head>
<body>
<div class="classDiv" id="idDiv">
  <p class="classP" id="idP">
   Test
  </p>
</div>
</body>
</html>



从上图很明显地我们就可以看见权重值运算是根据选择器的权重值运算,权重值大的优先级大于权重值小的,所以输出权重值大的输出结果!
精品好课
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
收藏
扫一扫关注我们