css 在div中 Package 时,flex中的SVG未对齐

lqfhib0f  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(73)

我想要一个未知大小的SVG图标,居中对齐到一些文本的左侧。我最好使用Flex。
这是SVG和文本容器的CSS:

.container {
    background-color: pink;
    display: flex;
    align-items: center;
    margin: 10px;
    width: 200px;
}

字符集
这很好用:

<div class="container">
  <svg style="width:24px;height:24px" viewBox="0 0 24 24">
    <rect width="24" height="24"/>
  </svg>
  <div>ALIGNED ICON</div>
</div>


然而,当我将SVG Package 在另一个div中时,div的高度变得不必要地大,导致SVG和文本不对齐:

<div class="container">
    <div>
        <svg style="width:24px;height:24px" viewBox="0 0 24 24">
            <rect width="24" height="24"/>
        </svg>
    </div>
    <div>MISALIGNED ICON</div>
</div>


这里是CodePen的链接
实际上,这是一个React项目,我使用外部SVG组件,我无法控制或知道其大小。因此,我无法直接将任何样式应用于SVG元素,也无法设置 Package 器div的高度以匹配SVG的高度。

在另一个div中 Package SVG时,如何对齐SVG和文本?

acruukt9

acruukt91#

内部div也必须显示为flex
看看这个demo

.container {
  background-color: pink;
  display: flex;
  align-items: center;
  margin: 10px;
  width: 200px; 
}

个字符

oxiaedzo

oxiaedzo2#

只需将flex和align添加到div类中即可。
https://codepen.io/anon/pen/zeeegz
联系我们

<div class="container">
  <svg style="width:24px;height:24px" viewBox="0 0 24 24">
    <rect width="24" height="24"/>
  </svg>
  <div>ALIGNED SVG</div>
</div>
<div class="container">
  <div class="item">
    <svg style="width:24px;height:24px" viewBox="0 0 24 24">
      <rect width="24" height="24"/>
    </svg>
  </div>
  <div>MISALIGNED SVG</div>
</div>

字符集
中文(简体)

.container {
      background-color: pink;
      display: flex;
      align-items: center;
      margin: 10px;
      width: 200px;
    }
    .item{
      display: flex;

    }

相关问题