Skip to content

[css-multicol] specification should define interaction between 'column-span' and 'column-fill' #1075

Closed

Description

@dbaron

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

Activity

  1. frivoal commented on Mar 4, 2017

    @frivoal
    Collaborator

    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.

  2. mstensho commented on Mar 6, 2017

    @mstensho
    Contributor

    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.

  3. astearns commented on Mar 8, 2017

    @astearns
    Member

    Removing agenda+ until #1072 is resolved

  4. self-assigned this
    on Apr 6, 2017
  5. css-meeting-bot commented on Nov 8, 2017

    @css-meeting-bot
    Member

    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]
  6. removed their assignment
    on Apr 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions