css - Firefox 不遵守 Flex 收缩

标签 css firefox flexbox

目标:nav,使用 flexbox,左侧有 Logo ,右侧有可变数量的 nav 元素。当 nav 元素变得足够宽而没有足够的空间容纳 nav 和 Logo 时, Logo 会缩小。

.logo{
    display: flex; flex-shrink:1;flex-grow:0;
}
.nav-container{
    display: flex; flex-shrink:0;flex-grow:2;
}

问题:它在 Chrome 中运行良好,但在 Firefox 中运行不佳。

尝试使用 flex-basis 但它创建了一个特定的比率并破坏了 Chrome 中的工作示例。

演示: http://codepen.io/leggomuhgreggo/pen/BobwYz

谢谢!

最佳答案

您需要将 min-width:0 添加到您的 .logo{} 规则中。这允许它缩小到低于其最小固有尺寸(Firefox 将其计算为 img 的固有宽度)。

Here's your demo with that change .

(旁注:Chrome 和 Firefox 在这里表现不同的事实是 this bug 的一个实例。Chrome 在计算 flex 元素的最小固有尺寸时尊重 img 的百分比最大宽度; Firefox 不是。如果您在 img 样式规则中删除 max-width:100%,那么您会看到 Chrome 更改其呈现以匹配 Firefox 并拒绝让 Logo 缩小,除非您添加 min-width:0。)

关于css - Firefox 不遵守 Flex 收缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790219/

相关文章:

javascript - Bootstrap 下拉右对齐失败

jquery - 过滤器 :blur for mozilla firefox <svg> not working

css - Flexbox 不会在 IE 10 和 11 的表格中换行

html - 在 FlexBox 中使用 vh 和 vw 的 CSS 问题

javascript - 如何在移动网站中实现底部标签栏

html - 使用图案制作响应式 Angular svg 形状

javascript - Firefox 插件 console.log() 不工作

jquery - 为什么这个 jQuery AJAX PUT 在 Chrome 中有效,但在 FF 中无效

html - 连续流动 3 个元素,包装时,最后一行元素左对齐

css - 定位父选择器 css3