CSS 笔记(九):布局 —— 定位

本文深入探讨了CSS布局中的定位技术,包括相对定位、绝对定位和固定定位。相对定位保持元素在标准流中的位置并可调整;绝对定位脱离标准流,参考点可为祖先元素或body;固定定位则使元素始终保持在屏幕某一位置。在实际布局中,通过'子绝父相'策略可以实现稳定布局。此外,还讲解了z-index属性在层叠上下文中的作用,以及如何通过它来控制元素的前后层次。
摘要由CSDN通过智能技术生成

CSS 笔记(九):布局 —— 定位

相对定位

标签始终相对于自己之前在标准流中的位置移动

position: relative;

属性

top

right

bottom

left

  • (…)px

相对定位不脱离标准流(区分块级/行内/行内块级元素),在同一个方向上的定位属性只能使用一个,由于相对定位的元素任然占用标准流中的位置,为相对定位的元素设置 margin / padding 属性时,相当于为相对定位的元素之前在标准流中的位置设置相应属性,从而影响标准流中的布局

绝对定位

标签始终相对于参考点移动

position: absolute;

属性

top

right

bottom

left

  • (…)px

绝对定位脱离标准流(不区分块级/行内/行内块级元素),默认情况下,不论是否存在祖先元素,参考点均为 body,如果一个绝对定位的元素存在祖先元素,且祖先元素为定位流(相对定位、绝对定位、固定定位),那么此元素的参考点为此祖先元素,如果具有此属性的祖先元素存在多个,那么以最近的祖先元素为参考点,如果一个绝对定位的元素以 body 为参考点,那么以此标签仅在网页首屏内移动,绝对定位的元素会忽略祖先元素的 padding 属性

子绝父相

在布局过程中,如果仅仅使用相对定位,由于相对定位不会脱离标准流,所以在标准流中占用空间,不利于布局界面,如果仅仅使用绝对定位,默认情况下,绝对定位的元素以 body 为参考点,那么元素位置会随着浏览器的大小改变而改变

子元素使用绝对定位,父元素使用相对定位

父元素使用相对定位,不会脱离标准流,所以不会改变页面的基本布局,子元素使用绝对定位,由于父元素为定位流,因此子元素以父元素为参考点,如果父元素的位置和大小不发生改变,那么子元素的位置也不会发生改变

水平居中

div {
    width: 300px
    position: absolute;
    left: %50;
    margin-left: -150px;    /* transform: translate(-50%); */
}

固定定位

使某个标签不会随着滚动条的滑动而移出界面

position: fixed;

固定定位脱离标准流(不区分块级/行内/行内块级元素)

静态定位

默认情况下,标签本身即为静态定位

z-index

默认情况下,所有元素均有一个默认的 z-index 属性(用于控制定位流元素之间的层叠关系),取值为 0

  • 默认情况下,定位流元素会层叠标准流元素,之后的定位流元素会层叠之前的定位流元素
  • 如果定位流元素设置了 z-index 属性,那么值最大的元素位于最上层

从父现象

若两个元素的祖先元素均没有设置 z-index 属性,那么此属性值最大的定位流元素位于最上层,如果两个元素的祖先元素均设置了 z-index 属性,那么子元素的 z-index 属性失效,即层叠顺序以祖先元素的 z-index 属性为准

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值