Safari 9 - flexbox align-self:flex-end不起作用

时间:2016-04-21 13:07:55

标签: html css safari flexbox

我无法将子元素与其父元素的末尾对齐。两者都是flex元素。父元素的高度为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中具有更高的优先级,因此它将子元素对齐在中心。

1 个答案:

答案 0 :(得分:0)

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

但是,它似乎确实是一个浏览器怪癖。根据可信赖的flexbox spec(和my favorite flex guidealign-content不应对单行灵活容器产生任何影响。但是出于某些原因,在Safari中它是。

鉴于此示例,我建议您完全删除<?php $cid = 150; if ($cid=100) { echo $cid; echo "<BR>"; } if ($cid==100) { echo "NEW"; echo "<BR>"; echo $cid; echo "<BR>"; } ?> 。看起来你似乎并没有在横轴上实际居中任何东西。示例中使用的内容也支持该理论。如果这不正确并且应该有其他内容可以参与其中,请更新代码示例。