Re: [css3-content] sizing of images inserted using the content property

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