html – 内联SVG随Flexbox消失

前端之家收集整理的这篇文章主要介绍了html – 内联SVG随Flexbox消失前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图使用FlexBox在垂直和水平方向中心内联SVG元素.出于某种原因,当我在父容器上显示:flex时,内联SVG就会消失.

body {
  background-color: #000;
  margin: 0;
  border: 0;
  outline: 0;
}

.flexBox-container {
  display: flex;
  align-items: center;
  justify-content: center;
}
Box-container"> logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 598.6 323.5">

如果你知道为什么会这样,我会很感激.

最佳答案
您的SVG没有设置内部宽度/高度.

您可以在SVG中执行此操作,< svg width =“200”height =“150”...< / svg>或使用CSS规则

.flexBox-container svg {
  width: 100%;
}

堆栈代码

body {
  background-color: #000;
  margin: 0;
  border: 0;
  outline: 0;
}

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

.flexBox-container svg {
  width: 100%;
}
Box-container"> logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 598.6 323.5">

如果您希望SVG水平和垂直居中,则Flex容器需要一个高度,即全视口,100vh

堆栈代码

body {
  background-color: #000;
  margin: 0;
  border: 0;
  outline: 0;
}

.flexBox-container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.flexBox-container svg {
  width: 100%;
}
Box-container"> logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 598.6 323.5">

看起来使用CSS宽度:100%和百分比在Firefox上的呈现方式与Chrome上的不同,但在SVG中使用内部宽度=“…”.

Src:SVG Spec: missing documentation: the “Viewport” (and )

堆栈代码

body {
  background-color: #000;
  margin: 0;
  border: 0;
  outline: 0;
}

.flexBox-container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
Box-container"> logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 598.6 323.5">

由于SVG的内部宽度是“像素”,您当然可以在CSS中使用px.

堆栈代码

body {
  background-color: #000;
  margin: 0;
  border: 0;
  outline: 0;
}

.flexBox-container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.flexBox-container svg {
  width: 220px;
}
Box-container"> logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 598.6 323.5">

猜你在找的HTML相关文章