来源:大前端FE(gh_f26dd6c6cfbf)欢迎大家一起来学习前端,期待你加入~

相信大部分人刚开始写 css 的时候应该碰到过这样的问题。

明明只改了一行样式,然后整个页面就变成了这样↓

 

本文将小节一下 css的优先级,帮助解决碰到的样式重叠 优先度问题,这部分也是面试中常出现的考题。要搞清楚选择器的优先级,先列举下所有选择器

选择器类型

1.ID 选择器,如 #id2.类选择器,如 .class3.属性选择器,如 [type="input"]4.伪类选择器,如 :hover5.标签选择器(类型选择器),如 div6.伪元素选择器,如 ::before7.通配选择符 *{} 、 关系选择符 ( ,>,~,' ',||) 、 否定伪类 (:not())

摘自 css 优先级|MDN https://developer.mozilla.org/zh-CN/docs/Web/CSS/Specificity

优先级

优先级按从高到低依次为:

1.!important 例外规则。当在一个样式声明中使用一个 !important 规则时,此声明将覆盖任何其他声明

2.内联样式

3.ID 选择器

4.类选择器、属性选择器、伪类选择器

5.类型选择器(标签选择器)、伪元素选择器6.通配选择符

计算方式

参考 W3C :

https://www.w3.org/TR/selectors/#specificity

翻译一下,就是把 ID 选择器 当作 A ,把 类选择器、属性选择器、伪类选择器 当作 B ,把 类型选择器(标签选择器)、伪元素选择器 当作 C 再计算。

如果选择器是一个选择器列表,则累加。*{} 是通配选择符,表示 (0,0,0)ul li{} 有两个标签选择器,所以表示 (0,0,2)ul ol li 有三个标签选择器,表示 (0,0,3)ul ol li.red 有三个标签选择器和一个类选择器,所以表示 (0,1,3):not(em, strong#foo) 有一个ID 选择器和一个标签选择器,所以表示 (1,0,1)其他就不一一介绍了。。。

错误的说法

在学习过程中,你可能发现给选择器加权值的说法,即 ID 选择器权值为 100,类选择器权值为 10,标签选择器权值为 1,当一个选择器由多个 ID 选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。

这种说法其实是有问题的。

比如一个由 11 个类选择器组成的选择器和一个由 1 个 ID 选择器组成的选择器指向同一个标签,按理说 110 > 100,应该应用前者的样式,然而事实是应用后者的样式。

错误的原因是:选择器的权值不能进位。还是拿刚刚的例子说明。11 个类选择器组成的选择器的总权值为 110,但因为 11 个均为类选择器,所以其实总权值最多不能超过 100, 你可以理解为 99.99,所以最终应用后者样式。

写完了,各位看官给个赞再走吧。

极客写文章,你们看极客每天转载优质内容,你们来看我就好了!我们的口号是:信极客,没bug!

更多极客视频教程,

点个在看支持我吧

选择器优先级_CSS选择器优先级指北相关推荐

  1. html5复合选择器,web前端练习31----Css,选择器(基本选择器,复合选择器,属性选择器,伪类,伪元素,优先级,雪碧图练习)...

    参考文档:https://man.ilovefishc.com/css3/ 一.基本选择器: 1通配符选择器 * 2元素选择器 element 3类选择器 .class 4id选择器 #id 5内联样 ...

  2. html中基本选择器的优先级,CSS_CSS中的各种选择器与样式优先级小结,优先级:由高到低(从上到下)- phpStudy...

    CSS中的各种选择器与样式优先级小结 优先级:由高到低(从上到下) !important 内联(1,0,0,0) id: (0,1,0,0) 类:(0,0,1,0) 伪类/属性 元素:(0,0,0,1 ...

  3. html盒子优先级设置,CSS 基础(盒模型、选择器、权重、优先级)

    层叠样式表(Cascading Style Sheets) 盒模型 盒模型包含四部分:margin.border.padding.content.如果不使用doctype声明,浏览器默认使用自己的模式 ...

  4. CSS选择器(id选择器,包含选择器,标签名选择器,类选择器,属性选择器,通配符选择器,伪类选择器,相邻选择器,选择器的优先级,子选择器)

    CSS选择器 HTML:定义网页元素 CSS:美化网页元素,控制HTML标签展示样式 CSS与HTML相结合,结合方式如下: (1)内联样式:CSS代码复用性太低,书写凌乱,不推荐,缺点就是一次只能控 ...

  5. 选择器的分类及其优先级

    选择器 1) 基本选择器 标签选择器 含义:根据指定的标签名,在当前文件中找到所有该名称的标签,设置属性 格式: 标签名 { 样式名:样式值 } 注意: 1. 标签选择器选中的是当前文件中所有的标签, ...

  6. CSS css选择器 jquery jQuery选择器的优先级 XXX XX X xxx xx x

    CSS css选择器 jquery jQuery选择器的优先级 XXX XX X xxx xx x 行间选择器 id选择器 类选择器 元素选择器 通配符选择器

  7. 前端学习笔记:CSS3选择器的继承、优先级和重要性

    一.样式的继承 1.什么叫"继承"? 继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代. 比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p ...

  8. CSS选择器权重计算与优先级

    CSS选择器权重计算与优先级 选择器有优先级,可以通过权重来计算优先级. 一:优先级 等级划分: 第一优先级:css属性+!important是一种强制改变优先级的方法,它会覆盖页面内任何位置定义的元 ...

  9. html5选择器优先级,css选择器优先级怎么比较

    css选择器优先级怎么比较 CSS选择器中比较常见的有标签选择器.ID选择器.类选择器以及子选择器.而事实上,CSS选择器如果细分下来,竟然多达40多种.那他们的优先级该怎么比较呢,下面就来看看吧. ...

最新文章

  1. python采用Basemap绘制完美中国地图(包括绘制边界框,随机点等)
  2. 执行umount 的时候却提示:device is busy 的处理方法
  3. 关于jQuery对象与DOM对象
  4. 算法题目——杨辉三角问题
  5. pytorch神经网络因素预测_实战:使用PyTorch构建神经网络进行房价预测
  6. c++实现双向链表操作
  7. python爬虫入门,10分钟就够了,这可能是我见过最简单的基础教学
  8. 用R语言实现信息度量
  9. [导入]VB程序中处理随机事件
  10. Camera service服务启动流程
  11. MySQL 主从幂等复制slave_exec_mode=IDEMPOTENT
  12. YGG 联合创始人 Gabby Dizon 在 Neckerverse 峰会上分享边玩边赚的故事
  13. 自定义Unity在iOS平台上的虚拟键盘
  14. 红米android10参数,红米10x5g手机参数红米10x5g手机参数有哪些
  15. html 取消回车,java去除html回车换行
  16. 使用keras-bert进行中文文本分类+Google colab运行源码
  17. 使用Java 编写将阿拉伯数字转为中文数字的代码
  18. CAN通信----(创芯科技)CAN分析仪使用----CANTest安装和驱动安装
  19. 台球游戏问题C++语言
  20. POI解析文档内容(txt,doc,docx,xls,xlsx,ppt,pdf)

热门文章

  1. JAVA面试题(2)
  2. 提高php编程效率的小结
  3. 判断出栈顺序是否正确(栈的压入、弹出序列)
  4. 事务隔离机制原理深入分析以及MySQL不同隔离级别分场景下实验对比
  5. jquery的live方法
  6. PHP内核介绍及扩展开发指南—基础知识
  7. C# 多网卡 Server Listen
  8. C#调用存储过程简单完整例子
  9. 内存、性能问题分析的利器——valgraind
  10. 决策树的C++实现(CART)