【发布时间】:2017-02-08 01:58:06
【问题描述】:
我有一个带有display: flex 的容器。在两个角落,一个 svg 元素应该伸展到容器的整个高度。容器的高度取决于元素中有多少文本。
在 FF 和 Chrome 中它运行完美,但 IE 使 svg 始终为 150px 高度。我不能给 svg 一个固定的大小,因为如果文本变成多行并且元素增长,它应该与元素一起拉伸。
我已经做了一个codepen here
.flag-header {
display: flex;
max-width: 80%;
position: relative;
}
.flag-header__headline {
background-color: #bf0b1c;
padding: 10px 0;
color: white;
font: 900 24px/120% Verdana;
text-transform: uppercase;
}
.flag-header__corner {
width: 30px;
}
.flag-header__corner-shape {
height: 100%;
width: 30px;
fill: #bf0b1c;
}
<div class="flag-header">
<div class="flag-header__corner">
<svg class="flag-header__corner-shape" id="Layer_1" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 22.11 30" preserveAspectRatio="none">
<polygon class="cls-1" points="22.11 30 0 30 10 15 0 0 22.11 0 22.11 30"/>
</svg>
</div>
<p class="flag-header__headline">sdfgsdgfsdgf sfasd fasdf asdfasdf</p>
<div class="flag-header__corner">
<svg class="flag-header__corner-shape" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22.11 30" preserveAspectRatio="none">
<polygon class="cls-1" points="0 30 22.11 30 12.11 15 22.11 0 0 0 0 30"/>
</svg>
</div>
</div>
【问题讨论】:
-
从 Chrome v88.0.4324.182 开始,这似乎已被破坏。
svg元素的高度不是可变文本高度的 100%。