- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 14 Jul 2011 13:55:26 -0700
- To: robert@ocallahan.org
- Cc: www-style list <www-style@w3.org>
On Wed, Jul 13, 2011 at 9:40 PM, Robert O'Callahan <robert@ocallahan.org> 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). Also, would this then mean that you could reference
>> arbitrary elements from external pages (presumably same-origin
>> restricted)?
>
> Yes, you can in Firefox at the moment.
>
> I've come full circle on this, in a way. I now think that unifying CSS
> images and SVG paint servers completely would be great, in which case since
> url(foo.svg#pattern) is a valid SVG paint server, it should also be a valid
> CSS image with the equivalent meaning. I had concerns about compatibility
> with other possible uses of fragment references for SVG images, and fallback
> behavior for browsers not supporting the feature, but unifying CSS images
> and SVG paint servers seems a big enough win to just go ahead.
Ah, good to hear. I'll proceed with my plans, then.
> I agree that for CSS images we can just have element(id) refer to the
> element with that id in the host document (or the anonymous element map). I
> think element(id) and url(#id) should behave the same whenever they refer to
> the same element.
Your last line is intriguing. Do you mean that, if you have a
document like this:
foo.svg
<svg>
<rect id=foo fill=blue />
</svg>
...that you could do url(foo.svg#foo) and get a blue rectangular image?
I'm not sure how that would work with non-rectangular elements. SVG
already has a good way to handle this, via the <view> element, as it
explicitly establishes a viewport. I'm somewhat more comfortable
limiting myself to just letting svg documents reference paint servers
and <view> elements directly.
Also, it would mean that doing url(foo.html#bar) means you have to
load up the linked document, running scripts/etc. as if you were
loading an iframe, before you were able to extract out the element.
Still slightly uncomfortable with this.
~TJ
Received on Thursday, 14 July 2011 20:56:16 UTC