- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Mon, 4 Nov 2013 16:39:15 -0800
- To: Håkon Wium Lie <howcome@opera.com>
- Cc: "Cramer, Dave" <Dave.Cramer@hbgusa.com>, "liam@w3.org" <liam@w3.org>, James Clark <jjc@jclark.com>, "www-style@w3.org" <www-style@w3.org>, Bert Bos <bert@w3.org>
On Mon, Nov 4, 2013 at 3:54 PM, Håkon Wium Lie <howcome@opera.com> wrote: > Tab Atkins Jr. wrote: > > > Using this, one can define two named areas, each representing a stream of footnotes: > > > > > > @page { > > > @area fn1, fn2 { > > > float: bottom; column-span: all; > > > } > > > } > > > > > > The areas will be generated in the order specified, so that fn1 will > > > be below fn2 (as it goes to the bottom first). The areas would only > > > appear on pages where they have content and, as floats, their size > > > would depend on their content and 'max-height' would apply. > > > > > > One can then float footnote elements into the two named areas: > > > > > > .fn1 { float: to(fn1) } > > > .fn2 { float: to(fn2) } > > > > I don't understand the use of 'float' here. This seems to just be > > using Regions, and so should extend that syntax: > > > > .fn1 { flow-into: page-area(fn1); } > > .fn2 { flow-into: page-area(fn2); } > > Perhaps. If we can align two models, good. However, Using float has > some benefits: > > - it's implemented/used for footnotes I don't understand what this means. > - it prevents the element from being floated further (this is a > restriction in "real" flows, but typically not for elements you > just want to push aside a little) Nor this. > - 'float-offset' works with floats: > > http://figures.spec.whatwg.org/#the-float-offset-property Just use margins. > Also, if we switch to 'flow-into' there may be an expectation that > implementations are based on regions and that, e.g., 'flow-from' and > other regions-related functionality would work. This may not be the > case. Yes, that's my assumption. Let's not build little fiefdoms of almost-identical-but-not-quite functionality. If this is basically Regions, make it fully Regions. For example, long footnotes may be continued onto the next page. Once you make Regions page-aware (so they won't flow into an area from an earlier page), then you get this for free - all the areas of the same name are just a region flow, so if there's a max-height constraint, an overfull area will spill to the next page's area, *and* work properly with additional footnotes from the same or following page as well. > One important use case for sidenotes is having them appear on the > outside of columns: > > ........ ......... > ........ ......... > ........ ...[2]... second > ........ ......... sidnote > ........ ......... > first .[1].... ......... > sidenote ........ ......... > ........ ....[3].. third > ........ ......... sidenote > ........ ......... > > Being able to align the sidenotes with its reference point is > important. This is supported through the "align" keyword: > > .note { float: to(sidenote align) } > > How would this be solved using regions? It wouldn't be, because you're not flowing them together in an independent portion of the page - it would be done with Positioning, in some fancy new way. I can sketch ideas for it, if you'd like. > Anyway, I've marked the syntax as an issue. > > > The @area blocks are automagically set up to receive their > > corresponding flow. We should probably de-magic this into some > > functionality on flow-from, to, so that it'll only recieve flows from > > the same page or earlier. > > There's no magic involved; the areas are explicitly named and the > content is floated/flowed into them by their names. Using brand new functionality, thus magic. ^_^ But anyway, I was saying this in reference to explaining all this functionality with Regions, which would need to gain the ability to be page-aware. > But, yes, there should be constraints on where the floats should > appear and it makes sense to say that floats should not move to a > previous page. > > > > To address b), we first need a line counter: > > > > > > .line { counter-increment: 1 } > > > > > > (which would count elements marked up as lines, and not lines themsleves) > > > > > > Then number every 5th line: > > > > > > .line:nth-of-type(5n)::after { content: leader(space) counter(line) } > > > > I think line counters have been proposed before. Your solution > > doesn't scale, as it requires the author to predict ahead of time > > precisely where lines will break. > > Think of lines as in TEI [2][3] where the <l> element marks lines in > verses. Thus, the line numbers are based on lines as defined by the > author, not as they happen to be shown on any given screen. > > http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-l.html > http://www.ibsen.uio.no/DIGTE_Di%7CDi71.xml Yeah, that's valid for those kinds of cases, but I don't see how it'll help in general. Most books aren't and shouldn't be formatted to line-break in predetermined spots; it's useful for scholarship to have a "standard" line numbering, but not elsewhere. > > > To address c), I think we need a new value on 'display'. CSS 2.0 had > > > two display values either became block or inline, depending on > > > context: > > > > > > run-in and compact > > > These values create either block or inline boxes, depending on context. > > > > > > http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#display-prop > > > > > > It seems that neigher 'compact' or 'run-in', as defined in 1998, give > > > us what we need to do inline footnotes. Perhaps we need something like: > > > > > > make the element inline if it takes up less than a line, otherwise > > > make it a a block > > > > > > Or something. > > > > > > I believe this display value would be useful outside of footnotes, > > > too. As such, this is not a footnote-specific issue. > > > > What are some examples that would illustrate the use of this? > > One use case is lines of poetry where short lines (as defined by the > author) are shown on the same line (on the reader's device). E.g.: > > All the world’s a stage / And all the people in it merely players. Seems reasonable. > The added '/' makes this non-trivial, it's similar to wanting to set > different margin/padding based on whether an element end up being > block or inline. Yeah, definitely non-trivial. ~TJ
Received on Tuesday, 5 November 2013 00:40:04 UTC