button内flex垂直居中竟然不居中的解决

(编辑:jimmy 日期: 2024/11/13 浏览:2)

问题描述

按钮样式为图标+文字,在使用flex布局写垂直居中时,iphone7手机上文字和图标却没有居中,居左显示。代码如下(已精简):

<button>
  <img src="./refresh.png" alt />
  {{ confirmButtonText }}
</button>

...
button {
  display: flex;
  align-items: center;
  justify-content: center;
  img {
      width: 36px;
      height: 36px;
      display: inline-block;
  }
}

预期样式:

button内flex垂直居中竟然不居中的解决

实际样式:

button内flex垂直居中竟然不居中的解决

解决方式

给icon和文字外再包一层标签,给外层标签设置flex垂直居中样式,代码如下:

<button>
  <span class="wrap">
     <img src="./refresh.png" alt />
      {{ confirmButtonText }}
  </span>
</button>

...
button {
   display: flex;
   align-items: center;
   justify-content: center;
  .wrap {
      img {
          width: 36px;
          height: 36px;
          display: inline-block;
      }
  }
}