W3C home > Mailing lists > Public > www-style@w3.org > July 2005

Re: Unitless dimensions

From: Bert Bos <bert@w3.org>
Date: Tue, 5 Jul 2005 20:53:41 +0200
To: Philip TAYLOR <P.Taylor@rhul.ac.uk>
Cc: www-style@w3.org
Message-Id: <200507052053.42160.bert@w3.org>

On Tuesday 05 July 2005 19:28, Philip TAYLOR wrote:
> There was a very informative message on this (or a related) list
> not too long ago describing what the author referred to (I think)
> as a "little-known feature" of CSS whereby unitless dimensions
> (possibly in certain contexts) behaved in a useful but generally
> little-understood way.  I've tried to track this behaviour down,
> but with no success.  If the original poster, or someone familiar
> with this area of CSS, could either clarify or point me at
> the relevant spec., I'd be most grateful.

I'm not sure what message that was, but there is one property in CSS1 
that allows both units and unitless numbers (line-height) and there is 
a proposal for two more in CSS3 (width & height).

'Line-height: 1.2em' means a line height of that much for the current 
element and *identical* height for any children that inherit the 
property. Thus:

    <div style="font-size: 12px; line-height: 1.2em">
      This text has a font size of 12px and a line height of 14.4px.
      <div style="font-size: 10px">
        This text has a font size of 10px, but the line height
        is still 14.4px.
      </div>
    </div>

On the other hand, 'line-height: 1.2' means that the proportion is 
inherited, not the absolute value:

    <div style="font-size: 12px; line-height: 1.2">
      This text has a font size of 12px and a line height of 14.4px.
      <div style="font-size: 10px">
        This text has a font size of 10px, and a line height
        of 12px.
      </div>
    </div>

Sometimes you want the children to keep the same absolute line-height, 
sometimes you want the children to have the same proportional 
line-height. By using units or not, you can choose.

The proposal in the CSS3 Box model is to allow 'width: 0.75' to mean 
0.75 times the intrinsic size. For example:

    <img src="..." alt="..." style="width: 10em">

makes an image of 10em wide, while

    <img src="..." alt="..." style="width: 0.75">

makes an image that is reduced to 75% of its original width.

I've also seen discussion of allowing unitless numbers on 'word-spacing' 
in CSS3. Currently, 'word-spacing' adds a specific amount to the normal 
spacing (for example, 'word-spacing: 0.5em'). 'Word-spacing: 1.5' could 
mean that the word spacing is increased to 1.5 times its normal value.

We're not making use of unitless numbers a lot, but it is for allowing 
things like this that CSS has never defined a "default" unit.



Bert
-- 
  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/people/bos                               W3C/ERCIM
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 (0)4 92 38 76 92            06902 Sophia Antipolis Cedex, France
Received on Tuesday, 5 July 2005 18:54:09 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:39 GMT