CSS深入理解之position

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)

猜你喜欢

转载自blog.csdn.net/lyp_story/article/details/88259863