W3C home > Mailing lists > Public > www-style@w3.org > April 1996

Re: URLs in CSS

From: Scott E. Preece <preece@predator.urbana.mcd.mot.com>
Date: Thu, 11 Apr 1996 08:20:23 -0500
Message-Id: <199604111320.IAA08262@predator.urbana.mcd.mot.com>
To: howcome@w3.org
Cc: www-style@w3.org
From: Hakon Lie <howcome@w3.org>
|  
|  Several CSS properties take URL values. Up to now, URLs have been
|  identified with quotes. This works quite well for absolute links:
|  
|    BODY { background: "http://foo.com/png/marble" }
---

I would *strongly* urge that quotes have no special semantics beyond
grouping characters into a string - it's just too confusing.  You *need*
to have a way of unambiguously indicating that a sequenec of characters
is a single value, regardless of its context, and that should be what
quotes mean.

I'm pretty sure that's what the formal grammar says - that a
sequence of characters surrounded by quotes is a string.  The quotes
should never be visible to the parser at all - the lexer should have
used them to turn the surrounded characters into a token of type string.

---
|  Here are some suggestions for alternative schemes;
|  
|    BODY { background: [http://foo/bar] }
|    BODY { background: url:http://foo/bar }
|    BODY { background: href:red }
|    BODY { background: url:red }
|    BODY { background: url(red) }
|    BODY { background: url(http://foo/bar) }
---

I'd slightly prefer url(...) over href(...). It generalizes naturally to
explicitly indicating other units.  I would avoid using another colon,
just to make life easier for the parser.

---
|  Also, should the identification be optional for absolute URLs?:
|  
|    BODY { background: http://foo/bar } 
---

I guess I would require it wherever the syntax allows alternative units
that could be confused - that is, if you had a property whose value was
*always* a URL, it would be OK to omit it there, but it would be
required wheever the units alternatives left it open to interpretation.
While it's unlikely that the name of a color would be a string that
started "http:", it's quite possible that for some other property it
*would* be ambigous.  For instance, if you had a "Footer" property, you
would have no way of knowing whether "http://..." was meant to be a
string that would be printed in the footer or meant to be a URL where
the actual footer contents would be found.

scott

--
scott preece
motorola/mcg urbana design center	1101 e. university, urbana, il   61801
phone:	217-384-8589			  fax:	217-384-8550
internet mail:	preece@urbana.mcd.mot.com
Received on Thursday, 11 April 1996 09:19:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:53:44 GMT