- From: Etan Wexler <ewexler@stickdog.com>
- Date: Tue, 04 Mar 2003 03:12:57 -0800
- To: www-style@w3.org, Noel Akins <nakins@arkansas.net>
Noel Akins wrote to <www-style@w3.org> on 1 March 2003 in "suggestions" (<mid:5.2.0.9.0.20030301222803.01e2a148@pop3.arkansas.net>): > I have a suggestion for an addition to the Height and > Width properties as it applies to the box model. I would like to see the > following. > > Basically put: Height: 100% - Xpx; > > I was told that this had been suggested before. Well, I'll suggest it again. Yes, arithmetic for <length> values has surfaced as a suggestion several times. If arithmetic is allowed, it should be allowed anywhere that <length> is allowed. The problem is that in some declarations, several <length> terms occur in sequence. Consider the following three rule sets. foo { margin: 10em -5%; } foo { margin-top: 10em; margin-bottom: 10em; margin-right: -5%; margin-left: -5%; } foo { margin-top: 10em - 5%; margin-bottom: 10em - 5%; margin-right: 10em - 5%; margin-left: 10em - 5%; } Which of the latter two should be equivalent to the first? To solve this ambiguity, a proposed grammar follows, with <basic-length> representing the current form of <length>. <length> = <arithmetic-length> | <basic-length> <arithmetic-length> = ( <basic-length>+ ) <percent-length> = <percent> | <length> | ( [<percent> | <basic-length>]+ ) To express the arithmetic, the given grammar uses the unary operator that is optional with each <length>. Thus space is forbidden between the operator and the following number. If it is felt necessary to permit the space, use the following productions. <arithmetic-length> = ( [<basic-length> <pom>]+ <basic-length> ) <percent-length> = <percent> | <length> | ( [[<percent> | <basic-length>] <pom>]+ [<percent> | <basic-length>] ) <pom> = "+" | "-"
Received on Tuesday, 4 March 2003 06:13:30 UTC