CSS 有三种基本的定位机制:**普通流、浮动流、定位流**。
1、普通:上下排列的布局(注:大部分情况)
2、浮动:左右排列的布局(注:大部分情况)
3、定位:层叠、叠加排列的布局 (注:大部分情况)
定位属性:position :检索或设置对象的定位方式。
1、static:默认值;没有定位; (可以用于取消元素之前的定位设置)
2、relative:相对定位 (参照物:自己所在的位置)
特点: 如果没有定位偏移量,对元素本身没有任何影响
不使元素脱离文档流,空间是会被保留。
不影响其他元素布局
left、top、right、bottom是相对于当前元素自身进行偏移的 ,不能独自存在,必须配合定位元素一起使用 。
3、 absolute : 绝对定位 (参照物:包含块—该元素的祖先级元素)
使元素完全脱离文档流
使内联元素支持宽高 (让内联具备块特性)
使块元素默认宽根据内容决定(让块具备内联的特性)
如果有定位祖先元素相对于定位祖先元素发生偏移,没有定位祖先元素相对于整个文档发生偏移(绝对、相对、固定)
注:如果祖先元素中有多个元素具备定位模式,那么是已离自己最近的祖先元素进行偏移。
注:默认情况下是相对可视窗口进行定位的。
包含块的概念:
包含块绝对定位的基础;
绝对定位元素会根据包含块进行绝对定位,默认情况下 ,浏览器的可视窗口是一个大的包含块,默认情况下,绝对定位元素会相对浏览器的可视窗口进行定位;如果他的祖先级元素定义了包含块,那他就最近的祖先级元素进行绝对定位。
怎么给他的祖先级元素定义成包含块: 给祖先级元素添加position:relative/absolute/fixed。