Re: [css3-background] background-shorthand and its background-clip side-effect

On Mar 4, 2010, at 12:49 PM, Sylvain Galineau wrote:

>> From: Brad Kemper [mailto:brad.kemper@gmail.com]
> 
>> On it's own it not too bad, but as a way to disambiguate between two
>> subproperties in in 'background' that take the same values, it is
>> inconsistent with any of the proposals to disambiguate <bg-position>
>> and <bg-size>.  I don't think this serves authors as well, ultimately,
>> who currently have no expectations of how this disambiguation should
>> occur.
> 
> I'm not sure I follow. Once both properties have the same set of values
> then isn't a well-defined sequence the only way to disambiguate them in
> shorthand short of including a functional notation ? You can come up with
> a different separator but you still have a define a sequence, no ?

Yes, the sequence order is still used to disambiguate, as I've said before, and which is why what I'm suggesting is not so much more hugely different or complicated. But with my way, it is the order with regard to a single reference point: the slash. So instead of reading each word of the shorthand to see which any of the four things are in, you can immediately pick out the slash and see which of two might be to its right and which of two might be to its left.

It was somewhat this way with /<bg-size>, but with the extra (unnecessary) restriction that the slash had to be right next to the <bg-size>. Now with 'as <bg-size>', that aspect is lost (it is now like more careful reading required, instead of like seeing in a glance which property values are where).

The other thing about my "well-defined sequence" is that the order of the sequence matters, but other values can be part of the sequence too, so there is less of a restriction.


> And if there are no expectations of how this should be done, then I would
> argue we should keep it as simple as possible. 

I do not see why the following is considered so much more complicated than what is already there. It is a small change that still allows you to specify <bg-position>/<bg-size> AND <bg-origin>/<bg-clip> the same as what was specced previously (with one small exception[1]), but with fewer restrictions on <bg-position>/<bg-size>, and a little more power for <bg-origin>/<bg-clip>:

Value:	[ <bg-layer> , ]* <final-bg-layer>

Where
	<bg-layer> = <bg-origin> || <bg-image> || <bg-position> || / || <bg-size> || <repeat-style> || <attachment> || <bg-clip> 
and 
	< final-bg-layer> = <bg-origin> || <bg-image> || <bg-position> || / || <bg-size> || <repeat-style> || <attachment> || <bg-clip>  || <'background-color'>

and where ‘<bg-size>’ or '<bg-clip>' can only occur somewhere after ‘/ ’ (and only when '/' is present), and '<bg-position>' or '<bg-origin>' cannot occur before '/'.


[1] The small exception is that you could no longer do /<bg-size> <bg-position> in that order, but you have much more freedom about where to place the slash. Thus, like <bg-origin>/<bg-clip>, the "well-defined sequence" is also used to disambiguate this pair too.

Received on Friday, 5 March 2010 16:22:56 UTC