将父容器设置为特定高度时,iOS 9上的Flexbox项目会缩小

Spincel

当与最新的Boostrap 4 Beta一起使用时,我在iOS版本9上遇到此错误。基本上,我有一个父div和一个包含多个列表项的ul元素。父div是一个flexbox,其尺寸设置为一些数字,并为children元素打开溢出。该列表项应该占据父项高度的100%。这是演示代码的链接:https : //codepen.io/nguyenthai/pen/jawzRo

大多数浏览器都可以正常显示。但是,仅在任何版本的iOS 9上,该列表都会缩小,因为Safari无法计算容器的正确高度。我相信此错误存在多种变体,并且大多数已从iOS 10及更高版本中修复。但是我确实需要对iOS 9的支持,到目前为止,我发现的任何解决方法都无法正常工作。设置flex-shrink: 0;或使用flex: 1 0 auto;均未产生成功结果。唯一可以缓解这种情况的方法是将列表切换为使用列表,display: block而不是使用flex。但是,这也可能会影响其他浏览器,我只希望该修复程序专门适用于任何iOS版本9。

那么,关于如何在不从根本上改变语法和影响其他浏览器的情况下解决此问题的任何想法?

一个儿子

默认情况下,弹性项目允许收缩,flex-shrink: 1这似乎也是iOS9允许的。

通过给予li flex-shrink: 0应避免。

更新的代码笔

堆栈片段

.test {
  width: 400px;
  height: 500px;
  overflow: auto;
}
.list-group-item {
  flex-shrink: 0;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" rel="stylesheet"/>

<div class="test d-flex flex-column">
  <ul class="list-group h-100">
    <li class="list-group-item">Cras justo odio</li>
    <li class="list-group-item">Dapibus ac facilisis in</li>
    <li class="list-group-item">Morbi leo risus</li>
    <li class="list-group-item">Porta ac consectetur ac</li>
    <li class="list-group-item">Vestibulum at eros</li>
    <li class="list-group-item">Cras justo odio</li>
    <li class="list-group-item">Dapibus ac facilisis in</li>
    <li class="list-group-item">Morbi leo risus</li>
    <li class="list-group-item">Porta ac consectetur ac</li>
    <li class="list-group-item">Vestibulum at eros</li>
    <li class="list-group-item">Cras justo odio</li>
    <li class="list-group-item">Dapibus ac facilisis in</li>
    <li class="list-group-item">Morbi leo risus</li>
    <li class="list-group-item">Porta ac consectetur ac</li>
    <li class="list-group-item">Vestibulum at eros</li>
    <li class="list-group-item">Cras justo odio</li>
    <li class="list-group-item">Dapibus ac facilisis in</li>
    <li class="list-group-item">Morbi leo risus</li>
    <li class="list-group-item">Porta ac consectetur ac</li>
    <li class="list-group-item">Vestibulum at eros</li>
  </ul>
<div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

图像伸缩项目不会缩小Flexbox的高度

Swift - 以编程方式将项目的高度设置为与嵌套 UIStackView 中的父项相同

将父容器设置为悬停的子容器的高度

当flex项目大于flex容器时,我可以将flexbox项目缩小到相同大小吗?

当我将高度设置为环绕或匹配或 0dp 时,列表视图项目不显示,它们仅在我使用特定数字时显示

在React JS中将Flexbox容器高度设置为100%

高度:当父项的高度为100vh时,自动在flex项目上

将弹性项目设置为100%高度

iOS Autolayout将高度限制设置为零会导致无效布局

将高度设置为Swich上的滑块

将alignparentbottom设置为true时,android中的按钮会增加高度

父项是flex项目时,高度为100%:Chrome bug?

将容器调整为最小项目高度 + 最大宽度

Android:将渐变可绘制设置为背景时,按钮上缺少高度

Facebook App邀请iOS 9上的FB iOS SDK缩小

在父 flex-box 容器中垂直填充 3 个项目,每个项目高度为 33%

将flexbox行设置为最短子元素的高度?

Flexbox将内部元素的高度设置为0

将span元素高度设置为100%时,未将其设置为父Div高度

我们如何将父容器的高度设置为子容器

将flexbox文本级别设置为其他容器?

将body和html标签的高度设置为100%时,浏览器滚动条会显示

Flexbox:将子级宽度设置为80%,而flex-direction设置为父级上的列

将位置设置为固定时,导航栏会缩小

Flexbox 设置高度为 0

iOS:如何在隐藏内容标签时让容器视图自动缩小其高度?

如何将边距或填充设置为父容器的高度百分比?

除非容器上声明了明确的高度,否则Firefox会忽略flex项目(flexbox的子项)的垂直边距

尽管孩子的溢出设置为“自动”,但容器内的项目不会留在父项内