一、绝对定位
position:absolute;
参照元素:父元素
如果父亲没有相对定位,会依次往上级找,爷爷有相对定位,就参照爷爷的位置定位
特性:
1.元素脱离正常文档流,不占位(也脱离文本流,全脱)
2.有定位父级相对于定位父级发生定位偏移
3.如果没有定位父级相对于浏览器窗口发生定位偏移(如果其父亲没有相对定位,会一直往上找,直到相对于html)
4.能使不能设置宽高的行级元素设置宽高
5.提升层级
6.如果没有定位偏移属性,对元素本身有影响;如果有定位偏移属性,则相对于父元素发生偏移
应用场景:
通常配合绝对定位使用(子绝父相)结合实际案例,如焦点图中的分页,翻页,视频网站中的 vip标签等
二、固定定位
特性:
1.元素脱离正常文档流,不占位(也脱离文本流,全脱)
2.始终相对于浏览器窗口四个角为原点进行固定定位的
3.不会随页面的内容滚动而滚动
4.能使不能设置宽高的行级元素设置宽高
5.提升层级
6.如果没有定位偏移属性,对元素本身有影响
应用场景:
相对于窗口定位的元素如弹窗、跟随滚动的导航、侧边栏
三、层级
定位可以提升层级
z-index:n; n整数
负值 -1 -2……
正值 1 2……
0 默认值
数值越大,层级越高
必须与position属性一起使用,否则无效
层级相同的情况下,结构在后的层级大
四、实现盒子居中的方法
1. 使用定位及margin属性实现盒子水平垂直居中
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
2. 使用定位及margin属性实现盒子水平垂直居中
margin 负间距原理
使用margin属性的负间距实现具有width属性和height属性的绝对定位元素居中position:absolute;
left:50%
定位元素盒的宽度一半
top:50%;
定位元素盒的高度的一半
margin-left:-100px;
定位元素本身宽度的一半
margin-top:-100px;
定位元素本身的高度一半