Right now we fail a few subtests in these WPT tests: https://wpt.fyi/results/css/css-flexbox/position-absolute-001.html https://wpt.fyi/results/css/css-flexbox/position-absolute-002.html? The issues are all for cases where there's a flex container with a reversed main axis or cross axis (from `flex-direction: row-reverse` or `column-reverse`, or `flex-wrap: wrap-reverse`). The test asserts that the static position of an abspos child should be at the "end" side of the flex container (the `flex-start` side, since the relevant flex axis is reversed with a `*-reverse` keyword in these cases). We incorrectly place the abspos child at the `start` side. But we're wrong -- the relevant behavior here is the "normal" behavior (since "normal" is the default `align`/`justify` keyword), and the spec says: > normal Behavior > For replaced absolutely-positioned boxes, > the 'normal' keyword behaves as 'start'. > > For all other absolutely-positioned boxes, 'normal' behaves as 'stretch' https://drafts.csswg.org/css-align/#align-abspos The last line is the relevant one here -- `normal` is supposed to behave as `stretch`, and `stretch` "falls back to flex-start generally", which in this flex-axis-reversed scenario would mean the far/"end" side of the flex container. Testcase attached -- currently we do the right thing for `flex-start` (the lime rect) but not for `stretch` or for the default behavior (the red and orange rects).
Bug 1543267 Comment 0 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Right now we fail a few subtests in these WPT tests: https://wpt.fyi/results/css/css-flexbox/position-absolute-001.html https://wpt.fyi/results/css/css-flexbox/position-absolute-002.html The issues are all for cases where there's a flex container with a reversed main axis or cross axis (from `flex-direction: row-reverse` or `column-reverse`, or `flex-wrap: wrap-reverse`). The test asserts that the static position of an abspos child should be at the "end" side of the flex container (the `flex-start` side, since the relevant flex axis is reversed with a `*-reverse` keyword in these cases). We incorrectly place the abspos child at the `start` side. But we're wrong -- the relevant behavior here is the "normal" behavior (since "normal" is the default `align`/`justify` keyword), and the spec says: > normal Behavior > For replaced absolutely-positioned boxes, > the 'normal' keyword behaves as 'start'. > > For all other absolutely-positioned boxes, 'normal' behaves as 'stretch' https://drafts.csswg.org/css-align/#align-abspos The last line is the relevant one here -- `normal` is supposed to behave as `stretch`, and `stretch` "falls back to flex-start generally", which in this flex-axis-reversed scenario would mean the far/"end" side of the flex container. Testcase attached -- currently we do the right thing for `flex-start` (the lime rect) but not for `stretch` or for the default behavior (the red and orange rects).