【问题标题】:Safari 9 - flexbox align-self: flex-end doesnt workSafari 9 - flexbox align-self:flex-end 不起作用
【发布时间】:2016-08-14 17:07:58
【问题描述】:

我无法将子元素与其父元素的末尾对齐。两者都是弹性元素。父元素的高度为:100%,子元素的高度为:align-self:flex-end。 此设置适用于所有主要浏览器(Firefox、Chrome、IE/Edge),但不适用于 Safari 9(以及一些支持 flexbox 的旧版本)。

它的外观如下: screenshot of the problem

这是复制粘贴的例子,你可以看到它在 Chrome 中有效,但在 Safari 中它在中间:

http://cdpn.io/usrbowe/pen/JXBjvv

问题是 .Row 上是 align-items: center,在 Safari 中优先级较高,所以子元素居中对齐。

【问题讨论】:

  • 如果你能粘贴一个工作示例来证明它会更好。
  • 好的,我在 codepen 中添加了工作示例
  • 寻求代码帮助的问题必须在问题本身中包含重现它所需的最短代码。虽然您提供了link to an example or site,但如果该链接失效,您的问题对于未来遇到相同问题的其他 SO 用户将毫无价值。
  • 我清除了大部分不必要的代码来调查这个问题。朋友,请在提交问题时这样做。 codepen.io/alexbea/pen/KzBXQJ。在 CodePen 中,您可以让它使用 Autoprefixer,仅此一项就可以使 Sass 更易于阅读。

标签: html css safari flexbox


【解决方案1】:

在删除了大部分与问题无关的代码后,我意识到不是align-items 给你带来了麻烦。它是align-contentalign-self 不会覆盖它。您提到align-items: center; 具有优先权,但在示例中您已经有align-items: flex-start; 覆盖center。无论如何,这不是问题。

不过,这似乎是浏览器的怪癖。根据值得信赖的flexbox spec(和my favorite flex guidealign-content 不应该对单行弹性容器产生任何影响。然而,出于某种原因,它在 Safari 中是这样的。

鉴于示例,我建议您完全删除 align-content。看起来您并没有在寻找它实际上使任何东西沿横轴居中。示例中使用的内容也支持该理论。如果这不正确并且应该涉及其他内容会起作用,请更新代码示例。

【讨论】:

猜你喜欢
  • 2018-09-14
  • 2022-01-17
  • 2017-10-13
  • 2018-03-12
  • 2019-03-19
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 2020-11-06
相关资源
最近更新 更多