视觉艺术

CSS书写规范

2020-01-07  本文已影响0人  agamgn

前言

Css书写规范不仅能够提高代码的可阅读性,还可以提高浏览器渲染dom的性能

一、命名规则

二、相对网页外层重要部分的css命名

外套 wrap ------------------用于最外层
头部 header ----------------用于头部
主要内容 main ------------用于主体内容(中部)
左侧 main-left -------------左侧布局
右侧 main-right -----------右侧布局
导航条 nav -----------------网页菜单导航条
内容 content ---------------用于网页中部主体
底部 footer -----------------用于底部

三、css样式表文件命名

四、样式属性顺序

1、定位:position z-index left right top bottom clip等。
2、自身属性:width height min-height max-height min-width max-width等。
3、文字样式:color font-size letter-spacing color text-align等。
4、背景:background-image border等。
5、文本属性: text-align vertical-align text-wrap text-transform text-indent text-decoration letter-spacing word-spacing white-space text-overflow等。
6、css3中属性content box-shadow animation border-radius transform

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

文档加载完成到完全显示之间浏览器的渲染流程为:
①解析html构建dom树,解析css构建css树:将html解析成树形的数据结构,将css解析成树形的数据结构
②构建render树:DOM树和CSS树合并之后形成的render树。
③布局render树:有了render树,浏览器已经知道那些网页中有哪些节点,各个节点的css定义和以及它们的从属关系,从而计算出每个节点在屏幕中的位置。
④绘制render树:按照计算出来的规则,通过显卡把内容画在屏幕上。


dom.png

css样式解析到显示至浏览器屏幕上就发生在②③④步骤,可见浏览器并不是一获取到css样式就立马开始解析而是根据css样式的书写顺序将之按照dom树的结构分布render样式,完成第②步,然后开始遍历每个树结点的css样式进行解析,此时的css样式的遍历顺序完全是按照之前的书写顺序。在解析过程中,一旦浏览器发现某个元素的定位变化影响布局,则需要倒回去重新渲染正如按照这样的书写书序:

width: 100px;
height: 100px;
background-color: red ;
position: absolute;

当浏览器解析到position的时候突然发现该元素是绝对定位元素需要脱离文档流,而之前却是按照普通元素进行解析的,所以不得不重新渲染,解除该元素在文档中所占位置,然而由于该元素的占位发生变化,其他元素也可能会受到它回流的影响而重新排位。最终导致③步骤花费的时间太久而影响到④步骤的显示,影响了用户体验。
注:还有一个会影响浏览器渲染性能的词汇“repaint(重绘)”

repaint(重绘):改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。

注意:

上一篇 下一篇

猜你喜欢

热点阅读