At 09:08 AM 7/28/2005, Beau Hartshorne wrote:
I thought of a way to build sidenotes in well-supported and valid
CSS. I posted details on my log:
<http://hartshorne.ca/2005/07/27/footnotes_v_sidenotes/>

Basically, I'm using absolute positioning to take a <span> (or a
<small>) out of flow, and to move it outside of some containing block
where it can read as a sidenote. I'd appreciate feedback on the
technique, and to know if anyone has any trouble with it in any browser.


Beau,

This is an interesting topic. A body of text with footnotes* seems like a perfect application for hypertext, but as you know arriving at a layout that presents both in the viewport simultaneously is a challenge.

* The different expressions footnote, endnote, and sidenote merely refer to their cosmetic layout; I see them as the same semantic animal.

Your technique of always displaying sidenotes beside their in-text references works well on your sample page because your sidenotes are sparse and brief. I'll echo Ben that your technique will fail whenever sidenotes overlap due to their frequency in the text in relation to their length. Your technique will work as long as the vertical distance between any two in-text references is greater than the length of the first of the two corresponding sidenotes. If there are two references on the same line of the text, their difference is zero and your technique fails instantly. To complicate things, the distance criteria vary not just with the text itself but also with text-resizing which can affect word-wrap unless all the container widths are sized in ems. A layout that might work at "normal" text zoom can fail when enlarged as word-wrap increases the number of lines of text that a sidenote requires.

You say, "I don't use numbering because the sidenotes appear next to relevant parts of text." This works only for texts in which the reference-sidenote relationship is sufficiently vague. If your text contains specific references, say book authors or titles for which you want to sidenote the full bibliographic entry, or words for which you want to display definitions, or others in which it's crucial to map explicitly between each text reference and its corresponding sidenote, then your technique will frustrate the reader.

I'm preparing a book on the history of genetics for the web with endnotes that are too frequent, lengthy, and specific for your technique to work. The solution I'm implementing is something like this:

- References (words and phrases in the main text) are hyperlinks.
I've chosen to style them with a dotted border-bottom to be easily identifiable but minimally intrusive for someone merely wishing to read on through.

- Activating a link displays the corresponding sidenote.
I'm still debating what "activating" entails: hover or click. I don't like using hover because among other things it means you have to leave the mouse-pointer on the in-text reference while you read the sidenote, awkward at best and impossible if the sidenote is long enough to require scrolling. At present I'm using click as the interface. The hover interface can be accomplished entirely with CSS, cross-browser, if the sidenote markup can be nested inside the link, e.g.:

        /* default = hide */
        a span.sidenote
        {
           margin-left: -1000em;
        }

        /* active = display */
        a:hover span.sidenote
        {
           margin-left: 400em;
        }

Otherwise, if the sidenote can't be nested inside an anchor or if the user interface is click, javascript is necessary to toggle sidenote visibility and position and to attach the behavior.

- In the absence of scripting, when the user clicks on a link, they are navigated to the corresponding entry in the index or bibliography, be that at the bottom of the current page or on a separate page.

- Tagging the in-text references as anchors or spans provides the opportunity to give each one a unique id and implement bi-directional navigation from the text to the footnote and back again. This is helpful if, say, you're reading through the footnotes and want to jump from a note into the text from which it came. Or in an interface more like yours, if you hover over a sidenote the corresponding in-text reference can highlight.

The method I'm exploring depends on scripting so I'm not completely happy with it, but I haven't yet seen a better solution for a footnote-dense text. If anyone can refer me to a better solution, I'd appreciate it!

Regards,
Paul


______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to