rachelandrew / multicol-wip

Somewhere to store stuff relating to my work on Multi-column layout
MIT License
11 stars 0 forks source link

EPUB authoring impacting CSS break in awful ways #7

Open JayPanoz opened 6 years ago

JayPanoz commented 6 years ago

First and foremost, I am really sorry to report this EPUB-related case.

The issue is the following: there is a common misconception amongst EPUB authors that pagination = paged media, although they are not using CSS paged media to lay out contents – don‘t ask me why, my best assumption is that page-break-* works in Adobe’s ePub 2 Reader Mobile Software Development Kit and the UIWebView setPagination API on which iBooks is relying.

This can have nasty consequences, the worst one probably being extensive reliance upon page-break-* properties.

As far as I can tell, CSS break is a strange beast and browsers don’t alias it the same for columns. If authors want maximum compatibility, they should consequently use the following:

element {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
}

Problem is what you’ll find in 99.9% of cases is…

element {
  page-break-inside: avoid;
}

This, once again (sorry), far outscopes CSS Multicol. But I can see “Page Break Aliases” are discussed in the CSS Fragmentation Module Level 3. So the question is, do you want to go all the way back to column-break and take the EPUB case into account for the mapping as well?

In the EPUB context, page-break-inside would probably be itself an alias for column-break (which has practical implementations, albeit prefixed). Excluding print, the most extensive use of page-break-* is quite possibly ebooks, so I thought it was worth reporting this.