当前位置: 首页 > news >正文

第八讲_css定位

css定位

  • 1. css定位介绍
  • 2. 静态定位(static)
  • 3. 相对定位(relative)
  • 4. 绝对定位(absolute)
  • 5. 固定定位(fixed)
  • 6. 粘性定位(sticky)

1. css定位介绍

在 css 中,可以通过 position 设置元素的定位模式,常见的定位模式:

  1. static(默认值):按照正常的文本流布局。
  2. relative:相对定位。
  3. absolute:绝对定位。
  4. fixed:固定定位。
  5. sticky:粘性定位。

position为非static时,可以通过topbottomrightleft设置元素的偏移量。

2. 静态定位(static)

静态定位是元素的默认定位方式,按照标准流特性摆放位置,没有边偏移。

3. 相对定位(relative)

  • 相对定位的参考点是自己原来的位置。
  • 相对定位不会脱离标准流,继续占有原来的位置。元素位置的变化,只是视觉效果上的变化,不会对其他元素产生任何影响。
  • left 和 right 不能同时使用,top 和 bottom 不能同时使用。
<style>.first {height: 100px;width: 100px;background-color: aqua;position: relative;top: 20px;left: 20px;
}
.second {height: 100px;width: 100px;background-color: blueviolet;
}
</style><div class="parent"><div class="first"></div><div class="second"></div>
</div>

4. 绝对定位(absolute)

  • 绝对定位的参考点是它的包含块。
    • 对于没有脱离标准流的元素,它的包含块就是父元素。
    • 对于脱离标准流的元素,它的包含块是第一个拥有定位属性的祖先元素。
  • 绝对定位会脱离标准流,对后面的兄弟元素、父元素有影响。
  • 绝对定位和浮动不能同时设置,如果同时设置,浮动失效。
  • left 和 right 不能同时使用,top 和 bottom 不能同时使用。
<style>
.parent {position: relative;
}
.first {height: 100px;width: 100px;background-color: aqua;position: absolute;top: 20px;left: 20px;/* 浮动不生效 */float: right;
}
.second {height: 100px;width: 100px;background-color: blueviolet;
}
</style><div class="parent"><!-- 父元素设置了定位,所以父元素就是它的包含块 --><div class="first"></div><!-- .first 设置了绝对定位,脱离了标准流。.second 就会占了它的位置 -->><div class="second"></div>
</div>

5. 固定定位(fixed)

  • 固定定位的参考点是视口。
  • 固定定位会脱离标准流,对后面的兄弟元素、父元素有影响。
  • left 和 right 不能同时使用,top 和 bottom 不能同时使用。
  • 固定定位和浮动不能同时设置,如果同时设置,浮动失效。
<style>
.container {width: 100px;height: 100px;background-color: red;position: fixed;left: 200px;top: 200px;
}</style><div class="container"></div>

ps: 在浏览器打开上述代码,视口就是浏览器,红色的块在距离浏览器顶部200px,左侧200px的位置。

6. 粘性定位(sticky)

  • 粘性定位的参考点是离它最近的拥有“滚动机制”的祖先元素。
  • 粘性定位不会脱离标准流,它是专门用于窗口滚动时的新定位方式。
<style>
.container {width: 500px;height: 200px;/* 内容超出显示滚动条 */overflow: scroll;
}.fisrt {height: 100px;background-color: red;position: sticky;top: 20px;
}
.second {height: 100px;background-color: darkorchid;
}
.third {height: 100px;background-color: blue;
}
</style><div class="container"><div class="fisrt"></div><div class="second"></div><div class="third"></div>
</div>

ps: 只要设置了定位的元素,其显示层级比普通元素高

http://www.lryc.cn/news/277911.html

相关文章:

  • 找出字符串中第一个匹配项的下标(Leetcode28)
  • 【分布式微服务专题】从单体到分布式(四、SpringCloud整合Sentinel)
  • RHCE9学习指南 第19章 网络时间服务器
  • 大模型 RAG 问答技术架构及核心模块盘点:从 Embedding、prompt-embedding 到 Reranker
  • 基于Selenium+Python的web自动化测试框架
  • LeetCode刷题--- 地下城游戏
  • 【sklearn练习】鸢尾花
  • STM32的USB设备库
  • 整数对最小和(100%用例)C卷 (JavaPythonC++Node.jsC语言)
  • QT笔记 - 加载带有提升为自定义部件类的“.ui“文件 - 重写QUiLoader::createWidget()函数
  • 开启Android学习之旅-2-架构组件实现数据列表及添加(kotlin)
  • leetcode 动态规划(最后一块石头的重量II、目标和、一和零)
  • JavaWeb-HTTP
  • 算法训练营第四十二天|动态规划:01背包理论基础 416. 分割等和子集
  • 前端 JS篇快问快答
  • vue/vue3/js来动态修改我们的界面浏览器上面的文字和图标
  • MobaXterm SSH 免密登录配置
  • 霍兰德职业兴趣测试:找到与你性格匹配的职业
  • LVGL学习笔记 显示和隐藏 对象的属性标志位 配置
  • cuda上使用remap函数
  • 【JaveWeb教程】(18) MySQL数据库开发之 MySQL数据库设计-DDL 如何查询、创建、使用、删除数据库数据表 详细代码示例讲解
  • ElasticSearch学习笔记-SpringBoot整合Elasticsearch7
  • [足式机器人]Part2 Dr. CAN学习笔记 - Ch02动态系统建模与分析
  • 【一周年创作总结】人生是远方的无尽旷野呀
  • 金融帝国实验室(Capitalism Lab)V10版本游戏平衡性优化与改进
  • [SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类
  • 北京大学 wlw机器学习2022春季期末试题分析
  • 前端文件下载方法(包含get和post)
  • 高性能、可扩展、支持二次开发的企业电子招标采购系统源码
  • 2645. 构造有效字符串的最少插入数