- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 11 Apr 2012 12:42:11 -0700
- To: "Kang-Hao (Kenny) Lu" <kennyluck@csail.mit.edu>
- Cc: WWW Style <www-style@w3.org>
On Wed, Apr 11, 2012 at 11:23 AM, Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu> wrote: > (12/04/12 1:36), Tab Atkins Jr. wrote: >> On Wed, Apr 11, 2012 at 5:36 AM, Kang-Hao (Kenny) Lu >> <kennyluck@csail.mit.edu> wrote: >>> The attr() section says >>> >>> # If the type is not valid for where the ‘attr()’ expression is >>> # placed, the whole ‘attr()’ expression is invalid. >>> >>> , and my interpretation of this sentence is that 'attr(<wqname> >>> integer)' cannot be used where <number> is expected. (This >>> interpretation might not match the intention of the person who wrote >>> this prose, but if that's the case I request this vagueness be >>> clarified. ) >> >> This is already handled - the definition of the <number> type says >> "either an integer, or ...". So an <integer> is a <number>. > > Then, as I said, I would like to request this be clarified. I swear I > didn't intend to come up with an interpretation that's just wrong (or > why did I write this long?). This is how I interpret the above sentence, > and of course, I did read the "either an integer, or ..." part. I can try to put a note somewhere or something, but I'm not sure how much clearer I can make it than "a number is an integer or this other thing". >>> The section of 'calc()' says >>> >>> # It can be used wherever <length>, <frequency>, <angle>, <time>, or >>> # <number> values are allowed. >>> >>> It seems that <integer> is intentionally left out. Why? If the reason is >>> "lack of use cases" then that applies to <number> too, I think. >> >> Same as above - integer is defined as a subtype of number. > > No, this is different. If 'calc()' can used at where <integer> is > expected, does > > # The value resulting from an expression must be clamped to the range > # allowed in the target context. > > mean the value is truncated? Specifically, what is the result of > > data:text/html,<style>:root::before { counter-reset: x calc(0.5); > content: counter(x);}</style> (unprefixed) > > ? I should note that both Firefox14a and IE9 drop these at the moment. Oh! I understand now. Yes, this is a problem. Hm. Logged. (Luckily, the calculation necessary to tell if a calc() returns an integer is basically the same as determining if a divide-by-0 happens, or what the resolved type is.) >> attr() can't be used in url() - "url(attr(foo))" parses as >> "baduri1:url(attr LEFT-PAREN IDENT RIGHT-PAREN RIGH-PAREN". We can't >> ever use *anything* in url() because of the parsing rules. url() is >> *fucked up*. > > This is relavant to [1] so I'll prefer we follow up there. > > [1] http://lists.w3.org/Archives/Public/www-style/2012Apr/0152 Ah, indeed. Of course, saying "you can only use attr() in url() if you escape at least one of the letter in 'url'" is pretty confusing. ^_^ Let's follow up in that other thread. ~TJ
Received on Wednesday, 11 April 2012 19:43:04 UTC