W3C home > Mailing lists > Public > www-style@w3.org > March 2001

Proposal: dimension expressions

From: David Eisenberg <david@catcode.com>
Date: Fri, 2 Mar 2001 14:33:10 -0500 (EST)
Message-ID: <Pine.LNX.4.21.0103021125550.27234-100000@penguin.keypoint.com>
To: www-style@w3.org
Many web designers make websites using dimensions in percentages to keep
the ratios of areas on the screen in pleasing proportion as the user agent
window shrinks or grows. This liquid design becomes difficult with
standards-compliant CSS, since a width specification describes only the
content box, and not the padding, borders, or margins.  Thus, these

  .index-class { width: 25%; margin: 5px; padding: 6px; }
  .content-class { width: 75%, margin: 3px; padding: 4px; }

will not give you a nice liquid layout; the total width is
100% plus 36 pixels (margin plus padding times two).

For a detailed example, see page four of the article at
http://www.alistapart.com/stories/journey/, where
the author says,

   "I couldn't exactly write this in my Style Sheet:

Although CSS-3's box-sizing property 
(see http://www.w3.org/TR/css3-userint#box-sizing)
addresses much of the problem, the following proposal may be
independently useful:

Expand the syntax of CSS to include DIMENSION-EXPRESSION, defined as


Thus allowing you to solve the liquid layout problem by specifying

  .index-class {width: 25%-22px; margin: 5px; padding: 6px; }
  .content-class {width: 75%-14px; margin: 3px; padding: 4px; }

1) Parsing a length would become more difficult; since I am not a
computer science kind of guy, I am not sure if they could be
parsed unambiguously.

2) I am not proposing a full expression language with parentheses
and multiplication/division/modulo operators; just addition and
subtraction. I believe this is sufficient to meet the needs of people
who want liquid layouts.

3) The proposal allows mixing of units with a straightforward and
clear syntax.

J. David Eisenberg
Received on Saturday, 3 March 2001 18:00:33 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:26:57 UTC