五种定位、静态定位、相对定位、绝对定位、固定定位、粘性定位、实现元素水平垂直居中的方法

static 默认值
静态定位,相当于没有加

relative 相对定位

  • 参考物: 元素自己本身的位置
  • 移动方向和移动距离:
    left/top/right/bottom:数值px; (和设置的方向形成距离为正,交叉为负数)
  • 相对定位
    移动之后是占位置的
    虽然定位和margin都可以调整元素的位置,
    但是一般情况下首选margin,
    如果有遇到元素向上移动过后,想预留位置的话,就选相对定位

absolute 绝对定位

  • 参考物: 有(1)定位属性的(除默认的静态定位之外)(2)祖先元素

  • 参考物特殊情况:
    (1) 如果要移动的元素的祖先元素很多都加了定位属性,那就参考离该元素最近的
    (2) 如果祖先元素都没有加定位属性,那就参考浏览器窗口

  • 移动方式和距离:
    left/right/bottom/top:数值px/百分数

  • 特点
    (1) 脱离文档流,会遮挡住后面的元素,且文字也会被遮挡
    (2) 脱离文档流的元素,margin:auto会失效
    (3) 内联元素加绝对定位之后,会变块元素

  • 定位属性的层级关系 z-index:数字;
    (1) 默认值可以理解为0,值越大,层级越高,越在上面,
    (2) 可以设置负数
    (3) 该属性必须加在有定位属性的元素身上

fixed 固定定位

  • 参考物: 浏览器窗口
  • 移动方式和距离:left/right/bottom/top:数值px/数值%
  • 特点
    (1) 脱离文档流
    (2) margin:auto会失效
    (3) 内联元素会变块级元素
    (4) 不会跟随滚动条进行滚动
    sticky 粘性定位
  • 参考物:浏览器窗口
  • 移动方向和距离:top:数值px
  • 特点:
    初始属于正常的元素,不会跟随滚动,
    当达到所设置的top值的时候,类似与固定定位
    不跟随滚动条滚,且脱离文档流

实现元素的水平垂直居中

第一种
1.text-align:center;
2.line-height:元素高度;

第二种
1. 给该元素设置position:absolute;
2. 设置四个方向为0 left: 0;right: 0;top: 0;bottom: 0,该元素设置margin:auto; 水平垂直居中

第三种
1. 该元素设置position:absolute;
2. 该元素设置left:50%; 移动到参考物宽度中心的右侧,margin-left:-该元素宽度的一半;(这里不要使用百分数,因为百分数参考的是父元素)
3. 该元素设置top:50%; 移动到参考物高度中心的下侧,margin-top:-该元素高度的一半;(这里不要使用百分数,因为百分数参考的是父元素

第四种

1.子元素宽高改变可以自适应变化
2.子元素不设置宽高也可以拿到宽高的一半
元素{position:absolute;left:50%;top:50%;translate(-50%,-50%);(向左和向上拉取当前元素宽高的一半)

第五种

1.display:flex;
2、justify-content:center;
3、align-items:center;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSS中的绝对定位相对定位是用于控制元素位置的两常用方法。它们的区别如下: 1. 相对定位 相对定位是指相对于元素原本所在的位置进行定位。它通过使用 `top`, `right`, `bottom` 和 `left` 属性来控制元素的位置。例如,我们可以使用以下代码将一个元素相对于其原本的位置向下移动20个像素: ```css position: relative; top: 20px; ``` 2. 绝对定位 绝对定位是指相对于最近的已定位祖先元素(即指定了 `position` 属性且不为 `static` 的元素)进行定位。如果没有已定位的祖先元素,则相对于文档的 `body` 元素进行定位。和相对定位一样,我们可以使用 `top`, `right`, `bottom` 和 `left` 属性来控制元素的位置。例如,我们可以使用以下代码将一个元素相对于其最近的已定位祖先元素向右移动50个像素: ```css position: absolute; right: 50px; ``` 总的来说,相对定位绝对定位都是用于控制元素位置的方法,但它们的定位方式有所不同。相对定位是相对于元素原本的位置进行定位,而绝对定位是相对于最近的已定位祖先元素进行定位。 ### 回答2: CSS绝对定位相对定位是一CSS布局技术,用于控制元素在网页中的位置。 相对定位是相对于元素原来所在的位置进行定位。通过将元素的position属性设置为relative,元素将会相对于自己原来所在的位置进行移动,移动后的位置由top、right、bottom和left属性来控制。相对定位不会改变文档流中其他元素的位置,所以当一个元素相对定位后,其他元素仍然按照原来的顺序和位置排列。 绝对定位则是相对于最近的非静态定位的祖先元素(如果不存在则相对于文档的body元素)进行定位。通过将元素的position属性设置为absolute,元素将会脱离文档流,不再占据原来的位置。绝对定位的位置也是由top、right、bottom和left属性来控制。绝对定位会改变其他元素的位置,当一个元素绝对定位后,其他元素会填补改元素脱离文档流后的空白区域。 相对定位绝对定位的特点和用途不同。相对定位用于微调元素的位置,通常与其他定位方式(如静态定位或浮动定位)一起使用,达到更灵活的布局效果。绝对定位则更适合创建自定义的布局,可以把元素摆放在页面的任何位置。无论是相对定位还是绝对定位,都可以通过配合使用z-index属性来调整元素的层次顺序,实现不同元素的遮盖效果。 综上所述,CSS绝对定位相对定位都是布局技术,使用不同的定位原点来实现元素定位相对定位相对于元素原来的位置进行定位,而绝对定位则相对于最近的非静态定位的祖先元素进行定位

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值