You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #4448 (comment) we resolved that ::marker should have white-space: pre in UA origin. That is needed for outside markers, and we decided to keep it simple and also apply it to inside markers.
But consider this case:
<olstyle="list-style-position: inside"><li>Text</li><li>
Text
</li></ol>
For block container elements like <li>, leading and trailing space doesn't matter. So just looking at the HTML, some authors may think that both Text will be aligned equally.
However, the ::marker is inserted at the very beginning of the <li>, and since it's inside, it behaves as a normal inline. So the leading space is no longer at the beginning of the line, and is not trimmed in §4.1.2.1.
Since the ::marker has a trailing space, both list items could still look the same via §4.1.1:
Any collapsible space immediately following another collapsible space [...] is collapsed
But that doesn't apply if the ::marker has white-space: pre. So the 1st list item ends up with 1 space and the 2nd list item with 2 spaces.
What behavior do we want here? We don't have interoperability:
In Chromium (both legacy and LayoutNG), WebKit and old Edge, the texts are aligned:
In Firefox, they aren't:
So I guess we can choose among:
Keep white-space: pre. Firefox is correct, changing Chromium will be trivial.
Keep white-space: pre but add some magic that if a text ::marker has a trailing space and is followed by collapsible spaces, then these collapsible spaces are removed, even if the ::marker space is not collapsible. This will keep Chromium's behavior but implementing this magic would be annoying.
Say that inside markers don't get assigned white-space: pre in UA origin. This is close to what Chromium does right now. But I guess doing this properly would need pseudo-classes like ::marker:inside and ::marker:outside, even if just for internal use, but that would create a circularity if in the future we allow setting list-style-position in the ::marker itself.