Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css-multicol] Should column-span:all inside a transform really become a spanner? #6805

Closed
mstensho opened this issue Nov 9, 2021 · 1 comment
Assignees
Labels
css-multicol-1 Current Work

Comments

@mstensho
Copy link

mstensho commented Nov 9, 2021

https://drafts.csswg.org/css-multicol/#spanning-columns

In order to become a spanner, we just require that the column-span:all element otherwise participate in the formatting context established by the multicol container / columns.

#elm becomes a spanner here:

<div style="columns:2;">
  <div>
    <div id="elm" style="column-span:all;">

#elm does NOT become a spanner here:

<div style="columns:2;">
  <div style="display:flow-root;">
    <div id="elm" style="column-span:all;">

But what about this one:

<div style="columns:2;">
  <div style="transform:rotate(45deg);">
    <div id="elm" style="column-span:all;">

A transform root establishes a containing block for all descendants, according to https://drafts.csswg.org/css-transforms/#transform-rendering :

For elements whose layout is governed by the CSS box model, any value other than none for the transform property also causes the element to establish a containing block for all descendants.

It does seem strange to allow a column spanner to escape a containing block established by a transform ancestor. Yet, here's what the multicol spec says:

The containing block of the spanner is the multicol container itself. Consequently, in cases where the spanner itself does not establish a containing block for absolutely positioned boxes inside the spanner, their containing block chain skips directly to the multicol container (skipping any ancestors between the spanner and the multicol container).

Could we just change the multicol spec to require that there's nothing in the ancestry between the spanner candidate and the multicol container that establishes a containing block for fixed-positioned descendants? That would guard against transforms and filters (anything else?). Paint and layout containment are already fine, as they trigger creation of a new formatting context.

@fantasai fantasai added the css-multicol-1 Current Work label Nov 10, 2021
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Dec 2, 2021
A transform establishes a containing block for "everything", including
fixed-positioned descendants. Letting spanners escape this seems
strange, and it causes trouble for accessibility in our implementation.

See w3c/csswg-drafts#6805

Bug: 1267847, 1225860
Change-Id: Ibcf9af327824a4683d4b33935c3bc28abe61f998
aarongable pushed a commit to chromium/chromium that referenced this issue Dec 3, 2021
A transform establishes a containing block for "everything", including
fixed-positioned descendants. Letting spanners escape this seems
strange, and it causes trouble for accessibility in our implementation.

See w3c/csswg-drafts#6805

Bug: 1267847, 1225860
Change-Id: Ibcf9af327824a4683d4b33935c3bc28abe61f998
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3310883
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#947905}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Dec 3, 2021
A transform establishes a containing block for "everything", including
fixed-positioned descendants. Letting spanners escape this seems
strange, and it causes trouble for accessibility in our implementation.

See w3c/csswg-drafts#6805

Bug: 1267847, 1225860
Change-Id: Ibcf9af327824a4683d4b33935c3bc28abe61f998
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3310883
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#947905}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Dec 3, 2021
A transform establishes a containing block for "everything", including
fixed-positioned descendants. Letting spanners escape this seems
strange, and it causes trouble for accessibility in our implementation.

See w3c/csswg-drafts#6805

Bug: 1267847, 1225860
Change-Id: Ibcf9af327824a4683d4b33935c3bc28abe61f998
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3310883
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#947905}
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Dec 20, 2021
…forms., a=testonly

Automatic update from web-platform-tests
Don't allow column spanners inside transforms.

A transform establishes a containing block for "everything", including
fixed-positioned descendants. Letting spanners escape this seems
strange, and it causes trouble for accessibility in our implementation.

See w3c/csswg-drafts#6805

Bug: 1267847, 1225860
Change-Id: Ibcf9af327824a4683d4b33935c3bc28abe61f998
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3310883
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#947905}

--

wpt-commits: 2c24e016032affc72eac0af31abea509a2c2e194
wpt-pr: 31837
@rachelandrew rachelandrew self-assigned this Mar 9, 2022
@css-meeting-bot
Copy link
Member

