css - 带有滚动内容的嵌套 flexbox UI 在 Safari 和 MS Edge 中呈现不同

标签 css flexbox

在此 Plunker 中查看页面的卡住 DOM 状态.

代码应该代表一个有四个选项卡的模式,其中第三个选项卡内容是打开的。看起来应该类似于下图(在最新的 Chrome 中呈现):三个并排的 div,其中包含溢出的内容,并且 div 是可滚动的。在底部有一个包含绘图方法 文本和一个按钮的 div。在 Firefox 中也可以看到相同的 View 。 chrome rendered

我在最新的 Safari 中看到的:

safari rendered

禁用样式后 高度:10px; 来自 .heatmap-multiple-variable-container

呈现的 Safari 内容是:

enter image description here

请注意向下滚动的第三个内容 div 如何不显示其所有内容(全选 行),就像在 Chrome 中一样。包含 绘图方法 的 div 也不可见。

在 Microsoft Edge 中,包含 Plotting 方法 的 div 是可见的,但存在与 Safari 中相同的滚动问题。

关于如何修改 Flexbox 布局以在所有三种浏览器中以相同方式显示菜单的任何想法?我真的被卡住了,所以您能给我的任何指示都将不胜感激。

最佳答案

好吧,这是一个艰难的过程!将它添加到您的 CSS 中,它应该可以工作。 (在 Safari 中测试)

body .multiple-variable-selection-columns-container {
    height: calc(100% - 66px);
}

body .modal-menu .tab-content {
    height: calc(100% - 57px);
}

body .modal-wide .modal-dialog .modal-content .modal-body {
    height: calc(100% - 110px);
}

ng-include {
    display: block;
}

您已将 height: 100%; 添加到具有自高度度的相邻元素的元素。您一定要清理您的标记,但上面的 CSS 目前应该可以工作。

我添加了 body 以获得更强大的选择器来覆盖您的代码。我还为ng-include标签添加了默认显示样式,浏览器不知道使用什么样的样式,所以标签没有高度,很难调试。

希望能帮到你。

关于css - 带有滚动内容的嵌套 flexbox UI 在 Safari 和 MS Edge 中呈现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43502451/

相关文章:

html - flex 元素应该获得所有剩余的宽度

html - flex-items 空间没有在小屏幕上分配

bootstrap-4 - Bootstrap 4 中类 row 和 form-row 的区别

html - Display Flex 将文本垂直顶部和图像居中对齐

css - 将 SVG SMIL 动画转换为 CSS3 动画

css - JavaFx CSS - slider 轨道

css - 如何删除 ionic 工具栏的高度?

html - IE7 无法正确扩展 div

javascript - CSS float 菜单

html - 使用 CSS Flexbox 旋转 HTML 文本输入