• CSS Position(定位)


    position 属性指定了元素的定位类型。

    position 属性的五个值:

    • static
    • relative
    • fixed
    • absolute
    • sticky

    元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。


    static 定位

    HTML 元素的默认值,即没有定位,遵循正常的文档流对象。

    静态定位的元素不会受到 top, bottom, left, right影响。

    1. div.static {
    2. position: static;
    3. border: 3px solid #73AD21;
    4. }

    fixed 定位

    元素的位置相对于浏览器窗口是固定位置。

    即使窗口是滚动的它也不会移动:

    1. p.pos_fixed
    2. {
    3. position:fixed;
    4. top:30px;
    5. right:5px;
    6. }

    注意: Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持。

    Fixed定位使元素的位置与文档流无关,因此不占据空间。

    Fixed定位的元素和其他元素重叠。


    relative 定位

    相对定位元素的定位是相对其正常位置。

    1. h2.pos_left
    2. {
    3. position:relative;
    4. left:-20px;
    5. }
    6. h2.pos_right
    7. {
    8. position:relative;
    9. left:20px;
    10. }

    移动相对定位元素,但它原本所占的空间不会改变。

    相对定位元素经常被用来作为绝对定位元素的容器块。


    absolute 定位

    绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于:

    1. h2
    2. {
    3. position:absolute;
    4. left:100px;
    5. top:150px;
    6. }

    absolute 定位使元素的位置与文档流无关,因此不占据空间。

    absolute 定位的元素和其他元素重叠。


    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 定位。 Safari 需要使用 -webkit- prefix (查看以下实例)。

    1. div.sticky {
    2. position: -webkit-sticky; /* Safari */
    3. position: sticky;
    4. top: 0;
    5. background-color: green;
    6. border: 2px solid #4CAF50;
    7. }

    重叠的元素

    元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

    z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)

    一个元素可以有正数或负数的堆叠顺序:

    1. img
    2. {
    3. position:absolute;
    4. left:0px;
    5. top:0px;
    6. z-index:-1;
    7. }

    具有更高堆叠顺序的元素总是在较低的堆叠顺序元素的前面。

    注意: 如果两个定位元素重叠,没有指定z - index,最后定位在HTML代码中的元素将被显示在最前面。

  • 相关阅读:
    3种工厂模式
    第06章 数据挖掘综合应用
    如何配置React-Router?
    阿里云OSS服务使用操作流程
    hr竟主动给这位测试小姐姐涨工资,她是怎么做到的?
    通过YOLO5训练自己的数据集(以交通标志牌数据集TT100k为例)
    [附源码]JAVA毕业设计计算机类课程实验平台(系统+LW)
    基于Springboot实现校园新闻网站管理系统演示【项目源码+论文说明】
    汽车诊断系统总线协议规范知识汇总
    Spring3新特性:graalvm打包Springboot+Mybatis
  • 原文地址:https://blog.csdn.net/leyang0910/article/details/133817729