【发布时间】:2018-02-28 14:22:27
【问题描述】:
Chrome 包含 SVG,而 Safari 则可以将其扩展到更大的尺寸。不知道我能做些什么来摆脱这种行为。
这是一支笔:https://codepen.io/sashakevich/pen/boEPdb 在 Chrome 中完美,在 Safari 中图像太大。
这是代码:
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 30px 10px;
}
.text-item {
-ms-flex-preferred-size: 200px;
flex-basis: 200px;
margin: 0 1.5%;
}
.img-item {
-ms-flex-preferred-size: 33%;
flex-basis: 33%;
margin: 0 1.5%;
-webkit-box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);
background: #fff;
border-radius: 3px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding: 25px 35px;
min-height: 200px;
}
.img-item img {
width: 100%;
height: auto;
}
<div class="row" style="background:#f1f1f1;">
<div class="text-item">
<p>A remake of their old logo of a kid holding a toothbrush.</p>
</div>
<div class="img-item">
<img src="https://www.simplylogos.net/wp-content/uploads/svg_port/sl-franklin-1.svg">
</div>
<div class="img-item">
<img src="https://www.simplylogos.net/wp-content/uploads/svg_port/sl-franklin-2.svg">
</div>
<div class="img-item">
<img src="https://www.simplylogos.net/wp-content/uploads/svg_port/sl-franklin-3.svg">
</div>
</div>
<div class="row" style="background:#e1e1e1;">
<div class="text-item">
<p>A remake of their old logo of a kid holding a toothbrush.</p>
</div>
<div class="img-item">
<img src="https://www.simplylogos.net/wp-content/uploads/svg_port/sl-mogtel-3.svg">
</div>
<div class="img-item">
<img src="https://www.simplylogos.net/wp-content/uploads/svg_port/sl-mogtel-1.svg">
</div>
<div class="img-item">
<img src="https://www.simplylogos.net/wp-content/uploads/svg_port/sl-mogtel-2.svg">
</div>
</div>
@Steve-Schrab 的弹性收缩解决方案没有帮助 - SVG in flexbox messes up height of other elements) (也许我遇到了@michael_b 在此处建议的 Flex 项目的隐含最小尺寸:Why doesn't flex item shrink past content size? 但如果我遇到了,我不知道该怎么做才能使其正常运行。
【问题讨论】:
-
从
img-item中删除display: flex -
@LGSon 这并没有真正的帮助。我在父级上有 flex,因为它使子级在垂直和水平方向上居中,而我不必弄乱变换。我并不完全反对走这条路,但想看看是否有更优雅的解决方案可用。此外,当我摆脱两者时,它只保留大小: display: -ms-flexbox;显示:弯曲;我必须保留: display: -webkit-box; ...但不一致:developer.mozilla.org/en-US/docs/Web/CSS/box-flex。如果我也摆脱它,那么图像就会完全符合我的要求。
标签: css google-chrome svg safari flexbox