- From: Eric A. Meyer <eric@meyerweb.com>
- Date: Thu, 14 Aug 2008 14:43:01 -0400
- To: www-style@w3.org
I noticed the CSS WG tweet about a proposed change to 'background-position' that would extend it to help define the origin corner of a tiled background image. Since I've occasionally agitated for this ability, and have bounced around a few ideas along those lines, I thought I'd bring up the topic here for more in-depth discussion. I find the ability to declare 'bottom 1em right 33%' to be very interesting, and it definitely meets the need. There's a smallish part of me, though, that feels like this is mixing two concepts: origin corner and offset. I do think there's a strong case to be made for mixing the two, since they're so closely related. Another possible solution with its own strengths is to leave 'background-position' at just declaring offsets, and redefine 'background-origin' so that it takes three keywords: two defining the corner, and one defining the "origin edge". So to get the origin point to be the top right padding edge, you would declare either of the following: background-origin: top right padding; background-origin: padding top right; That makes the value syntax something like (I left out the "in any order" magic symbols for clarity): [ [ top | bottom ] [ right | left ] ]? [ content | padding | border ]? ...and then do the comma voodoo to extend that to account for multiple background images. I guess that means defining the above pattern (or a cleaner version of same) to be 'bg-origin' and then defining the value for 'background-origin' to be '<bg-origin> [, <bg-origin>]*'. The default for 'bg-origin' would be 'top left padding' to reflect historical behavior. In order to disambiguate things ever so slightly, we could change 'content | padding | border' to 'content-edge | padding-edge | border-edge'. I'm not sure doing so really buys us anything worth obtaining, though. I had been thinking that a reason to take this approach would be to prevent backwards-compatibility problems, since 'background-position' with keywords mixed in will be ignored by old UAs, but then I realized that any page that uses more than one background image (thus invoking the comma-separated syntax) or that uses 'background-origin' to change the origin of even a single background image is going to confuse old UAs anyway. So the backward-compatibility argument has pretty much the same bearing either way. At this point I'd be just as happy with either one, but thought providing an alternate idea as a starting point for discussion might be helpful. -- Eric A. Meyer (eric@meyerweb.com) http://meyerweb.com/
Received on Thursday, 14 August 2008 18:43:46 UTC