Building Books with CSS3

by Nellie McKesson

22 Reader Comments

Back to the Article
  1. jeffrey zeldman said:
    >  Snark aside, to which specific methods
    >  of easy epub creation are you referring?

    well, mr. zeldman, i will be
    happy to give you a pointer.

    but first you should tell me
    if you consider “snark” to
    be a good and funny thing,
    or a bad and nasty thing…

    because i just said “i love you”
    (yes, you, jeffrey zeldman)
    in a comment earlier today:
    >  http://blog.readability.com/2012/06/announcement/#comment-3418

    so… you know, it would be…
    ironic if you’re criticizing me
    while i’m professing fandom.

    (but… you’re in luck, because
    i like irony as well as snark!)

    and even if it was “snark”, hell,
    i’m sure nellie can take it well.

    after all, she uses sticks to beat
    an instrument to produce music,
    and drinks her share of bourbon,
    so i’d guess she’s a tough chic…

    (and if you’re wondering about her
    sense’o’humor, grok her twitter pic.)

    anyway, you let me know, jeffrey!
    i will check back here tomorrow…

    meanwhile, these underscores
    and asterisks i have used here,
    but not the non-link above, might
    give a little clue about my answer.

    -bowerbird

    p.s.  oh, i should also note that
    this article is really on the topic
    of turning (x)html into a .pdf,
    rather than an .epub, but i will
    be happy to give you a pointer
    on the overall question of using
    a “master” source-text to attain
    many different formats we want
    (e.g., .epub, .mobi, .pdf, .html5).

    Copy & paste the code below to embed this comment.
  2. nice article

    Copy & paste the code below to embed this comment.
  3. @Nellie McKesson, yes, I agree 100% that FO is too hard.

    The challenge will be to make CSS as powerful without also making it too hard.

    The current drafts for CSS don’t support multiple streams of footnotes, or “page 3 or 5” or “this page left intentionally blank” or stacked marginalia or collapsing index entries into ranges; there are products (e.g. from Antenna House) that have extended CSS as a basis for some or all of this, but such extensions are product-specific and in some cases may even be customer-specific rather than general.

    So I’m hoping that over the next few years we get to the point where HTML + CSS can be used for the majority of the world’s books, without an unacceptable loss of functionality or beauty.

    Copy & paste the code below to embed this comment.
  4. @barefootliam I agree that there’s still plenty to add/polish in the paged media spec, and your point about being careful not to turn CSS into FO by building in all that same messy functionality is a very good one.

    We actually haven’t had to lean too heavily on Antenna House extensions (I think we really only use them for floats, which are a pain right now), and have managed to replicate or improve our old FO layout. Granted our book designs aren’t exactly the most intricate things, but the point is I think it’s possible, and closer than you think!

    Copy & paste the code below to embed this comment.
  5. @Nellie McKesson actually I’ve a pretty good idea how close it is :-) and agree it’s possible (and that floats are a pain). We’re hoping to write up some of the places CSS would need enhancements, in the W3C Print and Page Layout community group, and then to move on to proposals and actually making it happen.

    Really I just wanted to remind readers here that in fact people have been producing (with varying amounts of difficulty) printed books from XML (and SGML before it) for decades, and that it’s not even a rare and unusual thing to do :-)

    Copy & paste the code below to embed this comment.
  6. Thanks for sharing! Great article but kinda tough

    Copy & paste the code below to embed this comment.
  7. It’s been “˜::before’ and “˜::after’ for quite some time now.

    Copy & paste the code below to embed this comment.
  8. The comma between name and type in the “˜attr()’ pseudo-fuction is gone, it only appears in front of the fallback value. So it’s “attr(href url)”.

    Copy & paste the code below to embed this comment.
  9. Long before xhtml, xml, html, publishing companies and large typesetting foundries used sgml. Actually; html was derived from sgml. Sgml was complex and huge/bulky so in the above mentioned way is good as it is always good to separate data, from form and function.

    Copy & paste the code below to embed this comment.
  10. still no response from mr. zeldman, over a week later.

    i guess he wasn’t interested in conversation after all.

    -bowerbird

    Copy & paste the code below to embed this comment.
  11. Do you really think that CSS starting to catch up. I hope you are indeed right that we can expect improvements in the CSS support for print and for paged media in general over the coming months and years barefootliam.

    Copy & paste the code below to embed this comment.
  12. This might seem like a silly question, but it is actually a serious one. What if I wanted to publish looseleaf supplements to existing publications? That is, updated page groups to replace pages in existing printed books. (The books are in something like a three-ring binder, so pages can easily be replaced.)


    Some of the unusual things I’d want to do would be:

    • specify arbitrary page breaks (but only temporarily—for printing purposes)
    • override automatic list numbering (because what if my updated page starts with list item 32?)
    • have the ability to do plenty of manipulation with page numbers (if I’m putting in more pages than I took out, I’ll be making “point pages.”)
    • “scrape” information from headings, manipulate it, and show it in dictionary-style guide heads/ears, as with Word’s “StyleRef” when used inside a field in a page header

    … So, for anyone in the know… can XHTML with CSS3 do any or all of these things?
    I’m looking in the direction of PrinceXML.  Am I likely to find what I need?

    Thanks!

    Copy & paste the code below to embed this comment.