QUOTE(Christian J @ Dec 28 2011, 12:37 AM)

CSS overflow only applies to block elements, which AFAIK doesn't include table rows and cells.
Thanks. I would never have guessed.
I found some W3C stuff which purports to describe "Block-level boxes" here:
http://www.w3.org/TR/CSS2/visuren.html#block-boxesBut it reads like legalese wordplay to me. Is the first sentence supposed to be a *definition* of what a block-level element is, or is that somewhere else? Who knows.
Anyway, the truly fascinating thing about CSS is the artful way it sucks you in. Try this, try that, always something _else_ goes wrong, giving four new things to try, until it's tea time, and I give up.
I tried td {display: block;} but this appears to result in a disaster: the whole table disintegrates, and the <td>s appear in a single column.
I tried putting the td content inside a <div>. This sort of works, but the text inside the div inside the td doesn't align with text directly inside a td. I asked about this the other day: how can I control the spacing (padding? margin? who knows?) around bare text, and no-one seems to know.
I can kludge things back in the right direction by putting the text inside a <p> inside the <div>, where everything has zero margin and padding, and no border.
Here's one try: put the text inside a null <p> inside a clip-to-1em-height <div>... here's a sample file:
http://imaginatorium.org/private/purchrecd.htmlYou will see that the relevant <td> including the title, which I want to chop if it's too long, now goes
<td><div class=ht1em><p class=null>A jolly title</p>...
Here's the CSS for the <div> and <p> for reference:
CODE
.ht1em { /* clips content to 1em height */
margin: 0;
border: none;
padding: 0;
height: 1em;
overflow: hidden;
}
P.null {
margin: 0;
border: none;
padding: 0;
line-height: 1em;
background-color: #ffff99;
}
I manually removed this <p> from the second entry, to show the effect of bare text within the div. I would, once, have imagined that putting a <div> with zero margin, padding, and no border, would not affect the positioning of text, but it does. Why would inserting another layer, the <p> somehow move the text back to the original position?
Again, this seems a crazy amount of effort to do something trivial. Is putting bare text within a <td> somehow frowned on? Is there a "proper" way to do it?