相对定位 - relative
元素按照normal flow布局,可以通过left、right、top、bottom进行定位,定位参照对象是元素自己原来的位置。left、right、top、bottom用来设置元素的具体位置。相对定位的应用场景:在不影响其他元素位置的前提下,对当前元素位置进行微调。
固定定位 - fixed
元素脱离normal flow(脱离标准流、脱标),可以通过left、right、top、bottom进行定位,可以通过left、right、top、bottom进行定位,当画布滚动时,固定不动。
画布和视口
视口(Viewport):文档的可视区域,如右图红框所示
画布(Canvas):用于渲染文档的区域,文档内容超出视口范围,可以通过滚动查看,如右图黑框所示
宽高对比:画布 >= 视口
定位元素的特点
- 可以随意设置宽高
- 宽高默认由内容决定
- 不再受标准流的约束:不再严格按照从上到下、从左到右排布;不再严格区分块级、行内级,块级、行内级的很多特性都会消失
- 不再给父元素汇报宽高数据
- 脱标元素内部默认还是按照标准流布局
绝对定位 - absolute
元素脱离normal flow(脱离标准流、脱标),可以通过left、right、top、bottom进行定位。定位参照对象是最邻近的定位祖先元素,如果找不到这样的祖先元素,参照对象是视口。
定位元素(positioned element):position值不为static的元素,也就是position值为relative、absolute、fixed的元素