html - 最新 Safari 上的 Flexbox 布局 - 压缩内容与拉伸内容
问题描述
在下面的示例代码中,我有一个复杂的嵌套容器结构,它表示 flex 容器中的蓝色框。整个事情都嵌套在一个滚动容器中。
问题是蓝色容器在 Safari 上被压扁:
这里有很多关于这个问题的例子。其中大多数接受的解决方案是添加flex-shrink: 0
;
就我而言,这意味着将 flex-shrink 添加到.stackchild
and #StackChild
。这是一个样式化的反应组件,但为了示例,随机 CSS 类被替换为类和 id 只是为了区分。
当我添加flex-shrink: 0
到stackchild
我在所有浏览器上遇到另一个布局问题时:
Tbh 我不太确定这里发生了什么……知道为什么收缩道具会以这种方式破坏布局吗?以及如何解决这个问题,让所有浏览器都满意?
解决方案
在堆栈子项旁边设置最小高度似乎有效。 https://github.com/philipwalton/flexbugs
.stackchild {
display: inline-flex;
margin-top: calc(16px / 2);
margin-bottom: calc(16px / 2);
min-height: 0;
flex-shrink: 0;
}
推荐阅读
- compilation - qemu 无法引导内核版本 2.6.34.7
- excel - VBA 按钮可深入到数据透视表
- javascript - 反应变量值更改不更新反应组件
- r - 从转移矩阵创建马尔可夫链对象
- javascript - 如何在 Array 对象中重复更改值
- apostrophe-cms - 如何从控制器渲染 nunjucks 模板
- c# - 为什么 IAsyncResult 返回此错误?System.PlatformNotSupportedException:“此平台不支持操作。”
- sql - SQL 返回错误结果
- rxjs - RxJS 为每个订阅者调用带有 shareReplay 的最终操作符
- google-cloud-messaging - 浏览器中的“代码:消息传递/不正确-GCM-sender-id”错误消息