- From: Bert Bos <bert@w3.org>
- Date: Mon, 31 Mar 2008 20:37:45 +0200
- To: W3C style mailing list <www-style@w3.org>
The values 'round' and 'space' for the 'background-repeat' property provide two different ways to ensure that a tiled background image is tiled a whole number of times. 'Round' does it by shrinking the image, 'space' by inserting space between the tiles. 'Space' is meant for images that should not be scaled and are fairly small compared to the element. But, of course, the specification must also define what happens if the image is large. The question is how. Let A be the width of the area and W>0 the width of the image. Then the number of times the image fits in the area is N = floor(A/W) and the amount of space we have to distribute is S = A - N*W. (There is a similar story for the height.) The interesting cases to look at are N = 0 and N = 1, but let's first look at the more typical case where N > 1. There are a few options: a) Fantasai and I decided (see ACTION-10[1]) that it looked best if the first and last images touched the edges. That way, the designer knows where those images are and can visually "attach" them to the border, or include transparent parts in the image to explicitly detach them from the border. In this option, there are N - 1 gaps between the tiles and each gap has a size of S/(N - 1). Clearly, this is undefined for N = 1. b) Another reasonable choice is to put half as much space at the edges as between the tiles. Thus there is S/N space between the tiles, and half that at the edges. The advantage is that this looks better if adjacent elements have the same size and are tiled with the same image. c) We can also put as much space at the edges as between the tiles. The space between the tiles is now S/(N + 1). This may look better if the image and the border are of similar visual strength. d) We can drop the keyword 'space' completely. The slight downscaling introduced by 'round' doesn't have to look ugly, if the UA uses a reasonable algorithm. Is option a indeed the best? Assuming option a, what happens if N = 1, i.e., there is only one tile? a1) The image is centered, i.e., either it touches both edges or it touches neither. a2) The image is put in the top left corner. a3) The image is placed according to 'background-position'. a4) The image is placed in a corner that depends on 'direction' and 'block-progression': tb rl lr ----------------------------------------- ltr top left top right top left rtl top right bottom right bottom left And for all three of a, b and c, what happens if N = 0, i.e., the image is wider than the area? 1) Show no image. 2) Show one image. The next question then is: how is it aligned? 3) Reduce the image in size (keeping aspect ratio) until N = 1. 4) As 1, but let the designer choose 3 by means of a new keyword 'space-round', which acts like 'space' when the image fits and like 'round' when it doesn't. [1] http://www.w3.org/Style/CSS/Tracker/actions/10 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 Monday, 31 March 2008 18:38:24 UTC