css-meeting-bot commented Mar 9, 2022

The CSS Working Group just discussed CSS MultiCol, and agreed to the following:

  • RESOLVED: Accept proposal that elements which establish fixedpos containing block also block descendant spanners
The full IRC log of that discussion <fantasai> Topic: CSS MultiCol
<fantasai> github: https://github.com//issues/6805
<fantasai> alisonmaher: Criteria of becomming a spanner, specifically in case of a transform
<fantasai> alisonmaher: According to spec, can become a spanner if in the same formatting context
<fantasai> alisonmaher: even if inside a transformed ancestor
<fantasai> alisonmaher: because transform doesn't establish a new formatting context
<fantasai> alisonmaher:even though transforms trap fixed pos descendants
<fantasai> alisonmaher: Proposal is that anything that establishes a fixedpos containing block also prevents descendants from becoming a spanner
<rachelandrew> q+
<TabAtkins> +1
<astearns> ack rachelandrew
<fantasai> dbaron: Sgtm
<fantasai> rachelandrew: It seems like a sensible proposal, happy to make the edits
<fantasai> astearns: Anyone with concerns?
<fantasai> [silence]
<fantasai> astearns: Any objections?
<fantasai> RESOLVED: Accept proposal that elements which establish fixedpos containing block also block descendant spanners

chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Mar 9, 2022
Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
aarongable pushed a commit to chromium/chromium that referenced this issue Mar 9, 2022
Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Mar 9, 2022
Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Mar 9, 2022
Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Mar 26, 2022
…tonly

Automatic update from web-platform-tests
Update multicol-span-all-017.html

Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}

--

wpt-commits: 4265a339baf9bdccd9f1856a0010388ba834b616
wpt-pr: 33137
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Mar 27, 2022
…tonly

Automatic update from web-platform-tests
Update multicol-span-all-017.html

Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}

--

wpt-commits: 4265a339baf9bdccd9f1856a0010388ba834b616
wpt-pr: 33137
aosmond pushed a commit to aosmond/gecko that referenced this issue Mar 28, 2022
…tonly

Automatic update from web-platform-tests
Update multicol-span-all-017.html

Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}

--

wpt-commits: 4265a339baf9bdccd9f1856a0010388ba834b616
wpt-pr: 33137
aosmond pushed a commit to aosmond/gecko that referenced this issue Mar 28, 2022
…tonly

Automatic update from web-platform-tests
Update multicol-span-all-017.html

Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}

--

wpt-commits: 4265a339baf9bdccd9f1856a0010388ba834b616
wpt-pr: 33137
mjfroman pushed a commit to mjfroman/moz-libwebrtc-third-party that referenced this issue Oct 14, 2022
A transform establishes a containing block for "everything", including
fixed-positioned descendants. Letting spanners escape this seems
strange, and it causes trouble for accessibility in our implementation.

See w3c/csswg-drafts#6805

Bug: 1267847, 1225860
Change-Id: Ibcf9af327824a4683d4b33935c3bc28abe61f998
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3310883
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#947905}
NOKEYCHECK=True
GitOrigin-RevId: a1747039c553177e3c2c79bc1747d31c40dbf767
mjfroman pushed a commit to mjfroman/moz-libwebrtc-third-party that referenced this issue Oct 14, 2022
Add <link rel="match"> tag to the test so that it runs and remove
the .tentative identifier since the change has been approved by the
CSSWG[1].

[1] w3c/csswg-drafts#6805 (comment)

Bug: 1267847
Change-Id: I40d8017e79a8ab7f0bd40a8d704558afdcdca162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3514895
Commit-Queue: Alison Maher <almaher@microsoft.com>
Auto-Submit: Alison Maher <almaher@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#979467}
NOKEYCHECK=True
GitOrigin-RevId: de64f8911c7f0ee24ecfdaf732f5bd2633aab344
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
css-multicol-1 Current Work
Projects
Status: Done
Development

No branches or pull requests

6 participants
  NODES
3d 6
Community 2
os 61
text 5
Users 1
web 16