CSS定位 & CSS 动画
CSS定位
CSS 的两个最重要的基本属性,分别为 display 和 position。
display对应的是网页的在屏幕平面上的布局,如 flex , grid等;而 position ,用于指定一个元素在文档中的定位方式。
取值
-
static
static是属性position的默认值,使用该关键字,元素使用正常的布局方式,在normal flow中的布局位置。 -
relative
relative表示相对于默认位置进行偏移,定位基点是元素的默认位置,它要搭配top, bottom, left, right 属性一起使用,用来指定偏移的方向和距离。
它可以用作位移,但是更多的在具有absolute属性元素的父元素里,给absolute当爹。
- absolute
absolute表示相对于上级元素进行偏移,它要搭配top, bottom, left, right 属性一起使用,用来指定偏移的方向和距离。
它有一个十分重要的限制条件,其定位的基点是祖先里最近的非static元素,如果没有,其定位基点则是整个网页的根元素 html。
- fixed
fixed表示相对于视口(viewport)进行偏移,定位基点是浏览器窗口。
它如果搭配top, bottom, left, right一起使用,则表示元素的初始位置是基于viewport计算的,否则元素的初始位置是按照normal flow的默认位置。
- sticky
sticky类似于relative和fixed的结合, 有时候按自身默认位置定位,当默认位置在当前视窗外时,按照视口的基点定位。
浏览器渲染原理
步骤:
- 处理 HTML 标记并构建 DOM 树。
- 处理 CSS 标记并构建 CSSOM 树。
- 将 DOM 与 CSSOM 合并成一个渲染树。
- layout 布局:文档流,盒模型,计算大小和位置
- paint 绘制:边框颜色、文字颜色、阴影
- compose 合成:根据层叠关系展示画面
在需要更新样式的时候,一般采用JS。不同的JS更新样式的方式对应三种不同的渲染方式:
想要知道更新某一属性触发何种渲染方式,使用此链接