记录一下常常使用的position相关属性,以及一些关于使用中遇到的坑css
position:fixed; 复制代码
元素的位置相对于浏览器窗口是固定位置,即便窗口是滚动的它也不会移动。Fixed定位使元素的位置与文档流无关,所以不占据空间。 Fixed定位的元素和其余元素重叠。html
position:relative; top:10px; left:20%; 复制代码
若是对一个元素进行相对定位,它将出如今它所在的位置上。而后,能够经过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。 在使用相对定位时,不管是否进行移动,元素仍然占据原来的空间。所以,移动元素会致使它覆盖其它框。用top,left,right,bottom属性去改变元素的位置浏览器
position:absolute; 复制代码
position:sticky; 复制代码
元素先按照普通文档流定位,而后相对于该元素在流中的flow root(BFC)和 containing block(最近的块级祖先元素)定位。然后,元素定位表现为在跨越特定阈值前为相对定位,以后为固定定位。bash
position:Static; 复制代码
默认值。没有定位,元素出如今正常的流中(忽略top, bottom, left, right 或者 z-index 声明)。markdown
position:inherit; 复制代码
规定应该从父元素继承position 属性的值。布局
关于absolute定位:子元素使用absolute进行定位的时候,会一层一层地向上去找本身的父元素中有没有设置position:relative属性的父元素,若是找到了,那么全部的偏移量例如top:10px这种都是相对于父元素的位置来进行偏移,若是本身的全部父元素都没有设置position:relative,那么absolute定位的时候会相对于根元素也就是body元素来进行偏移flex
<html> <head> <style> .grandFather { width:700px; height:500px; background-color:blue; margin:200px auto; } .father { width:200px; height:100px; background-color:red; } .son { width:50px; height:50px; background-color:green; } </style> </head> <body> <div class="grandFather"> <div class="father"> <div class="son"></div> </div> </div> </body> </html> 复制代码
如图,咱们声明了3个嵌套的div,按父元素到子元素的顺序分别取名为爷爷、爸爸、儿子,尺寸分别为700x500,200x100,50x50,设置了三个颜色以后,而且咱们为了实验的效果,用margin属性将div的位置调到了浏览器的居中位置,效果以下:spa
top:30px;
复制代码
.father
{
width:200px;
height:100px;
background-color:red;
position:relative;
}
复制代码
.grandFather
{
width:700px;
height:500px;
background-color:blue;
margin:200px auto;
position:relative;
}
复制代码
咱们会发现position属性不少时候会改变网页的布局,而且在浏览器大小发生变化的时候不可以自适应的变化,因此下一篇文章介绍流式布局flex属性,如何实现基本的自适应布局方式。code