W3C home > Mailing lists > Public > www-style@w3.org > July 2014

Re: [css-gcpm] Footnotes as Regions

From: Håkon Wium Lie <howcome@opera.com>
Date: Mon, 28 Jul 2014 23:58:41 +0200
Message-ID: <21462.51089.818327.366985@gargle.gargle.HOWL>
To: Brad Kemper <brad.kemper@gmail.com>
Cc: Dave Cramer <dauwhe@gmail.com>, "www-style\@w3.org" <www-style@w3.org>
Brad Kemper wrote:

 > > IMHO, using @slot or some other CSS-based syntax makes much more sense
 > > than using element-based regions.
 > Agreed, but regions are not just element based, they are a general
 > mechanism that can be used with elements, pseudo-elements, etc.
 > They are still standard regions (using the standard 'flow-from'
 > property) in this proposed footnote syntax, but the container is
 > created via the mechanisms of the pagination templates draft (I.e.
 > '@slot'). I like that approach too.

Yes, I like @slot (or @area). My point is that there's no need to
refer to them as elements of any kind -- it's a zebra, not a

 > > CSS Books [1] uses CSS-based syntax to create "named areas" (to
 > > complement "named pages"). The basic syntax is:
 > > 
 > >  @page {
 > >    @area footnotes { /* position the area */ }
 > >  }
 > >  span.fn { flow: footnotes }
 > > 
 > > It should be possible to converge @slot and @area. Let's investigate.
 > I think pagination templates has the general idea of defining areas
 > that can be filled via the 'flow-from' property of the regions
 > draft. If we can do that and also have it fulfill all the
 > functionality provided by @area, then I also think that is a great
 > idea to investigate. I don't really care if the containers are
 > called "slots" or "areas".

Neither do I. I care about the use cases in for named areas,
especially the placement of notes:


The spec isn't fully developed, but it should be possible to
understand the use cases.

 > > Named areas are not created unless they have content. This seems like a better default.
 > @slot is also useful for creating areas of the page, such as
 > sidebars, that the author might still want styled even when there
 > is no content to flow into them. It seems reasonable for there to
 > be some sort of switch for that (such as 'required-flow'), while
 > still maintaining @slot as the general mechanism.


 > >> C. The interaction between footnotes and columns is complex. In particular,
 > >> how would you specify that a footnote be displayed at the bottom of the
 > >> column that contains the reference?
 > > 
 > > Prince addresses this by having a separate value on float:
 > > 
 > >   float: column-footnote
 > > 
 > > in addition to the normal:
 > > 
 > >   float: footnote
 > So far, the pagination templates draft has a different approach
 > than using new float values, and seems to get by without them. It
 > seems to have a more top-down approach to laying out the page in
 > predetermined ways, rather than the somewhat more organic layout
 > creation approach of floating to the bottom of something (of a
 > page, or of a column).

Right. Generally, CSS Books & CSS Figures attaches more information to
elements ("I'm a float, I want to float to the top!"), while
Pagination encodes more information in separate templates ("If an
image appears in the first column of this two-column layout, it will
float to the top!").

(I happen to prefer the first approach as I believe the resulting
designs will be more responsive to various screen sizes; not all
designers will remember to write page templates for all sorts of
devices. Also, I believe the code will be more compact and human

 > >> span.footnote {
 > >> flow-into: footnote;
 > >> bikeshed-display: compact;
 > >> }
 > > 
 > > We could add properties for this, but it may be easier to add support
 > > for many variations in footnote formatting by using a functional
 > > notation. E.g.:
 > > 
 > >  float: footnote;                 /* default: block-level, bottom of page */
 > >  float: footnote(inline)          /* inline footnotes, bottom of page */
 > >  float: footnote(compact)         /* conditional block/inline, bottom of page */
 > >  float: footnote(column)          /* block-level, bottom of column */
 > >  float: footnote(compact column)  /* conditional block/inline, bottom of column */
 > Having lots of variations on float values seems more complicated
 > that using 'flow-from' and 'flow-into' to put it into a slot/area.

My examples didn't replace 'flow-from'/'flow-into' -- they replaced

 > Maybe the equivalent using regions and templates only would be to
 > add another component value to 'flow-into', like 'flow-into:
 > footnotes compact'.

Perhaps. I believe there are cases where you have different kinds
(block/inline) of footnotes in the same flow, so you need to set
properties on a per-element basis (rather than on a per-flow basis).

 > Does 'compact' mean that the UA would decide on its own whether to
 > make the footnote inline or block, based on the length? Or
 > something? It sounds kind of sketchy to me, regardless of it it is
 > using floats or regions.

There's a discussion on the topic around here:


              Håkon Wium Lie                          CTO °þe®ª
howcome@opera.com                  http://people.opera.com/howcome
Received on Monday, 28 July 2014 21:59:20 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:39:23 UTC