css设置按钮竖直方向居中_CSS实现水平垂直居中的1010种方式(史上最全)

划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了

要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居中的方式大概有下面这些,本文将逐一介绍一下,我将本文整理成了一个github仓库,欢迎大家star

仅居中元素定宽高适用

absolute + 负margin

absolute + margin auto

absolute + calc

居中元素不定宽高

absolute + transform

lineheight

writing-mode

table

css-table

flex

grid

absolute + 负margin

为了实现上面的效果先来做些准备工作,假设HTML代码如下,总共两个元素,父元素和子元素

123123

wp是父元素的类名,box是子元素的类名,因为有定宽和不定宽的区别,size用来表示指定宽度,下面是所有效果都要用到的公共代码,主要是设置颜色和宽高

注意:后面不在重复这段公共代码,只会给出相应提示

/* 公共代码 */

.wp {

border: 1px solid red;

width: 300px;

height: 300px;

}

.box {

background: green;

}

.box.size{

width: 100px;

height: 100px;

}

/* 公共代码 */

绝对定位的百分比是相对于父元素的宽高,通过这个特性可以让子元素的居中显示,但绝对定位是基于子元素的左上角,期望的效果是子元素的中心居中显示

为了修正这个问题,可以借助外边距的负值,负的外边距可以让元素向相反方向定位,通过指定子元素的外边距为子元素宽度一半的负值,就可以让子元素居中了,css代码如下

/* 此处引用上面的公共代码 */

/* 此处引用上面的公共代码 */

/* 定位代码 */

.wp {

position: relative;

}

.box {

position: absolute;;

top: 50%;

left: 50%;

margin-left: -50px;

margin-top: -50px;

}

这是我比较常用的方式,这种方式比较好理解,兼容性也很好,缺点是需要知道子元素的宽高

absolute + margin auto<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值