- From: Bert Bos <bbos@mygale.inria.fr>
- Date: Tue, 8 Oct 1996 18:30:49 +0200 (MET DST)
- To: "Scott E. Preece" <preece@predator.urbana.mcd.mot.com>
- Cc: www-style@w3.org
Scott E. Preece writes:
> From: Hakon Lie <howcome@w3.org>
> |
> | > Also, the spec explicitly states that a simple selector can have only
> | > 1 class (in section 1.4), but I could find no such limit on the number of
> | > IDs per simple selector.
> | >
> | > Is that a purposeful omission (and simple selectors can have multiple
> | > IDs) or does the same limit apply to IDs (only 1 per simple selector)?
> |
> | The specific limitation for class values is there since the Cougar DTD
> | [1] suggests that the CLASS attribute value is a comma-separeated list
> | of values. CSS1 does not support this, and that's why we needed a
> | specific limitation. We're still debating if having more than one
> | class value makes sense. Feedback welcome.
> ---
>
> I have two concerns here:
>
> 1) I assume the statement "CSS1 does not support this." means that CSS1
> has no syntax for attaching multiple CLASSes to a selector, not that it
> fails to work on HTML elements that have multiple classes specified.
Right.
> I assume the class part of the simple selector matches whenever *any* of
> the classes attached to an element matches the class in the selector.
> For example, if there is a rule with the simple selector
> .rationale: {font-style: italic}
> that a paragraph tagged
> <P CLASS=abstract,rationale>
> would match that selector.
Also right.
> If CSS1 *did* support multiple class components in a simple selector,
> there would be two possible interpretations: that the classes were ANDed
> or that the classes were ORed. That is, a selector containing two
> classes could match only when *both* were present or whenever *either*
> was present. Even though, as Bert Bos pointed out in a separate note,
> you can get the equivalent of ORed classes by just repeating the rest of
> the selector, it would still be a notational convenience to support the
> shorthand form. I would suggest supporting
> .class&class... to indicate ANDed classes and
> .class|class... to indicate ORed classes
> Having gone that far, you might as well support complete logical
> expression syntax, allowing
> .(rational&abstract)|(interface&description&~exception)
It's not very readable anymore, but I agree that some form of logical
connectors might be useful. Especially the &, since it is not
expressible in any other way. How about
<P class="abstract,rationale">
P.abstract.rationale
(for CSS *after* level 1, of course.) This is a simple and readable
notation for the &-case. For the or-case we might be able to find
something with a comma.
> 2) My more serious concern is that Cougar has mis-specified the CLASS
> attribute. It says it's a comma-separated list of classes, but both the
> standards (i18n and tables) that include CLASS say it's a
> space-separated list of classes. This needs to be fixed in Cougar
> before people go off and implement it.
Actually, I think the comma is better, since it allows spaces in class
names. Cougar should explain that class names are separated by commas
and also `normalized', i.e., trailing whitespace is removed, all
sequences of whitespace are replaced by single spaces, and all letters
are case-insensitive.
Unfortunately, there are a number of these small incompatibilities
between the various specs that describe (part of) HTML. I don't know
exactly what to do about them. The royal way would be to issue new
RFCs, but it's a lot of work for things that are really only of minor
importance in those RFCs.
> ---
> |
> | For ID, noone have suggested it being more that an single value --
> | indeed, such a suggestion would defeat the purpose of ID. A
> | selector with more than one ID value would never select anything.
> ---
>
> Again, there are two possible meanings of having multiple values. It
> would make prefectly good sense to OR together IDs, but, as you note,
> not to AND them.
SGML doesn't allow multiple IDs on an element, so, unlike CLASS, there
is no need for logical connectors on IDs.
Bert
--
Bert Bos ( W 3 C ) http://www.w3.org/
http://www.w3.org/pub/WWW/People/Bos/ INRIA/W3C
bert@w3.org 2004 Rt des Lucioles / BP 93
+33 93 65 77 71 06902 Sophia Antipolis Cedex, France
Received on Tuesday, 8 October 1996 12:31:07 UTC