• CSS样式书写顺序


    CSS样式还有书写顺序?

    web前端-CSS样式书写顺序

    样式还有书写顺序?样式这么简单的东西,不是随便写写就行的么。很多初学者,甚至有一定工作经验的人都会发出这种疑问。而样式的书写顺序到底对页面有没有影响呢?答案是肯定的。如何写出好的css样式也是一个优秀的开发者必须要知道的!而且应该养成习惯,融入到开发中!好的习惯不是一点养成的。

    为什么要注意书写顺序?

    减少浏览器reflow(回流),提升浏览器渲染dom的性能

    浏览器渲染原理

    web前端-CSS样式书写顺序

    ①:解析html构建dom树,解析css构建css树:将html解析成树形的数据结构,将css解析成树形的数据结构

    ②:构建render树:DOM树和CSS树合并之后形成的render树。

    ③:布局render树:有了render树,浏览器已经知道那些网页中有哪些节点,各个节点的css定义和以及它们的从属关系,从而计算出每个节点在屏幕中的位置。

    ④:绘制render树:按照计算出来的规则,通过显卡把内容画在屏幕上。

    css样式解析到显示至浏览器屏幕上就发生在②③④步骤,可见浏览器并不是一获取到css样式就立马开始解析而是根据css样式的书写顺序将之按照dom树的结构分布render样式,完成第②步,然后开始遍历每个树结点的css样式进行解析,此时的css样式的遍历顺序完全是按照之前的书写顺序。

    样式的书写顺序是如何影响网页的?

    比如如下代码:

    web前端-CSS样式书写顺序

    当浏览器解析到display的时候,突然发现元素是块级元素,而之前是按照行内元素渲染的!这个时候不得不回头重新渲染,在按照块级元素解析span标签。正确的做法是display写在样式最前面,一开始就以块级元素渲染span标签。

    再看一个例子:

    web前端-CSS样式书写顺序

    这个例子 解析到position的时候,突然发现该元素是绝对定位元素需要脱离文档流,而之前却是按照普通元素进行解析的,所以不得不重新渲染,而绝对定位是根据已经定位的父元素定位的,如果父元素的大小不一样,就会出现.box大小会重新改变的结果,使页面闪动。定位又是脱离文档流的,浮起来之后可能会影响其他元素排列布局。

    一遍能过的非要渲染两遍 是很浪费性能的,大量的重绘页面会导致页面一闪一闪的,影响用户体验~

    推荐的书写顺序是什么呢?

    我们应该按照什么顺序来写样式呢?

    (1)定位属性:

    web前端-CSS样式书写顺序

    (2)自身属性:

    web前端-CSS样式书写顺序

    (3)文字样式:

    web前端-CSS样式书写顺序

    (4)文本属性:

    web前端-CSS样式书写顺序

    (5)css3中新增属性:

    web前端-CSS样式书写顺序

    更加细分

    web前端-CSS样式书写顺序

    web前端-CSS样式书写顺序

    web前端-CSS样式书写顺序

    今天先分享这么多,如果大家喜欢的话我会再更新,正在学习WEB前端技术的小伙伴可以进群(618522268)一起交流学习,群里还有大量学习资料可供大家自行下载参看,欢迎大家一起来交流讨论。。

    web前端-CSS样式书写顺序

    web前端-CSS样式书写顺序

  • 相关阅读:
    书单
    树莓派与 NATAPP 实现内网穿透
    WinForm分辨率适应-高DPI自动缩放
    ElasticSearch学习——搜索技术基础知识(上)
    JavaSE学习笔记-基础
    JavaSE学习笔记-第一个Java程序
    JavaSE学习笔记-Java开发环境搭建
    MySQL学习笔记-增删改查
    MySQL学习笔记-函数
    MySQL学习笔记-查询
  • 原文地址:https://www.cnblogs.com/gongyue/p/8962246.html
Copyright © 2020-2023  润新知