提问人:Madara's Ghost 提问时间:5/8/2017 最后编辑:BoltClockMadara's Ghost 更新时间:5/8/2017 访问量:603
iPad Safari 在 flex 项目过大时忽略边距
iPad Safari ignores margins when flex item gets too large
问:
我有几个 flex 容器,每个容器有 3 个 flex 项目。前两个 flex-item 有一个 ,它们彼此之间以及与第三个 item 隔开。前两项总是很短(在本例中是恒定宽度),第三项具有可变宽度(可以长到足以换行)。margin-right
下面是一个示例(在 Chrome 中看起来不错,在 iPad 上就不那么好了)
li {
display: flex;
display: -webkit-flex;
}
.one, .two {
margin-right: 10px;
}
<ul>
<li>
<span class="one">hey</span>
<span class="two">ho</span>
<span class="three">Lorem ipsum dolor sit amet.</span>
</li>
<li>
<span class="one">hey</span>
<span class="two">ho</span>
<span class="three">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate molestias dolore in, nam neque facilis nulla eum beatae, excepturi fugiat.</span>
</li>
<li>
<span class="one">hey</span>
<span class="two">ho</span>
<span class="three">Lorem ipsum dolor.</span>
</li>
</ul>
这在几乎所有浏览器中都很好用(我省略了 -ms- 前缀,因为它们与此问题无关),但在 iPad 的 Safari 中(特别是运行 Safari 8 的 iPad Air 2,也许是其他浏览器),当第三项试图变大时,边距被完全忽略,前两项被混在一起。
预期
实际
这闻起来很像 Safari 中的错误,但我在网上找不到任何错误报告或讨论。它在几乎所有其他浏览器中的行为都符合预期。我试过摆弄几乎所有的属性,但无济于事。flex-
我首先在寻找解决方法,然后也在寻找为什么会发生这种情况的解释。
答:
4赞
CoenFuze
5/8/2017
#1
添加到类中。这会告知父容器此元素是灵活的。;-)-webkit-flex: 1;
.three
评论
0赞
Madara's Ghost
5/11/2017
供将来参考。IE11 显然不喜欢 ,所以作为替代品效果很好。flex: 1
flex: 1 0 auto
下一个:截断元素与非截断元素并排
评论