I came back and played with it a bit -- here's what I came up with:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
lang="en"
xml:lang="en"
><head>
<meta
http-equiv="Content-Type"
content="text/html; charset=utf-8"
/>
<style type="text/css"><!--
blockquote {
width:16em;
padding-left:20px;
font:normal 100%/140% arial,helvetica,sans-serif;
}
blockquote span {
display:-moz-inline-block;
display:-moz-inline-box;
display:inline-block;
overflow:hidden;
position:relative; /* IE 6- makes quotes actually render! */
width:24px;
height:20px;
margin-top:-8px;
vertical-align:top;
text-align:center;
font:bold 40px/48px arial,helvetica,sans-serif;
}
blockquote .first {
margin-left:-24px;
}
blockquote .last {
margin-right:-24px;
}
--></style>
<title>
Big quotes on a blockquote test
</title>
</head><body>
<div id="pageWrapper">
<blockquote>
<p>
<span class="first">"</span>Life's gonna suck when you grow up, when you grow up, when you grow up, oh, life's gonna suck when you grow up it sucks pretty bad right now.<span class="last">"</span>
</p><p>
-- <cite>Dennis Leary</cite>
</p>
</blockquote>
<!-- #pageWrapper --></div>
</body></html>
Which in testing works all the way back to IE 5.01. The last span won't drop because not only does it have no whitespace between it and the last word, but it's 'flow width' is 0px since it's 24px wide with a right margin of negative 24px. 0 width means it has no reason to drop. It will also push into the margin/padding like I did with the leading quote when the line is long enough..
The line-height issues I address by using px fonts and then chopping off the bottom half. Makes the positioning more predictable even when the default font size changes -- which is why this works 75dpi/96pdi/120dpi without issues.
Sometimes it's worth that extra (OH NOES) 56 bytes of markup. If that extra 56 bytes makes it work all the way back to IE 5 without any headaches -- oh well. Beats the tar out of dicking with :before and :after.
Bookmarks