css 定位布局-Static ,Relative,Absolute,Fixed,Sticky 五大定位模式实现自由布局

**在这里插入图片描述

Static 😗*静态定位,position的默认定位,也是css 默认的布局方式,从上到下从左到右属于正常的文档流
Relative:相对定位,是在确定元素的默认位置之后,通过left,top,bottom,right,来设置位置的偏移,但是元素所占的空间还保留在原位,其他元素不会挤占他原本的空间,
在这里插入图片描述

Absolute:绝对定位,会把元素移除正常的文档流,后边的元素会挤占原本的空间,而他自己则覆盖在挤在他空间的上方,通过left,top,bottom,right,来设置位置的偏移,与relative不同的是这些属性是相对于包含他的元素偏移的,什么是包含元素呢,如果这个元素的所有父级元素都没有设置position或者relative,transform,perspective,那么包含元素就是包含html元素的容器,也就是说是浏览器的窗口,这是left和top是相当于浏览器左上角偏移的,如果父级元素中有position,relative,transform,perspective,那么包含元素就是这些,那么包含元素就是这些与他最近的设置了这些属性的元素,他是相对于父级元素的padding和边界进行位置偏移的,无论父级元素的内间距有多大,边框与padding交界处开始计算偏移,我们通常使用relative来设置包含元素,他不会影响正常的文档流,absolute是用途最广的定位方式,可以实现弹出层,叠加,不规则的位置等布局形式。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

**Fixed:**固定定位,和absolute定位类似,只是他的包含元素是当前浏览器窗口,当通过left,top,bottom,right,属性设置偏移之后,无论页面怎么滚动,他都会固定在同一个位置,适合用于固定浮窗,导航条的布局,absolute和fixed这种脱离文档里的定位放置,会把元素的宽高设置成内容的宽高,我们可以通过设置left:0,right:0,来让宽度占满包含容器,也可以设置top:0,bottom:0来让高度占满包含容器,
在这里插入图片描述
在这里插入图片描述

**Sticky:**相当于relative和fixed的结合体,可以让元素在距离浏览器窗口0位置时候,把它变成固定在这个位置,而其他情况下都还在正常的文档流中,通过left,top,bottom,right,来分别设置距离浏览器左上右下多少像素时固定住
**z-index:**除了Static默认定位后,其他定位方式设置了偏移后,很可能覆盖在其他元素的上面,比如说一个包含元素中同时有两个absolute元素,那么后定义的absolute元素会覆盖先定义的上边,如果让先定义的在上边可以给他设置较大的z-index数值来实现,z-index是z轴方向的偏移,浏览器到人眼的方向数值越大,离人眼越近,所以会覆盖在数值小的上边,所有定位的元素,除了Static外,都可以通过z-index设置z轴偏移,可以设置正数或者负数,需要注意的是如果两个定位元素,分别在两个不同的包含元素中,并且这两个包含元素也设置了z-index的话,那么这两个元素的堆叠顺序就取决于包含元素
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这些就是css的定位方式,他们都有特定用途,另外通过设置z-index来设置z-index的堆叠顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这里是CSS中五种常见的定位方式的介绍和用法: 1. static(静态定位):元素的位置遵循正常的文档流,不受top、bottom、left、right影响。 2. relative(相对定位):元素的位置相对于它在文档流中的初始位置进行定位,可以通过top、bottom、left、right属性进行微调。 3. absolute(绝对定位):元素的位置相对于最近的已定位祖先元素(position属性不为static)进行定位,如果没有已定位的祖先元素,则相对于文档的body元素进行定位。 4. fixed(固定定位):元素的位置相对于浏览器窗口进行定位,不随页面滚动而改变。 5. sticky(粘性定位):元素在跨越特定阈值前为相对定位,之后为固定定位。可以通过top、bottom、left、right属性进行微调。 下面是一个例子,展示了这五种定位方式的用法: ```html <!DOCTYPE html> <html> <head> <title>定位方式示例</title> <style type="text/css"> .container { height: 300px; position: relative; border: 1px solid black; } .box { width: 100px; height: 100px; background-color: red; color: white; text-align: center; line-height: 100px; font-size: 20px; } .static { position: static; } .relative { position: relative; top: 50px; left: 50px; } .absolute { position: absolute; top: 50px; left: 50px; } .fixed { position: fixed; top: 50px; left: 50px; } .sticky { position: sticky; top: 50px; } </style> </head> <body> <div class="container"> <div class="box static">static</div> <div class="box relative">relative</div> <div class="box absolute">absolute</div> <div class="box fixed">fixed</div> <div class="box sticky">sticky</div> </div> </body> </html> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

vivk2017

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值