【发布时间】:2019-06-10 02:36:26
【问题描述】:
我有这个在我的笔记本电脑上运行良好,但在移动 iOS 上却不行。
* {
/* normalize */
padding: 0;
margin: 0;
border: 0;
color: inherit;
font-size: inherit;
font-weight: inherit;
text-transform: inherit;
font-family: inherit;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
background: 0 0;
min-height: 0;
user-select: none;
box-sizing: border-box;
position: relative;
}
#a {
display: flex;
max-width: 100vw;
min-height: 100vh;
min-height: calc(var(--vh, 1vh)*100);
}
#b {
display: flex;
height: 100%;
flex: 1;
flex-direction: column;
padding: 50px;
}
#c {
flex-wrap: wrap;
flex-direction: row;
max-width: 100%;
display: flex;
list-style: none;
}
li {
flex: 1;
width: 100%;
display: flex;
padding: 10px;
border: 3px solid red;
flex-direction: column;
}
<div id="a">
<div id="b">
<ul id="c">
<li>foo</li>
<li>hello</li>
<li>world</li>
<li>bar</li>
<li>food</li>
<li>hi</li>
<li>morning</li>
<li>something</li>
<li>beverage</li>
<li>snack</li>
<li>drink</li>
<li>other</li>
<li>world</li>
<li>bar</li>
<li>food</li>
<li>hi</li>
<li>morning</li>
<li>something</li>
<li>beverage</li>
<li>snack</li>
<li>drink</li>
<li>other</li>
</ul>
</div>
</div>
但是,在移动设备上它是 几行 行,但大多数情况下它会向右溢出。就像它将有 2 或 3 行但然后每行 15 或 20 个项目(当只有 2 或 3 个适合屏幕时)。因为我没有一个好的系统可以在移动设备上调试,所以我无法让它工作。
【问题讨论】:
-
你的 iOS 版本是多少?根据compatibility sheet 的说法,iOS 3.2-6.1 Safari 仅支持完全缺乏包装支持的旧 flexbox 规范。
-
尝试使用
max-width或flex-basis而不是width。我注意到 Safari 在 flexbox + width 方面存在问题。 -
我至少有 iOS 10
-
它正在包裹,但在包裹之前它仍然会越过边缘。
-
@LancePollard 请检查我的回答,如果有帮助请告诉我
标签: javascript html css mobile safari