美文网首页让前端飞Web前端之路
css属性值的计算过程-浏览器对于元素css样式的渲染过程(CS

css属性值的计算过程-浏览器对于元素css样式的渲染过程(CS

作者: hijackli | 来源:发表于2019-06-21 01:04 被阅读5次

文: jack同学

jack同学

应知:每个标签元素都要设置很多样式才能显示在页面,这么多样式对应着一张样式列表,只有这个样式列表中的属性都有值这个元素才能显示在页面,这是前提。这个列表到底有哪些呢?详情可以参考谷歌浏览器的开发者工具或者官方文档

第二,浏览器读取页面html结构的顺序符合深度优先原则,如:先读html -> 再读head -> 再读meta/title/link...读完head里面所有的标签 -> 再读body里面的标签。而不是横向的读取结构

  1. 首先浏览器渲染样式刚开始时,每个元素没有设置样式

  2. 浏览器会计算元素css属性的声明值。声明值有哪些?

    • 声明值包含:自己设置的css属性(如:color:red;),浏览器默认声明的css属性值(如常见a标签默认样式 text-decration: underline;)
    • 如果正好自己设置的跟该元素浏览器默认样式冲突了,或者前面设置的跟后面设置的同一个属性冲突了咋办?那么就要解决冲突,见第三步。
  3. 第三步,浏览器会解决冲突(也叫层叠冲突)

    • 自己设置的属性跟自己设置的属性冲突
      • 比较权重(讨论权重的文章很多,不详细解释)
      • 比较顺序(权重相同,后面的覆盖前面的)
    • 自己设置的属性跟浏览器默认属性冲突
      • 从逻辑上来说,自己设置的样式肯定想要覆盖系统的样式,所以浏览器也是这样做的,自己设置的属性值重要性更高于默认属性值。
  4. 第四步,浏览器会计算继承属性值

    • 前面的步骤使元素都设置了一些样式,那么这步浏览器会查看父级中是否还能够继承一些没有设置的属性值,如果有就继承过来,没有可继承的怎么办?先空着,再进行第五步。

    • 继承性:每个属性都存在是否可以继承的可能,要了解哪些属性可以继承,可以参考官方文档,一般来说字体类的属性可以继承

    • 注意计算继承过程是在计算声明值和解决层叠冲突之后,这就是为什么有些属性值在某些元素中不能继承的原因所在了。比如说常见的a标签颜色属性值继承问题(父级设置颜色,a标签颜色不改变,就是因为先计算了声明值也就是浏览器有默认样式,那么这个属性就存在值了不会进行继承)

  5. 第五步,设置默认值

    • 对于样式列表中还没有设置计算的属性,则给默认值
    • 常见的元素默认值如:很多元素的width值为auto,背景颜色为transparent。详情见谷歌浏览器开发者工具/官方文档
  6. 最后,所有属性值都设置了,元素显示。

相关文章

  • css属性值的计算过程-浏览器对于元素css样式的渲染过程(CS

    文: jack同学 应知:每个标签元素都要设置很多样式才能显示在页面,这么多样式对应着一张样式列表,只有这个样式列...

  • CSS样式之属性值的计算过程 ------ 2020-01-17

    1、HTML文档的渲染过程: 2、每个元素渲染CSS属性是如何渲染的: 3、一个例子: 4、两个特殊的CSS属性值:

  • jQuery内容整理——CSS

    .css()访问匹配元素的样式写法:.css({'属性','属性值'})|.css({属性:'属性值'}) .o...

  • css样式入门书目录

    css样式-字体属性 css样式-背景属性 css样式-边框属性 css样式-列表属性 css样式-定位属性 cs...

  • CSS知识总结

    浏览器渲染原理 浏览器渲染大致有以下几个过程: 根据HTML构建HTML树(DOM) 根据CSS构建CSS树(CS...

  • CSS入门

    CSS CSS基本语法 CSS定义方法是:  选择器{属性:值;属性:值;属性:值}  选择器是将样式和页面元素关...

  • css继承_属性值计算

    继承 子元素会继承父元素的某些CSS属性 通常,跟文字内容相关的属性都能被继承 属性值的计算过程 一个元素一个元素...

  • 十三、jQuery的CSS、DOM、事件、动画

    一、CSS css(‘color’)获取样式值 css('font-size','3em') 设置样式值 .cs...

  • 「CSS」语法

    CSS 简介 CSS 引入方法 CSS 语法 浏览器私有属性 属性值语法基本元素组合符号数量符号CSS 规则示例 ...

  • 样式

    集中设置元素属性 TargetType 样式 类似 css对属性值分组,在多个元素中共享该组的值效果 样式继承 本...

网友评论

    本文标题:css属性值的计算过程-浏览器对于元素css样式的渲染过程(CS

    本文链接:https://www.haomeiwen.com/subject/rwfeqctx.html