The box model is fine when you just need to "flow" things around things, like text around images, and typical blog designs, but when you develop complicated interfaces it really shows its limitations and costs many hours of frustrating effort.
box-sizing: border-box
with -ms- (IE8), -moz- and -webkit- prefixes.The CSS3 UI module is a candidate recommendation. Setting:
box-sizing: border-box;
essentially puts the CSS box model render mode to where it was in IE5 (which is, frankly, the only sensible way to do it). Right now, it is available with Mozilla, Webkit and Microsoft prefixes (as are most of the UI module properties).
CSS has very weak layout capabilities.
CSS has weak typography.
CSS has weak colour system support.
In each case, this is partly due to limitations in the underlying model, but also partly due to having limited syntax.
In each case CSS3 modules may improve things somewhat if and when they are widely supported, but even the best proposals there aren't even close to the power of a good DTP tool or the control of a native application. When the web is trying to take over from both, CSS isn't a good tool, it's just the best we've got right now.
display: inline-block;
width: ...
?Besides if you don't care about antiquated browsers (eg IE6), the inline-block is a viable option. In IE it will require some massaging, but it can be made to work quite easily.