Re: [css3-images] Using SVG Paint Servers as <image>

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 { ... }?


>> 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.


Can you clarify what you mean by coming full circle? Is this for or 
against your recent suggestion regarding element() also taking a url?


> 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.
>
> 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.
>
> Rob


I don't quite follow Roc. What behavior is the same when an element(id) 
and url(#id) are referring to the same element. To my understanding, 
this can only happen in a xmlns:svg document like in your example on 
your weblog [1].


As I follow (I have little knowledge of <canvas>), we can have this.


<style>
   h1 { background-image: element(two); }
   p { background-image: url(http://external.com/bucket.svg#bar); }
</style>


<h1 id="one">Heading</h1>
<p id="two">Paragraph</p>


Does this cross same-origin restrictions?



[1] http://weblogs.mozillazine.org/roc/archives/2008/07/svg_paint_serve.html



-- 
Alan Gresley
http://css-3d.org/
http://css-class.com/

Received on Thursday, 14 July 2011 12:15:45 UTC