---Invalid assumption, see below.
--- | | EXAMPLE | ======= | Making up my own notation as an example (but borrowed heavily from | CSS1), let us assume that a name inside the STYLE attribute value that | is not followed by a colon is a style selector such as a style class or | style id. If the name is followed by a colon then it is a style | declaration element. Now let us assume that we have a general class | "corporate" and a subclass of "regulations" (defined in either the | STYLE element or in some LINKed style sheet) and we also want to modify | this paragraph where all text has a line through it (like a deleted | paragraph). With the current proposal we would (I think) have: | | <P CLASS="corporate.regulations" STYLE="text-decoration: line-through"> | This text should be rendered as deleted text.</P> | | If we remove the CLASS and ID attributes and simply have one STYLE | attribute whose contents is the responsibility of the style notation: | | <P STYLE="corporate.regulations; text-decoration: line-through"> | This text should be rendered as deleted text.</P>---Here's a counter-proposal:
Leave CLASS and ID alone, as orthogonal to this issue. Define the syntax of the STYLE attribute as:
{notation-part {(href-part)}:}{name-part}{+styling-part} ({} indicates that each of the three parts is optional).
The notation-part, if present, indicates the notation used in the styling-part and restricts the name resolution space for the name-part to stylesheets in the given notation. The optional href-part allows the author to indicate a specific stylesheet within which the name must be resolved.
The name-part is used to identify a style named in a stylesheet, using whatever name resolution mechanism the CSS ends up with; I assume it would include at least element names, class names, element.class. and context-specific strings of elements and classes (i.e., anything that could be in the selector part of a stylesheet entry).
The styling-part contains anything that could be in the declaration part of a stylesheet entry, including the surrounding brackets; the '+' is chosen to indicate that the styling is layered on what the rest of the specification says.
The example would be: <P STYLE="corporate.regulations + {text-decoration: line-through}"> This text should be rendered as deleted text.</P>
| | QUESTIONS | ========+ | 1) Can the style/CSS working group specify everything they want to | specify with regards to style with only three hooks in HTML? | a) LINK as described in the draft to access style sheets | b) a STYLE element for in-document style sheet specifications | c) a STYLE attribute on every element (and no CLASS or ID)
---I think you can do fine with just CLASS (and ID, which is a separate issue). If you add STYLE names, then you have to decide what to do when the same name can be either a CLASS or a STYLE; I think the namespaces can reasonably be combined.
--- | | 2) Is there some markup purpose OTHER than style for which the HTML | working group wants to introduce the new (not defined in RFC 1866) | attributes of CLASS and ID?---I believe the CLASS and ID attributes are useful for the purposes they were described as having in the HTML 3 draft - ID as a hyperlink head and CLASS as a way of specifying additional semantics of one of HTML's generic elements. As a long-time information retrieval person, I can say the ability to attach useful classes to information in the document is critical to high-precision searching (which is *NOT* what current HTML search enginces provide!). I think we will see that use grow (unless someone comes up with a good SGML browser and the high-content domains move out of HTML entirely).
I strongly believe CLASS and ID belong in the HTML spec, not in style-space. Their styling use is convenient and may be their most common short-term use, but HTML needs them regardless.
scott
-- scott preece motorola/mcg urbana design center 1101 e. university, urbana, il 61801 phone: 217-384-8589 fax: 217-384-8550 internet mail: [email protected]