- From: fantasai <fantasai@escape.com>
- Date: Fri, 16 Nov 2001 23:30:31 -0500
- To: www-style@w3.org
There are three proposals in the CSS3 Box Model WD http://www.w3.org/TR/2001/WD-css3-box-20010726/#the-box-width A) Name: box-width, box-height Value: <length> | <percentage> | auto | inherit | initial B) Name: box-sizing Value: content-box | border-box | inherit | initial C) simple expressions as width/height values, e.g. width: 10% - 2 * 2px; The problem with the first is that you can't use border-box sizing for min/max-width and min/max-height. One could add min-box-width and so on, but that's a bit unweildy. Also, two different properties for setting the height means you can't override a previous 'box-width' with a more specific or higher-cascade-level 'width'. With box-sizing, you can apply it to min/max-width and min/max-height without adding so many new properties. You also don't wind up with the cascade problem where one width setting can't override a previous width setting. However, setting 'box-sizing' to border-box will also affect any width/height settings made by, for example, the user stylesheet, which may have assumed content-box sizing. Also, you can't set max-width as a border-box measurement and min-width as a content-box measurement--it's all or nothing. Simple expressions, while useful in and of themselves, aren't be an ideal solution, either; hard-coding the border width into the width calculation won't account for borders and padding set elsewhere in the cascade. For example, a user may specify "border: 0 !important;"--which throws off a 10% + .4em width set by an author who also set "border-width: .2em;". Then one also has to keep track of all the relevant author rules-- which is hard to do if site-wide stylesheets are written by one person and local stylesheets are written by another. Now, if you provide a mechanism to symbolically represent border and padding in the expression, you avoid the hard-coding problem: Padding and border-width can cascade independently, and still be taken into account no matter what the final value. ex: width: 50% - <border-width> - <padding>; (I suggest making the syntax very general, as you might later find such references useful in other contexts.) --------- http://www.w3.org/TR/2001/WD-css3-box-20010726/#the-ltlengthgt - "A <percentage> is relative to the computed value of the width or height of the containing block" This is ambiguously worded. I have "width: 50%". Is it 50% of the width or 50% of the height? Also, is the containing block's width/height computed with or without borders and padding? --------- BTW, I highly recommend adding dbaron's 'intrinsic' and 'min-intrinsic' keywords. http://www.w3.org/TR/2001/WD-css3-box-20010726/#the-width "[Idea by David Baron: add keyword values 'intrinsic' and 'min-intrinsic' to force an element to have its intrinsic or minimum width.]"
Received on Friday, 16 November 2001 23:28:05 UTC