- From: L. David Baron <dbaron@dbaron.org>
- Date: Wed, 23 Nov 2011 08:34:41 -0800
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- Cc: www-style@w3.org
On Wednesday 2011-11-23 08:29 -0800, L. David Baron wrote: > On Monday 2011-11-21 08:19 -0500, Boris Zbarsky wrote: > > On 11/21/11 7:44 AM, Florian Rivoal wrote: > > >Section "8. Replaced content" says that when the content introduced by > > >content: is a single url, then the element or pseudo element is a > > >replaced element. > > > > This happens to not be compatible with what the "content" property > > does in CSS 2.1, for what it's worth.... > > I think you're misinterpreting what it says, or at least what it > intended to say (since I think there's a section missing... though > I'm having a bit of trouble reading the spec due to the obsoletion > notice). > > http://dev.w3.org/csswg/css3-content/#inserting-and-replacing-content-with-the > describes the value of 'content' as: > > [ [ <uri> | icon ] ‘,’ ]* [ normal | none | inhibit | <content-list> ] > > url() values can appear in two different places in this syntax: > before a "," or inside of <content-list>. When they appear before a > "," they are treated as a replaced element (as the spec describes). > When they appear inside of <content-list>, they are processed under > the CSS 2.1 model and are not a replaced element. (This bit is less > clear because some of the subsections under <content-list> appear to > be missing.) > > If 'content' contains a single url(), the only way to make the value > fit the grammar is by making that url() part of the <content-list> > production, in which case it is not treated as a replaced element. And, actually, the spec does say this explicitly, though it's inside the <uri> description at toplevel (whereas I think it might have been clearer to put the part about how it behaves in <content-list> inside of <content-list>, which is where I was incorrectly looking for it): # For URIs other than URIs in the last comma separated section of # the value, as those in the following example: # # h1 { content: url(header/mng), url(header/png), none; } # # ...then if the URI is available and the format is supported, then # the element or pseudo-element becomes a replaced element, # [...] # If the URI is part of the last comma separated value in the # list, as the second URI in the following example: # # h1 { content: url(welcome), "Welcome to: " url(logo); } # # ...then if the file is available and the format is supported, # then an anonymous replaced inline element is inserted, otherwise # the image is ignored (as if it hadn't been given at all). -David -- 𝄞 L. David Baron http://dbaron.org/ 𝄂 𝄢 Mozilla http://www.mozilla.org/ 𝄂
Received on Wednesday, 23 November 2011 16:35:21 UTC