CSS定位布局-五个定位实现自由布局(Static, Relative, Absolute, Fixed, Sticky)

        

目录

1.Static

2.Absolute

3.Relative

4.Fixed

5.Sticky

6.Z-index


        最近发现不自己把这些基础知识理一遍还是会乱,所以在这里结合最近做的几个作业,把我理解的五个定位给写了一下

        我们的定位(position)不亚于这五个:Static, Relative, Absolute, Fixed, Sticky,熟练掌握这五种布局便可实现如下图的布局:

image-20250309194152209

1.Static

        静态定位,默认值,默认的布局方式,正常的文档流。

2.Absolute

        绝对定位,先把元素移出正常的文档流(也就是说原本在他后边的元素会自动挤占他原本的空间),他自己呢就覆盖在挤占其空间的元素的上方。这时候其实就相当于告诉页面我的位置就死在这里了,不管前面后面怎么变化,我都在这里,因为我都移出文档流了,自然就不会受到其他东西的影响。

image-20250309194549378

        可以用left,right,top,bottom属性来设置位置偏移,设置这些属性是相对于包含他的元素,说简单点(这里不说那么严谨),就是父级盒子中位置确定了(如设置了position的元素,static除外)的元素,他就相对于这个元素偏移。

3.Relative

        他的主要作用是偏移,就是上文说的可以用left,right,top,bottom属性来设置位置偏移,区别就是他还是属于正常文档流的,其他元素不会挤占他原本的空间。他的使用往往需要Absolute(我就死在这里了,说明位置已经唯一确定)的配合,relative会相对于他的父级中已经确认了位置的元素进行偏移,我的理解是Absolute的配合相当于把两个盒子给绑定在了一起

image-20250309195113184

        比如我现在使用了input,大家都知道默认的input样式很丑,所以一般我们会使用label元素(可以扩大用户点击范围)去自定义这个样式,首先我们需要清楚input的样式,你可以让他display为none,或者把他缩成一个小点,然后透明化。

.checkbox{/* 变成一个小点然后透明化 */
  height: 0;
  width: 0;
  opacity: 0;
  cursor: pointer;
}

image-20250309200334975

        接着我想通过偏移把红色小方框定位在那个地方,我们肉眼看过去,他就是相对于绿色的大方块定位的嘛,所以我们将绿色的position设置为absolute,红色设置为relative,就可以相对于绿色的大方块进行偏移。

        这个的优点就是当我们移动绿色方块时,红色方块跟着动而不是停在原地。

4.Fixed

        固定定位,用left,right,top,bottom属性来设置位置偏移,无论页面怎么滚动,他都会固定在那个位置不动!(垃圾广告这个是最帅的,就是要挡在那里),他的宽高为内容的宽高,可以通过设置left:0,right:0(宽度占满)top:0,bottom:0(高度占满所在空间)

image-20250309201542763

5.Sticky

        在浏览器的一定位置时,直接固定在页面,比如我们最常见的导航栏

image-20250309201911434

        用left,right,top,bottom属性来设置当位置达到多少时进行固定

        当然我们有时候会遇到这种尴尬的情况(如图),上面的导航栏压住了下面的内容

image-20250309202445231

        其实这个是上面几个的知识,这里因为导航栏设置了Sticky,脱离了正常的文档流,所以下面的内容栏就补充了他的空位,这里呢我们可以通过内容栏的top来设置,也可以通过

#item{
  scroll-margin-top: 120px;(通过这个来设置亦可)
}

6.Z-index

        如果两个absolute的元素重合在一起,一般默认后定义的在先定义上面,当然也看其 Z-index(Z轴方向的偏移值,离人眼的距离)大小,大的在上面(离人眼越近),小的在下面(可以是负数,比较的时候如果父级也有Z-index,比较父级)

image-20250309203107272

image-20250309203411892

本文参考了

第一版:b站视频:动画解释CSS定位布局-Static, Relative, Absolute, Fixed, Sticky, 五大定位模式实现自由布局_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌乱的程序猿

谢谢大佬长这么好看还给我打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值