sass mixin 结合伪元素 + vertical-align: middle 实现垂直居中的优雅写法

实现关键:
外面一层标签,附上伪元素。里面放入想垂直居中的元素。

基础布局:

<div class="box">
  <div class="box__item"></div>
</div>	
.box {
  width: 500px;
  height:500px;
  background: red;
}

.box__item {
  width: 300px;
  height:300px;
  background: blue;
}

效果图:
在这里插入图片描述

关键代码:

.box__item {
  display: inline-block;
  vertical-align: middle;
}

.box::after {
   content: "";
   display: inline-block;
   height: 100%;
   vertical-align: middle
}

效果图:
在这里插入图片描述
sass 代码优化
封装为 mixin 在全局需要的地方直接引入(借鉴来自 ElementUI 源码)

@mixin utils-vertical-center {
  // 父元素
  $selector: &;
  
  // 放到第一层
  @at-root { 
    #{$selector}::after {
      content: "";
      display: inline-block;
      height: 100%;
      vertical-align: middle
    }
  }
}

// 引入
.box {
  @include utils-vertical-center;
  .box__item {
    display: inline-block;
    vertical-align: middle;
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值