CSS-position

我们先来看看position这个属性

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

2.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>

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

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

并且当relative1是relative2的父元素,但是不是relative3的父元素的时候,就会产生这样的效果的


relative2像在漂浮在上层一样 ,所以我们是可以使用z_index来设置分层的。

3.absolute

定位是脱离正常的文本流,与relative的区别是其在正常流中的位置是不再存在的。例如我们relativel设置为relative,relative2设置为absolute,relative3也设置为absolute,然后就会出现这个效果的。


relative2与relative3都相叠在一起,因为他们都设为position:absolute。所以他们在正常流中的位置是不再促在的,只能被其他元素占用的。

4.fixed

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


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值