zoukankan      html  css  js  c++  java
  • CSS系列-样式的优先级

    规则1: 最近的祖先样式比其他祖先样式优先级高

     

    规则2:"直接样式"比"祖先样式"优先级高。

    规则3:如果优先级相同,则选择最后出现的样式。

    规则4:!important

      a: 优先级最高,如果同时出现,那么按照一般规则计算优先级。

      b: !important样式如果被子类继承,子类自会继承样式,不会继承优先级(意思是父类颜色设置color: red !important; 子元素可以不使用!important 重置该样式)

     

    规则5:优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器 > 通配 * 

    规则6:一个标签同时被多个选择符选中,下面规则

      计算选择符中 ID 选择器的个数(a)

      计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b)

      计算选择符中标签选择器和伪元素选择器的个数之和(c)

      按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。

      若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。

    例子:#parant > span 生效;(因为命中 一个 id + 标签; 如果下面改为 span#child 那么字体就是蓝色,因为优先级相同,后面覆盖前面)

      

     CSS 7 种基础的选择器 

    • ID 选择器, 如 #id{}

    • 类选择器, 如 .class{}

    • 属性选择器, 如 a[href="segmentfault.com"]{}

    • 伪类选择器, 如 :hover{}

    • 伪元素选择器, 如 ::before{}

    • 标签选择器, 如 span{}

    • 通配选择器, 如 *{}

     

    类选择器 = 属性选择器说明:

    下面例子: [id="aaa"] 和 .aaa 一样的权重,谁写在最后,谁生效;

      如果属性选择器再加上p,那么就是它的权重高,即使它在写在前面:

      

    错误的说法:

      你可能听说过给选择器加权值的说法,即 ID 选择器权值为 100,类选择器权值为 10,标签选择器权值为 1,当一个选择器由多个 ID 选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。这种说法其实是有问题的。比如一个由 11 个类选择器组成的选择器和一个由 1 个 ID 选择器组成的选择器指向同一个标签,按理说 110 > 100,应该应用前者的样式,然而事实是应用后者的样式。

     

  • 相关阅读:
    iOS9请求https问题-记录
    邓白氏码的申请-iOS公司开发者账号准备
    iOS学习笔记---oc语言第八天
    iOS学习笔记---oc语言第七天
    iOS学习笔记---oc语言第六天
    一道例题的详解
    使用使用for in 语句,并对数组中元素进行了增删操作,报错却不知怎么办?
    iOS学习笔记---oc语言第五天
    iOS学习笔记---oc语言第四天
    Xcode编译异常和警告汇总(持续更新中)
  • 原文地址:https://www.cnblogs.com/vs1435/p/12622226.html
Copyright © 2011-2022 走看看