转自CSS优先级的计算公式:http://wyz.67ge.com/css-selector-priority/

通常我们可以将CSS的优先级由高到低分为六组:

  1. 无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
  2. 第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
  3. 第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
  4. 第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
  5. 第五级由一个或多个 类型选择器定义。如 div{margin:6px;}  覆盖  *{margin:10px;} 。
  6. 最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。

另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。如 #i100 *.c20 *.c10{} 的优先级就会高于 #i100 *.c10 div p span em{} ,这是由于前者拥有一个第三级和两个第四级的选择器而后者第三级和第四级的选择器各为一个,当然前者优先级会比较高。

CSS选择器是一个非常灵活的CSS属性,优雅的使用它会使你的页面代码不再臃肿,而且还可以作为hack的妙用方法之一。

当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:

  1. 位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。
  2. 第二级的优先属性由位于 <style/>标签中的 @import 引入样式表所定义。
  3. 第三级的优先属性由<link/>标签所引入的样式表定义。
  4. 第四级的优先属性由<link/>标签所引入的样式表内的 @import 导入样式表定义。
  5. 第五级优先的样式有用户设定。
  6. 最低级的优先权由浏览器默认。

最新文章

  1. MySQL数据库中delimiter的作用概述
  2. qq
  3. AndroidStudio安装教程(Windows环境下)
  4. [moka同学笔记]Yii2.0显示页匿名函数设置$value
  5. BZOJ3559 : [Ctsc2014]图的分割
  6. map,list
  7. navicat内的主键和外键
  8. Play framework(二)
  9. Cocos2d-JS键盘事件
  10. 用户登录密码RSA加密后传输的实现,非明文密码传输
  11. javascript第一课javascript:void(0);
  12. python处理中文字符
  13. [BZOJ3751] [NOIP2014] 解方程 (数学)
  14. hMailServer相关视频教程
  15. springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式
  16. Selenium Web 自动化 - 如何找到元素
  17. 用百度AI的OCR文字识别结合JAVA实现了图片的文字识别功能
  18. 简单模拟flume
  19. java学习之路之javaSE基础2
  20. 聊聊对APM的理解

热门文章

  1. NX二次开发-UFUN设置视图边界线显示隐藏UF_DRAW_set_border_display
  2. [JZOJ 5814] 树
  3. 移动端多选插件-jquery
  4. openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)
  5. Apache Solr 远程命令+XXE执行漏洞(CVE-2017-12629)
  6. IPv6 三个访问本地地址的小Tips
  7. 往github上上传项目
  8. grep 的一些常用用法
  9. 【洛谷】P1962
  10. 纯css写带小三角对话框