如何实现一个盒子水平/垂直居中?

博客介绍了前端布局的三种 CSS 方法。方法 1 是父元素设置后进行主轴和侧轴居中;方法 2 是父元素设相对定位,子元素设绝对定位,同时提醒 margin 用百分比的问题;方法 3 指出在不知盒子宽高时,推荐用 translate 进行位移。

方法 1

父元素设置 display: flex; 然后通过 justify-content: center; 进行主轴居中,align-items: center; 进行侧轴居中。

方法 2

父元素设置相对定位,子元素设置绝对定位

.inner {
  width: 100px;
  height: 100px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -50px;
  margin-left: -50px;
}

注意点:这儿的 margin 往往不要用百分比,因为 margin 使用百分比是相对于其父盒子的宽度的,CSS 百分比都是相对于谁

方法 3

上面的方案,margin 进行位移的缺点是:需要明确知道自身元素的宽高。

有时候在不知道盒子自身宽高的情况下推荐使用 transform: translate(-50%, -50%) 进行位移,因为 translate 的百分比是相对于盒子自身的,这正是我们期望的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值