Position定位

Position定位

static、fixed、relative、absolute、sticky(粘性定位!!!)、inherit(继承)、initial(初始化)

特性:
1.定位的元素,块级元素仍然是块级,行内还是行内元素,不会改变其属性;
2.Z-index 层叠概念;

  • static(静态定位)它是position 的默认值,任意的position:static的元素是不会被特殊定位的。它表示的是出现的正常的流中(忽略了top,left,right,bottom或者是z-index的声明,如果使用了position:static的话,以上说的属性就是不会起作用的。)

  • relative(相对定位):relative表现是和static是一样的,除非我们自己添加一些额外的属性。它是生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常(原先本身的)位置进行定位的。就是总的来说是根据自己本身的定位相对移动的。并且是可以通过z-index来进行层次的分级。虽然定位为relative的元素是会偏离正常的文本流当中,但是其在文本流位置是依然存在的。其他的元素是不会受该元素的影响的,浏览器中还是会给这个偏离正常流元素一个位置。

<style>
.relative1 {
	position: relative;
	border:1px black solid;
}
.relative2 {
	position: relative;
	top: 20px;
	left: 20px;
	background-color: white;
	width:100px;
	height:100px;
	border:1px red solid;
}
.relative3{
	width:200px;
	height:100px;
	border:1px blue solid;
	position:relative;
}
</style>
</head>
<body>
	<div class="relative1">
		relative1
		<div class="relative2">
			relative2
		</div>
		<div class="relative3">
			relative3
		</div>
	</div>
</body>
</html>

我这里设置了relativel是父元素,其他是子元素。我将父元素设置为position:relative,如果我们没有给他添加额外的属性的话,那么父元素的宽度就是撑满整个浏览器的窗口了,但是如果给父元素设置宽度的大小的话,那么宽度就不是撑满整个浏览器的窗口,所以说它跟static的表现是一样的。

但是如果父元素设置为position:absolute的话,即使没有给他设定宽度,它的宽度也不会是撑满整个浏览器窗口的。

并且当relative1是relative2的父元素,但是不是relative3的父元素的时候,就会产生这样的效果的
这里写图片描述
relative2像在漂浮在上层一样 ,所以我们是可以使用z_index来设置分层的。

  • absolute (绝对定位)是脱离正常的文本流,与relative的区别是其在正常流中的位置是不再存在的。例如我们relativel设置为relative,relative2设置为absolute,relative3也设置为absolute,然后就会出现这个效果的。relative2与relative3都相叠在一起,因为他们都设为position:absolute。所以他们在正常流中的位置是不再促在的,只能被其他元素占用的。
    -生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位

这里写图片描述

  • fixed 一个固定定位元素会相对于浏览器来定位的,这意味着如果页面滚动的话,它还是会停留在相同的位置上的,而且top,right,botton和left属性都是可以使用的。一个固定的元素是不会保留它原有的位置的,这也是脱离文本流的。

需要注意的是,父子关系是无法用z-index来设定上下关系 的,一定是子级在上父级在下

-sticky(粘性定位!!!)

sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位。

position: sticky; 基于用户的滚动位置来定位。

粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。

    position: -webkit-sticky; /* Safari */
    position: sticky;
    top: 0;
    background-color: green;
    border: 2px solid #4CAF50;

滚动前:
这里写图片描述
滚动后:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值