【问题标题】:Center glyph vertically within its parent在其父级内垂直居中字形
【发布时间】:2019-10-08 03:20:13
【问题描述】:

我有一个图标,我想在其父容器中垂直居中,但看起来,字形位于其容器之外,jsfiddle here,用绝对定位破解它实在是太麻烦了.我也尝试了 flexbox 布局的各种技巧,但无济于事。

<div class="icon-wrap">
    <i class="caret-up icon"></i>
</div>

CSS

.icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid blue;
}

.icon {
  font-style: normal;
  display: inline-block;
  line-height: 60px;
  font-family: Arial;
  font-size: 60px;
  border: 3px solid green;
}

.icon::before {
  content: "\1F891";
  border: 1px solid red;
}

另外,字形顶部的额外“填充”似乎是其中的一部分(不知何故?),我想要的是一个 轻量级 解决方案,它将插入符号定位在中间它的容器。

【问题讨论】:

    标签: css css-position vertical-alignment


    【解决方案1】:

    用 div 或其他元素包裹图标...

    <div class="icon-wrap">
      <i class="caret-up icon"></i>
    </div>
    

    ...然后使用 display: flex 将 flexbox 布局应用于该包装器。现在您可以使用 align-itemsjustify-content 规则将图标完美地居中在包装元素中:

    .icon-wrap {
      display: flex; /* flexbox layout */
      align-items: center; /* horizontal centering */
      justify-content: center; /* vertical centering */
    }
    

    【讨论】:

    • 谢谢,但我已经尝试过了,但它似乎不起作用,我已经更新了 jsfiddle,所以你可以检查一下
    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2016-05-02
    • 2013-07-31
    • 1970-01-01
    • 2017-08-13
    • 2021-12-19
    • 2020-08-13
    相关资源
    最近更新 更多