I have a <dl> containing short <dt> texts and possibly long <dd> texts. In the layout where I’m using them I’d like them to appear side-by-side:
/==============\
|DT DD........|
|DT DD........|
|DT DD........|
\==============/
However, in case the DD’s content is too long I just want it to be truncated (overflow: hidden on the DL). One easy way would be giving the DD a max-width to avoid it to be come too big to fit in one line with the fixed-size DT. However, since the container’s width is already fixed and changes via media queries I’d prefer a solution where I do not have to specify a fixed width dot the DD. Using a percentage for both the DT and DD is also not a solution since that would waste space in the DT in case of a big container.
Fiddle showing the problem: http://jsfiddle.net/ThiefMaster/fXr9Q/4/
Current CSS:
dl { border: 1px solid #000; margin: 2em; width: 200px; overflow: hidden; }
dt { float: left; clear: left; width: 50px; color: #f00; }
dd { float: left; color: #0a0; white-space: nowrap; }
Update: I should have read your entire question first.
Take off the
float:left;on the<dd>http://jsfiddle.net/fXr9Q/26/
http://www.impressivewebs.com/css-white-space/
Old
As you have set widths on the
dlanddt, add this to thedd:http://jsfiddle.net/fXr9Q/15/
Be aware – this is CSS3 – will not work on older browsers – it is for you to evaluate if this is a problem or not – most of the time I don’t mind older browsers getting a slightly worse pick of styles.