css中position属性及z-index属性

position属性共有四种不同的定位方法,分别是static、fixed、relative、absolute,sticky。最后将会介绍和position属性密切相关的z-index属性。

1.position: static

static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到top,bottom,left,right的影响。

2.position: fixed 

fixed定位是指元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会滚动,且fixed定位使元素的位置与文档流无关,因此不占据空间,且它会和其他元素发生重叠。值得注意的是:fixed定位在IE7和IE8下需要描述!DOCTYPE才能支持。

3.position: relative

相对定位元素的定位是相对它自己的正常位置的定位。元素设置相对定位之后,仍存在文档流中,不会对下面的其他元素产生影响

关键:如何理解其自身的坐标呢?

 

// hmtl如下:
<h2>这是位于正常位置的标题</h2>
<h2 class="pos_bottom">这个标题相对于其正常位置向下移动</h2>
<h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>


// css代码如下:
.pos_bottom{position:relative; bottom:-20px;}
.pos_right{position:relative;left:50px;}

 

效果图如下:

 

 即bottom:-20px;;向下移动。  left:50px;向右移动。

即可以理解为:移动后是移动前的负的位置。 如果值为负数,则直接换成整数;如果值为整数,则直接改变相对方向。

4.position: absolute

绝对定位的元素相对于最近的已定位父元素(父元素的position可以为 relative/absolute/fixed ),如果元素没有已定位的父元素,那么它的位置相对于<html>

5.position: sticky

 position:sticky是css定位新增属性;可以说是相对定位relative和固定定位fixed的结合;它主要用在对scroll事件的监听上;

简单来说,在滑动过程中,某个元素距离其父元素的距离达到sticky粘性定位的要求时(比如top:100px);position:sticky这时的效果相当于fixed定位,固定到适当位置。

设置position:sticky同时给一个(top,bottom,right,left)之一即可
使用条件:
1、父元素不能overflow:hidden或者overflow:auto属性。
2、必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
3、父元素的高度不能低于sticky元素的高度
4、sticky元素仅在其父元素内生效
来看看各大内核对position:sticky的支持情况:目前支持的浏览器只有 firefox /safari  /ios safari   如果业务场景可以用其它定位解决,那就还是不要用sticky吧

 

6.z-index属性

z-index只能在position属性值为relative或absolute或fixed的元素上有效。

基本原理是:z-index的值可以控制定位元素在垂直于显示屏幕方向(z轴)上的堆叠顺序(stack order),值大的元素发生重叠时会在值小的元素上面。

 本文参考链接:https://www.cnblogs.com/zhuzhenwei918/p/6112034.html

posted @ 2020-09-16 18:13  棠樾  阅读(504)  评论(0编辑  收藏  举报