Chromium partially supports {align,justify,place}-self with absolute positioning - #29342
Chromium partially supports {align,justify,place}-self with absolute positioning#29342captainbrosset wants to merge 7 commits into
{align,justify,place}-self with absolute positioning#29342Conversation
…ace-self properties
|
Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs). |
ddbeck
left a comment
There was a problem hiding this comment.
This is a weird case when it comes to partial_implementation. Our guidelines don't require us to set it. But there are multiple vendor bugs, so maybe it's still partial anyway.
I'm left wondering: if everyone agrees this is buggy behavior, why did everyone implement it the same way? 🤔
|
@fantasai is this something you can help us on? |
This comment was marked as outdated.
This comment was marked as outdated.
Co-authored-by: Daniel D. Beck <daniel@ddbeck.com>
|
I have applied Daniel's suggestion now, which makes sense to me. @captainbrosset Should we go ahead and merge, even if we haven't heard back from @fantasai? Edit: I realize I had a typo in my previous message. |
{align,justify,place}-self with absolute positioning
Co-authored-by: Patrick Brosset <patrickbrosset@gmail.com>
| "version_added": "122" | ||
| "version_added": "122", | ||
| "partial_implementation": true, | ||
| "notes": "`align-self` only applies to absolutely positioned boxes when both insets on the appropriate axis are 0, for example `top` and `bottom`. See [bug 376097648](https://crbug.com/376097648)" |
There was a problem hiding this comment.
I believe it’s important to clarify that this bug only occurs when the parent element is a block; there are no issues with flex or grid.
| "version_added": "122" | ||
| "version_added": "122", | ||
| "partial_implementation": true, | ||
| "notes": "`justify-self` only applies to absolutely positioned boxes when both insets on the appropriate axis are 0, for example `left` and `right`. See [bug 376097648](https://crbug.com/376097648)" |
There was a problem hiding this comment.
This appears to have been fixed in this CL (Chrome 137); please verify it again.
https://chromiumdash.appspot.com/commit/a82a54d387f4bc1c3c1c08eeda15e86a7ef4f792
|
@captainbrosset Do you plan to come back to this PR? How can we unblock it? |
My head is not in this space anymore. I'd need to page a bunch of stuff back into memory to get back to this. So, unblocking it is really just about me finding the time to do so. Unless someone else wants to take over. |
Summary
This PR adds partial implementation flags and notes for
align-self,justify-self, andplace-selffor all browsers, when they apply to absolutely positioned elements.I tested this in Safari, Firefox, and Chrome, and discussed with Mozilla engineers @dshin-moz and @emilio.
My understanding is that there's a missing piece in all browsers where you can't just apply the above properties and expect them to work on their own. They also require a non-auto
insetvalue.Test results and supporting details
Test case: https://bug2026174.bmoattachments.org/attachment.cgi?id=9557965
The red box should be centered in the gray box.
Code:
Adding
inset:0;on the child element makes it work.I'm not entirely sure I'm reading the spec correctly though, and the placement of auto-inset abspos elements may actually be correct. But, WPT seems to show browser differences in this area at least: https://wpt.fyi/results/css/css-align/abspos/align-self-static-position-001.html?label=experimental&label=master&aligned
Related issues