W3C home > Mailing lists > Public > www-style@w3.org > February 2014

Re: [css-counter-styles] About override loop

From: Xidorn Quan <quanxunzhen@gmail.com>
Date: Sat, 22 Feb 2014 12:45:38 +1100
Message-ID: <CAMdq69-j7oDcnXVXh7DpcfW_Mw+0O7_n-4vZOX-08wY0_akBpA@mail.gmail.com>
To: "Tab Atkins Jr." <jackalmage@gmail.com>
Cc: www-style list <www-style@w3.org>
On Sat, Feb 22, 2014 at 11:46 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> On Fri, Feb 21, 2014 at 2:26 PM, Xidorn Quan <quanxunzhen@gmail.com> wrote:
>> On Sat, Feb 22, 2014 at 8:33 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
>>> Is it easier to handle it in the way you suggest?  I would think it's
>>> easier to just detect a cycle and then adjust the internal 'system'
>>> value of all of the offending counter styles to override decimal
>>> instead.  Then there's no special behavior.
>>
>> Yes, I think it is easier to implement in the way I suggested. For
>> that way, recursive call can still be used with some tricks, like
>> temporarily specifying the overridden style to decimal, to avoid
>> infinite loop. But if all styles in loop has to be treated as
>> overriding decimal, it is necessary to add an explicit loop detection,
>> and a specific procedure for styles in cycle.
>>
>> In addition, I think doing a minimal failure is more intuitive, isn't it?
>
> Depends.  CSS walks a balancing act between failing minimally and
> failing usefully - if you try to be too smart in error-handling, it
> becomes harder to debug (as something *mostly* works right, except for
> some weird bits), and harder to extend in the future.
>
> That's why we simply reject properties that don't conform to their
> grammar, but reject *only* the property, not the whole rule or the
> whole stylesheet.  That's a good level of "ignoring" in practice.

Maybe it shouldn't be fully considered as an error. People may define
something like:

@counter-style a { system: override b; prefix: X; }
@counter-style b { system: override c; suffix: X; }
@counter-style c { system: override d; prefix: Y; }
@counter-style d { system: override a; suffix: Y; }

So they could have four different prefix-suffix pairs without writing
any descriptor twice. It doesn't seem to be very useful, but it might
probably sometimes make sense. I'm not sure :P

- Xidorn
Received on Saturday, 22 February 2014 01:46:45 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:39:19 UTC