【问题标题】:CSS display:flex align-items:baseline not working in FirefoxCSS display:flex align-items:baseline 在 Firefox 中不起作用
【发布时间】:2014-12-10 16:40:11
【问题描述】:

我无法在 Chrome、Safari 和 Firefox 之间创建一致的弹性框。我的 css 在 Chrome/Safari 中运行良好,但在 Firefox 中失败。问题是当我尝试将容器元素定义为:

.container {
    display: flex;
    align-items: baseline;
}

我的子元素在 Chrome 和 Safari 中正确对齐,但在 Firefox 中它们在底部对齐,并且似乎对文本的位置没有太大影响。

更新

好的,经过进一步调查,我认为问题在于 firefox 与 chrome 和 safari 计算基线的方式不同。我基本上放弃了 firefox 并创建了条件 css,当使用 firefox 时将 align-items:flex-start 使用基线。

【问题讨论】:

  • 我看不出有什么不同:jsfiddle.net/b8qr2uub
  • 我试图在 jsfiddle 上重现,但没有运气。我之前有一个指向我的网站的链接,但是如果您使用 firefox 结帐 [link]nomadto.com 然后将 css 更改为 align-items: baseline;在 .searchEntryArea 上,您会看到工具栏被弄乱了。

标签: css firefox flexbox


【解决方案1】:

Here is my article 关于将块与其基线对齐。 example for align-items 在 Fx 中工作正常,除了溢出块和填充的错误,可以用稍后修复的相同方式修复。

但是,对于您在 http://www.nomadto.com/ 的示例,情况有所不同:问题在于,当您执行 align-items: baseline 时,Fx 预计只会看到内部的内联内容,因此如果您要替换大多数嵌套的 display: flex有了display: inline-flex,情况会好很多。然而,由于有很多额外的包装器和样式,现在很难为你编写一个完整的补丁来修复东西,但如果你想在 codepen 的某个地方创建一个更简单的示例或jsbin,我可以尝试修复它以使其在正确的基线对齐下正常工作。

【讨论】:

  • 感谢很好的回答和好文章,我想我现在对基线有了更好的理解。
  • 非常有帮助。由于Chrome和FF对此的处理方式不同,您知道哪个符合规范吗? (也就是说,如果规范甚至规定了当块元素位于具有 align-items: 基线的 flex 父级内时发生的行为。)
猜你喜欢
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 2014-05-19
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多