HTML中三种布局方式:标准流,定位,浮动
没有设置z-index时,absolute relative fixed 表现正常的层级关系 后来居上
z-index: auto number inherit(作用于带有定位属性的元素)
所有元素层级都受制于父元素的层的关系
position:relative/absolute
z-index:
若子元素设置position:absolute;浏览器会向上找到position:relative;的元素,如果没有这个属性值则继续向上查找都没有则相对于document定位设置元素位置 常见属性如下
static:对象遵循常规流。此时4个定位偏移属性不会被应用。
relative:对象遵循常规流,并且参照自身在常规流中的位置通过top,right,bottom,left这4个定位偏移属性进行偏移时不会影响常规流中的任何元素。(后写元素的层级大于先写元素的层级)
left top 坐标轴 网页左上为原点,向右、向下为正方向,横纵坐标位置增加对应的值
right bottom 坐标轴 网页左上为原点,向左、向上为正方向,横纵坐标位置减少对应的
absolute:相对于窗口定位,对象脱离常规流(网页中没有它的高度),此时偏移属性参照的是离自身最近的定位祖先元素,如果没有定位的祖先元素,则一直回溯到body元素。盒子的偏移位置不影响常规流中的任何元素,其margin不与其他任何margin折叠。(拥有层级概念,后写的元素覆盖先写的元素)
left top 坐标轴 网页左上为原点,向右、向下为正方向,
left bottom 坐标轴 网页左下为原点,向右、向上为正方向
right top 右上 right bottom 右下
注意:设置 absolute,但不设置定位元素top left right bottom 则没有定位特性
fixed:与absolute一致(四个角定位),脱离常规文档流,但偏移定位是以窗口为参考。当出现滚动条时,对象不会随着滚动。
不受制于父元素,即使带有定位属性
inherit 继承父元素的定位属性 如果是fixed ,则相对于窗口 不受制于父元素
center:与absolute一致,但偏移定位是以定位祖先元素的中心点为参考。盒子在其包含容器垂直水平居中。(CSS3)
page:与absolute一致。元素在分页媒体或者区域块内,元素的包含块始终是初始包含块,否则取决于每个absolute模式。(CSS3)
sticky:对象在常态时遵循常规流。它就像是relative和fixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。(CSS3)