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] specification should define interaction between 'column-span' and 'column-fill' #1075

Closed
dbaron opened this Issue Mar 3, 2017 · 4 comments

Comments

7 participants
@dbaron
Member

dbaron commented Mar 3, 2017

The multicol spec doesn't define the interaction between 'column-fill' and elements that have 'column-span'. The definition of column-span says:

Content in the normal flow that appears before the element is automatically balanced across all columns before the element appears.

I think it's reasonably clear that in a non-paged context, this means that column-fill is only honored in the part of the multicol after the last column-span: all element inside it. However, it's less clear what happens in paged media. Reading the text quoted above literally, the spec currently says that column-fill: balance-all behavior (rather than balance, which is the initial value) is required on any pages of a multicolumn element where a later page has a column-spanning element.

This should actually be defined in a somewhat formal manner. The current spec appears to be more of a use cases document than a specification on this topic.

/cc @neerjapancholi

@frivoal

This comment has been minimized.

Contributor

frivoal commented Mar 4, 2017

I think requiring the balance-all behavior on all preceding pages is an unintended side effect of the imprecise wording you mentioned, and that "balanced across all columns before the element appears." should be scoped to the current fragmentainer.

@mstensho

This comment has been minimized.

mstensho commented Mar 6, 2017

How about honoring column-fill also in column rows preceding a spanner, if the value is either balance or balance-all? If it's auto, we obviously have to balance at least the previous column row, but forcing balance-all behavior seems unnecessary.

@tantek tantek added the Agenda+ label Mar 7, 2017

@astearns astearns removed the Agenda+ label Mar 8, 2017

@astearns

This comment has been minimized.

Member

astearns commented Mar 8, 2017

Removing agenda+ until #1072 is resolved

@frivoal frivoal self-assigned this Apr 6, 2017

@rachelandrew rachelandrew added this to Unfiled in css-multicol-1 Aug 9, 2017

@rachelandrew rachelandrew moved this from Unfiled to Needs discussion in css-multicol-1 Aug 9, 2017

@css-meeting-bot

This comment has been minimized.

Member

css-meeting-bot commented Nov 8, 2017

The Working Group just discussed INteraction between column-span and column-fill.

The full IRC log of that discussion <TabAtkins> Topic: INteraction between column-span and column-fill
<Rossen> github: https://github.com//issues/1075
<TabAtkins> rachelandrew: The multicol spec doesn't define the interaction between column-fill and elements with column-span
<TabAtkins> rachelandrew: Says content is auto-balanced across columns.
<fantasai> “ The current spec appears to be more of a use cases document than a specification on this topic.” :)
<TabAtkins> iank_: So this is - i fyou've got a bunch of text before the spanner, does it just fill the first column, or does it balance?
<TabAtkins> TabAtkins: Examples show it balancing
<TabAtkins> dholbert: Not sure that's what's being asked, it's something about pagination...
<TabAtkins> fantasai: So c-f takes auto, balance, and balance-all
<TabAtkins> fantasai: balance means the last page is balanced, all the rest you fill the first column, then the second, etc. When you run out of content that'll fit (a forced break, or a big chunk) you just stop, don't balance.
<TabAtkins> fantasai: balance-all means you *do* balance on all pages
<TabAtkins> fantasai: auto means you don't do any balance at all
<TabAtkins> fantasai: column-span says if you ahve content befor ethe span, the span is a break (like a page-break), but you always balance what's left.
<dbaron> ^^ you balance the stuff *before* the span
<dbaron> (I'm not in the room, though, but "What's left" seems wrong)
<TabAtkins> fantasai: So question in issue is, if you have a span in the middle of a page, the content after the span is balanced depending on the column-fill property.
<TabAtkins> fantasai: But if there's another spanner two pages down...
<TabAtkins> fantasai: The rule "balance the content before the spanner", does that apply to the previous pages ?
<TabAtkins> fantasai: I don't think that makes sense - a page break should limit how far you balance.
<TabAtkins> TabAtkins: Agree
<TabAtkins> fantasai: The row of boxes that get terminated by the spanner is the row that is forced to balance. Previous column rows don't balance by default (that depends on column-fill)
<fantasai> Rossen: ... TabAtkins: The concept you're talking about is the column row
<fantasai> Rossen: But not previous page
<fantasai> TabAtkins: by definition those are previous column rows
<TabAtkins> fantasai: You can ahve multiple column rows per fragmentainer.
<TabAtkins> fantasai: Generated by spanners and page breaks.
<TabAtkins> Rossen: So autofill rebalancing applies to the immediatley preceding column row of a spanning element.
<dbaron> ^^ I agree
<fantasai> s/what's left/the content before the spanner/
<TabAtkins> Resolved: autofill rebalancing applies to the immediatley preceding column row of a spanning element only.
<TabAtkins> dholbert: [gives a questionable example, we're trying to figur eit out]

@rachelandrew rachelandrew moved this from Needs discussion to Needs action in css-multicol-1 Nov 8, 2017

@frivoal frivoal removed their assignment Apr 5, 2018

rachelandrew added a commit that referenced this issue Apr 11, 2018

@rachelandrew rachelandrew moved this from Needs action to Needs Testcase (WPT) in css-multicol-1 Apr 11, 2018

fergald added a commit to fergald/csswg-drafts that referenced this issue May 7, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment