[学习笔记]CSS权重

css权重

经常会遇到这样一种问题,为什么我写的css并没有达到我所期望的效果,很奇怪我注释掉这行代码对页面并没有什么影响--
也是自己对css规则并没有一个透彻的了解..
这里就来简单写一下关于css的权重,我觉得了解了权重的概念,能让你写css时更加得心应手,减少一些代码冗余和调试时间
权重也就是你这个元素选择器能PK掉其他选择器的几率,当然权重大的就能被浏览器在页面元素上应用(相同权重就以最后出现的为准 很容易理解 后面覆盖前面嘛),一个元素css规则可以从特定ID或类选择器得到,也可以继承而来,如果你从外部引入了一些框架,还有一些默认的css样式,当然也可以在html中直接定义style(一般这种写法是淘汰的,不适合多文档应用,冗余,修改麻烦等等...)所以权重只有在同一个元素有多个声明的时候有意义..
关于权重级别(越往下权重越大)

  1. 用户代理声明(比如浏览器的一些默认样式
    不过经过CSS ResetNormalize.css 一般我也没有很注重去修改浏览器的默认样式
  2. 开发者选项 F12
    我们经常会通过开发者选项来调试看怎样的样式更加符合自己的要求
  3. 开发者声明
    • 选择器(注意嵌套定义 一般是标签越详细 ID或者class级数越多权重越大)
    • 一些插件和框架中的全局css
    • 内在指定style会覆盖外部引用style

!important

前几天在代码的时候发现自己怎么写干不掉框架内部定义的样式 所以就google了一下怎样使用!important
当你在一个样式中声明!important的时候 会直接覆盖掉其他声明 也就是一种增加权重的方式
小范围使用还好 如果在你定义一个全局范围使用的类但是你只需要在这一个地方修改样式 这样修改就会跳出很多Bug
所以怎样使用!important

  1. !important 一般写在样式最后 分号前面 来达到效果
  2. 全局属性内部全部覆盖
    .example{  
         border-radius: 1px !important;                
    }
    

等价于

   .example{  
    border-top-right-radius: 1px !important;
    border-bottom-right-radius: 1px !important;
    border-top-left-radius: 1px !important;
    border-bottom-left-radius: 1px !important;             
   }

这里就引用一下 我觉得挺重要的几个点

  • Never 永远不要在全站范围的 css 上使用 !important
  • Only 只在需要覆盖全站或外部 css(例如引用的 ExtJs 或者 YUI )的特定页面中使用 !important
  • Never 永远不要在你的插件中使用 !important
  • Always 要优化考虑使用样式规则的优先级来解决问题而不是 !important

回来改改错误 嗯..下次见
2016/11/16
     amilyxy

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,138评论 0 40
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,599评论 32 459
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,662评论 0 30
  • 我希望你能见识到令你惊奇的事物, 我希望你能体验未曾有过的情感, 我希望你能遇见一些想法不同的人, 我希望你为自己...
    月色倾城2018阅读 100评论 0 0