- From: Christoph Päper <christoph.paeper@tu-clausthal.de>
- Date: Mon, 01 Nov 2004 15:51:17 +0100
- To: www-style@w3.org
Lachlan Hunt <lachlan.hunt@iinet.net.au>:
>
> http://ln.hixie.ch/?start=1098915335&count=1
>
>> Given the following hypothetical CSS3:
>> body { background: url(foo) url(bar); }
>> Which background is painted on the bottom, and which is painted on the
>> top?
"Foo" is on the top *and* bottom, "bar" at the right and left. That's
following the usual convention for shorthands ('padding', 'margin',
'border' etc.).
>> Should the syntax be like that, or would something else be better?
Definitely something else. (But what?)
>> body { background: url(foo), url(bar); }
That would mean "use "bar", if "foo" is unavailable or unsupported" in my
book, similar to 'font-family'.
>> body { background: url(foo) | url(bar); }
That's a new syntax and thus unambiguous, except that '|' usually means OR
or XOR. I guess '&' is disliked, because it had to be "escaped" if used
embedded into one of some markup languages (just like '<').
>> body { background: url(foo) and url(bar); }
I'd prefer a one-char designator. Some ASCII characters are still unused.
> I think the syntax does require a delimiter between images,
ACK.
> Each image needs to be able to be individually repeated, attached and
> positioned, so I think a syntax like this would be best.
Yes, but 'background-color' should be unique.
> body { background: url(foo) top left no-repeat fixed |
> url(bar) top right repeat-y scroll; }
I assume, this should be equivalent to
body {
background-image: url(foo) | url(bar);
background-position: top left | top right;
background-repeat: no-repeat | repeat-y;
background-attachment: fixed | scroll;
}
Maybe an approach to some degree inspired by the ceasing '@font-face'
could be an option:
@background {
name: foobar;
/* Somehow there must be a rule and sub-rulesets inside this at-rule.
*/
::entry(0) {background-image: url(foo); background-attachment: scroll;}
::entry(1) {background-image: url(bar); background-repeat: repeat-x;}
}
body {
background: "foobar" fixed red; /* or "#foobar" or "url(#foobar)" */
}
I'm not sure whether "foo" should be 'fixed' or not.
You can perhaps spare the 'background-' parts, i.e.
::entry(0) {image: url(foo); attachment: scroll;}
Font-facish would be "src: url(foo)".
Thinking about it, '::entry()' is almost like '::outside()', but limited
to appear inside [a] certain at-rule[s].
I wrote about virtual copies of a box once ('::copy()', '::instance()' or
'::box()'), but don't remember if that was on www-style. All copies would
inherit all rules from their base '::copy(0)' and thus cannot be
distinguished from that one, as long as there are no further rules. For
some applications it's not much different from the '::outside()' proposal
and could be used for multiple backgrounds as well, but it would also
allow for example repetition of navigation from the start at the end of a
page. I think, there were unresolved/unresolvable DOM issues, though.
Received on Monday, 1 November 2004 19:46:43 UTC