position
子绝父相
position 属性的五个值:
元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。
fixed 定位
元素的位置相对于浏览器窗口是固定位置。
即使窗口是滚动的它也不会移动:
应用: 小广告,回到顶部,固定导航栏
relative 定位
相对定位元素的定位是相对其正常位置。
相对定位:不脱离标准文档流,可以调整元素
参考点:
以原来的位置为参考点
原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它
absolute 定位
绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于html
特点:1.脱离标准文档流,不在页面占位置
2.压盖现象 层级提高
参考点:
单独给一个盒子设置绝对定位,以根元素页面左上角为参考点
重点:
1.如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位(document文档)
2.如果父元素有定位(相对,绝对,固定),则以最近一级有定位父元素为参考点移动位置
3.绝定定位不再占有原先的位置(脱标)
加了绝对定位的盒子不能通过margin:0 auto 水平居中
绝对定位的元素top、left设为50%时,是已左上角为原点的
所以只要再使用margin属性添加负值补偿回来即可
sticky 定位
粘性定位可以被认为是相对定位和固定定位的混合
粘性定位的特点:
1.以浏览器的可视窗口为参照点移动元素(固定定位特点)
2.粘性定位占有原先的位置(相对定位特点)
3.必须添加top、left、right、bottom 其中一个才有效
定位特殊特性:
1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度
2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小
3.绝对定位(固定定位)会完全压住盒子
浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准盒子里面的文字
但是绝对定位(固定定位)会压住下面标准流所有的内容
浮动之所以不会压住文字,以内浮动产生的目的最初是为了做文字环绕效果的,文字会围绕浮动元素