- From: David Hyatt <hyatt@apple.com>
- Date: Fri, 14 Mar 2003 15:10:06 -0800
- To: Stuart Ballard <sballard@netreach.com>
- Cc: "www-style@w3.org" <www-style@w3.org>
Float the div. <div style="float:left">... dave On Friday, March 14, 2003, at 02:26 PM, Stuart Ballard wrote: > > This message may be off-topic, but whether it is or not depends on > what the answer to the question is. If the answer is "you can already > do it", then it's off-topic because it's a "howto" question. If the > answer is "you can't do it" then it's on-topic because it's a > suggestion of something to add to CSS... How's that for an existential > quandry? ;) > > Anyway, the question is this (using a generic unversioned kind of HTML > for my examples) > > When I write something like this: > > <table style="background-color: red"> > <tr> > <td> > My Cell > </td> > </tr> > </table> > > then, per the default styling rules in just about every browser (and > as far as I can tell the CSS2 spec backs this up, referring to things > like Minimum Content Widths etc), the red background (and hence the > table) is only the size it needs to be to fit the width of the text > "My cell", plus applicable margins, padding and border. > > On the other hand, if I write something like this: > > <div style="background-color: red"> > My Div > </div> > > then, per the default styling rules (and again the spec seems to back > this up), the red background is the full width of the containing block > (which if I'm not already inside something else, means the full width > of the browser window). > > I don't object to this default behavior, but the problem is that as > far as I can tell there's NO WAY to style a div to behave like the > table cell does by default. Which forces me to use horribly > un-semantic tables for simple blocks that don't need any tabular > behavior except for the ability to calculate their width based on > their content. > > "width: auto" is apparently equivalent to the initial value and > computes to (effectively) 100%. > > "margin-right: auto" apparently (by the algorithm described in CSS2 > 10.3.3) gets treated as if it were zero if width is auto. > > "width: 0" causes the content to be compressed to its minimum possible > width, which isn't necessarily the same as it's preferred size (in my > example, it would cause a linebreak to be inserted between "My" and > "Div"). > > "min-width: 0" has no effect because the computed value isn't > constrained by the minimum width. > > My question is therefore, is there any way to get the behavior I want > based on current CSS specs, and if not, is there any plan to provide > this behavior in future versions of CSS? > > Thanks, > Stuart. > > > > > -- > Stuart Ballard, Programmer > NetReach - Internet Solutions > (215) 283-2300, ext. 126 > http://www.netreach.com/ >
Received on Friday, 14 March 2003 18:10:31 UTC