zoukankan      html  css  js  c++  java
  • CSS层叠规则总结

    最近在看《CSS权威指南》,用于复习CSS知识,可看到有关层叠和特指度那一章的时候,感觉书本上说得有点乱,所以自己就画了一张流程图来进行总结,也便于理解,现在分享给大家。

    如果有总结不到位,或者错误的地方,请不吝赐教、帮我指出来。

    直接上图:

    说明:

    1.这里仅仅针对某个标签的某个样式进行举例,但是可以扩展到存在于文档中的所有标签和所有样式

    2.由于开发过程中,不需要考虑读者提供的样式,所以实际上,我们在写样式的时候只要注意黑框内容即可

    3.CSS之外的表现提示不推荐使用,但如果使用了,它比浏览器默认样式要高一级

    前置知识:

    声明的权重排序(CSS权威指南原话):

    1.读者提供的样式中以!important标记的声明。

    2.创作人员编写的样式中以!important标记的声明。

    3.创作人员编写的常规声明。

    4.读者提供的常规声明。

    5.用户代理的默认声明。

    其中:用户代理一般指浏览器,创作人员就是程序员,读者代表用户(但读者具体怎么提供样式,我不是很清楚)

    特指度:

    选择器的特指度由选择器本身的组成部分决定。一个特指度值由四个部分构成,例如0,0,0,0。(个人不习惯1000,100,10,1这种权重计算方式)。那么各选择器能贡献多少特指度值呢?

    内联样式:1,0,0,0

    ID选择器:0,1,0,0

    类选择器、属性选择器、伪类:0,0,1,0      (否定选择器对特指度没有影响,但是其内部的选择器会有影响)

    元素、伪元素:0,0,0,1

    通用选择器:0,0,0,0          (标位0,0,0,0的原因是,它可以覆盖继承的样式,也就是说继承的样式根本无特指度可言,是个选择器就能欺负它)

    连接符(空格、>、+、~等):无

    注意:上述特指度比较的时候会先进行分组,!impotant作为一组比较,非!important作为一组比较

    先后位置排序:

    如果冲突的样式显示权重、来源和特指度都一样,那么就比较它们在样式表中的位置,位置靠后的胜出,当然,在这之前先得看看样式是怎么引入的。

    具体的:优先使用style标签里的样式、其次使用@import样式表里的样式、最后再考虑link标签里引用的样式表的样式。

  • 相关阅读:
    200. Number of Islands
    [Leetcode] 70. Climbing Stairs Java
    LeetCode 64. Minimum Path Sum Java
    LeetCode 63. Unique Paths II Java
    LeetCode 62. Unique Paths Java
    [LeetCode 241] Different Ways to Add Parentheses Java
    LeetCode 240. Search a 2D Matrix II Java
    LeetCode 215. Kth Largest Element in an Array Java
    LeetCode 169. Majority Element Java
    LeetCode 53. Maximum Subarray Java
  • 原文地址:https://www.cnblogs.com/lilisblog/p/12753574.html
Copyright © 2011-2022 走看看