- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 14 Jul 2011 13:47:57 -0700
- To: Alan Gresley <alan@css-class.com>
- Cc: robert@ocallahan.org, www-style list <www-style@w3.org>
On Thu, Jul 14, 2011 at 5:15 AM, Alan Gresley <alan@css-class.com> wrote: > On 14/07/2011 2:40 PM, Robert O'Callahan wrote: >> On Thu, Jul 14, 2011 at 1:13 PM, Tab Atkins >> Jr.<jackalmage@gmail.com>wrote: >>> Second, how should paint servers be referenced? In roc's old code, >>> you simply used url(), with the fragment pointing to the paint >>> server's id. More recently, though, roc has suggested using >>> element(), extending it to take a url. I'm not so much a fan of this >>> latter solution; for one, it's confusing to have both an idselector >>> and a url with a fragid, as they'll refer to different things - >>> element(#foo) refers to the element with id=foo in the host document, >>> while element("#foo") would refer to the element with id=foo in the >>> CSS document (which wouldn't refer to anything at all if the CSS was >>> external). > > > I don't follow Tab. A url string can be both (#foo) and ("#foo"). Are you > saying that the later can refer to an identifier in a CSS document like #foo > { ... }? Not quite. The url() function allows both quote and unquoted urls. I wasn't very clear in my message, but I'd only allow quoted urls if I allowed them in element() (because otherwise it's ambiguous with the other possible values). element(#foo) refers to the element with id=foo in the host document (like the HTML document that links to the CSS). url(#foo) refers to the element with id=foo in the current document. If that appears in an external CSS file, it obviously doesn't refer to anything, as CSS files don't have a DOM like that. If it appears inline in a <style> block, it would refer to the appropriate element in the document. ~TJ
Received on Thursday, 14 July 2011 20:48:47 UTC