—Dave
Having to read footnotes resembles having to go downstairs to answer the door while in the midst of making love.
—Noël Coward
Current Footnote Syntax in GCPM
span.footnote { float: footnote }
@page {
@footnote {
float: bottom;
}
}
footnote::call { content: counter(footnote) }
footnote::marker { content: counter(footnote) }
flow-into: footnote;
}
span.footnote::before {
content: counter(footnote) '. ';
}
@page {
@slot footnote {
flow-from: footnote;
required-flow: footnote;
position: absolute;
left: 54pt;
bottom: 0pt;
width: 352pt;
height: auto;
border-top: .25pt solid black;
vertical-align: bottom;
}
}
flow-into: chapter-title;
flow-options: static; /* so not "consumed" by flow */
}
@page {
@top-center {
flow-from: chapter-title;
font-size: 10pt;
font-variant: small-caps;
letter-spacing: 1pt;
}
}
@page {
@top-center {
content: string(header);
}
}
@page {
@footnote {
float: bottom;
}
}
footnote::call { content: counter(footnote) }
footnote::marker { content: counter(footnote) }
Issues with Current Approach
- How to extend to multiple footnote areas?
- How to handle columns?
- What if the footnote is itself a block element?
- It's magic all the way down
Proposal using Regions and Pagination Templates
span.footnote {flow-into: footnote;
}
span.footnote::before {
content: counter(footnote) '. ';
}
@page {
@slot footnote {
flow-from: footnote;
required-flow: footnote;
position: absolute;
left: 54pt;
bottom: 0pt;
width: 352pt;
height: auto;
border-top: .25pt solid black;
vertical-align: bottom;
}
}
The Good News
- Easily extended for multiple footnote regions and sidenotes
- Good way to suppress footnote area if there are no footnotes on the page.
- Doesn’t require float for the footnote element
- Regions rule!!
The Bad News
- Change of syntax from existing implementations
- How do you create footnote reference?
- How do define constraint that footnote stays on same page as reference?
- Still requires magic
Running Heads using Regions
h1 {flow-into: chapter-title;
flow-options: static; /* so not "consumed" by flow */
}
@page {
@top-center {
flow-from: chapter-title;
font-size: 10pt;
font-variant: small-caps;
letter-spacing: 1pt;
}
}
@page {
@top-center {
content: string(header);
}
}
What are your thoughts about Håkon Lie's http://alistapart.com/blog/post/css-regions-considered-harmful and the Chrome team removing the WebKit code from Blink?
ReplyDelete