css 之定位

静态定位

  • position: static
  • 是标准流
  • top、left、bottom、right属性都不起作用
  • 除 static 以外的都是定位
    在这里插入图片描述

相对定位

  • position: relative

  • 元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)

  • 没有脱离标准流

  • 层级高于标准流和浮动的盒子,top、left、bottom、right属性都会起作用

  • 相对自己在标准流中的位置进行偏移
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

绝对定位

  • position: relative
  • 相对最近的非 static;若无则相对body
  • 绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。
    在这里插入图片描述

固定定位

  • position: fixed
  • 元素会被移出正常文档流,并不为元素预留空间
  • 相对于屏幕
  • 元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。
  • fixed 属性会创建新的层叠上下文。当元素祖先的 transform、perspective、filter 或 backdrop-filter 属性非 none 时,容器由视口改为该祖先。
  • 固定在某个位置的效果

如何理解

  • 脱离标准流(后面的元素当它不存在,影响了原先布局)
    在这里插入图片描述
  • 绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。

定位元素

父元素有内/外边距的情况,先确定子元素原本应该在什么位置;再根据定位类型判断相对什么元素

  • 在不设置偏移属性的情况下,受父元素的padding限制
  • 父元素未设置padding,也会限制在父元素的区域内

在这里插入图片描述
在这里插入图片描述

对比总结

定位脱离文档流相对元素
相对定位自己
绝对定位最近的非static 或 body
固定定位屏幕

一些应用

  • 【绝对定位元素内容填充空间】height和width 被设定为 auto 的绝对定位元素,按其内容大小调整尺寸
  • height未指定(即auto)
  • 【绝对定位元素填充可用空间】绝对定位的元素可以通过指定top和bottom ,保留height未指定(即auto),来填充可用的垂直空间。它们同样可以通过指定left 和 right并将width 指定为auto来填充可用的水平空间。
  • 定位的边距合并

脱标的定位元素tblr全0

top、bottom、left、right 全设为 0 有 2 种应用场景:

让无宽高的盒子填满父容器

  • 如果父容器也没有高度?则会占满可视窗口
  • 它的子元素/孙子元素,若为脱标定位且tblr全0,则又会撑满,否则不会
    div.son {
        position: absolute; // 或者设置为 fixed,也有相同效果
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        background: pink;
    }

在这里插入图片描述
在这里插入图片描述

让有宽高的盒子垂直水平居中

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CSS中的定位属性是布局控制的重要工具,它主要有两种主要方式:绝对定位(absolute positioning)和相对定位(relative positioning)。 **1. 相对定位 (Relative Positioning)**: - 原则:相对定位是基于元素的正常文档流来进行定位的。如果设置了`position: relative;`,元素会保持其在文档中的默认位置,然后可以通过`top`, `right`, `bottom`, 和 `left` 属性指定偏移量。 - 行为:相对定位的元素不会影响到其他元素的位置,它会在原位置的基础上移动,同时周围的元素会围绕它移动。 - 示例:你可以使用相对定位来创建一个弹出框或浮动元素。 **2. 绝对定位 (Absolute Positioning)**: - 原则:绝对定位元素会脱离正常的文档流,完全根据`top`, `right`, `bottom`, `left` 属性以及`position: absolute;`声明来定位,与最近的已定位(`position: relative;`)祖先元素相关联,如果没有,则相对于视口(浏览器窗口)定位。 - 行为:绝对定位元素会完全离开其在文档中的原始位置,其他元素也不会因此受到影响,除非它们也设置为绝对定位并覆盖了该元素。 - 示例:通常用于创建固定在页面某个角落的导航菜单或图片,或者是响应式的网页设计中,如轮播图中的图片。 **相关问题**: 1. 相对定位和绝对定位有什么区别? 2. 如何使用`position: relative;`和`position: absolute;`来配合使用? 3. 绝对定位的`z-index`属性有什么作用?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值