前端面试常问的水平居中和垂直居中方法(高频面经)

面试和常用的居中方法

水平方向上

针对inline, 内联块inline-block, 内联表inline-table, inline-flex元素及img,span,button等元素.

text_div{
	text-align:center;
}

不定宽块状元素居中

.text_div{
    margin:0 auto;//且需要设置父级宽度
}

通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中。
.

wrap{
    float:left;
    position:relative;
    left:50%;
    clear:both;
}
.wrap-center{
    left:-50%;
}

垂直居中

单行内联(inline-)元素垂直居中

通过设置内联元素的高度(height)和行高(line-height)相等,从而使元素垂直居中。
.

text_div{
    height: 120px;
    line-height: 120px;
}

利用表布局

.father {
    display: table;
}
.children {
    display: table-cell;
    vertical-align: middle;
     text-align: center; 
}

flex布局
.center-flex {
display: flex;
flex-direction: column;//上下排列
justify-content: center;
}
绝对布局方式

已知高度
.

parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  height: 100px;
  margin-top: -50px; 
}

未知高度

.parent {
    position: relative;
}.child {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

垂直水平居中根据上方结合

flex方式

.parent {
    display: flex;
    justify-content: center;
    align-items: center;
}

grid方式

.parent {
  height: 140px;
  display: grid;
}
.child { 
  margin: auto;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值