What's the best way to represent a stage script in HTML?
More proper (semantically) and shorter would be to use definition lists:
dl {
overflow: hidden;
}
dl dt {
float: left;
width: 30%;
}
dl dd {
float: left;
width: 70%;
}
<dl>
<dt>Jeff</dt>
<dd>This sure is a nice website we've got now.</dd>
<dt>Joel</dt>
<dd>It certainly is. By the way, working at FogCreek rocks.</dd>
<dt>Jeff</dt>
<dd>Of course it does. Have you played Rock Band yet? It's a lot of fun.</dd>
</dl>
I'd say
<dialog>
<dt>Jeff
<dd>This sure is a nice website we've got now.
<dt>Joel
<dd>It certainly is. By the way, working at FogCreek rocks.
<dt>Jeff
<dd>Of course it does. Have you played Rock Band yet? It's a lot of fun.
</dialog>
as defined in HTML5.
Of course, you'll need a <script>document.createElement('dialog');</script>
to get IE to do something sensible and a dialog { display:block; }
in your CSS to get it to work completely.
My favourite example of marking up something like this is one of Tantek's XHTML compounds http://tantek.com/presentations/2005/03/elementsofxhtml/ (check out the conversation bit)
In summary it goes like so:
<ol>
<li><cite>Jeff</cite>
<blockquote><p>This sure is a nice website we've got now.</p><blockquote>
</li>
<li><cite>Joel</cite>
<blockquote><p>It certainly is. By the way, working at FogCreek rocks.</p></blockquote>
</li>
...etc...
</ol>
Not sure how you'd mark up stage directions etc... Maybe you'll end up creating a new microformat :)
Also that markup has some ideal CSS hooks, with discrete LInes unlike a definition list.