css-style-attr/Overview.src.html

Wed, 05 Jun 2013 18:07:44 -0700

author
Peter Linss <peter.linss@hp.com>
date
Wed, 05 Jun 2013 18:07:44 -0700
changeset 8357
4ce7b66b553a
parent 8243
4696787da066
child 8599
18bc8956c979
permissions
-rwxr-xr-x

[css-style-attr] add test annotations

fantasai@1564 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
fantasai@1564 2 <html lang="en">
fantasai@1564 3 <head>
fantasai@1564 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
tantek@1958 5 <title>CSS Style Attributes</title>
fantasai@4173 6 <link rel="stylesheet" type="text/css" href="../default.css">
fantasai@1563 7
fantasai@1564 8 <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED">
peter@8357 9 <script defer=defer
peter@8357 10 src="http://test.csswg.org/harness/annotate.js#CSS-STYLE-ATTR_DEV"
peter@8357 11 type="text/javascript"></script>
fantasai@1563 12 </head>
fantasai@1563 13
fantasai@1564 14 <div class="head">
fantasai@1564 15 <!--logo-->
fantasai@1563 16
tantek@1958 17 <h1>CSS Style Attributes</h1>
fantasai@1563 18
fantasai@1564 19 <h2 class="no-num no-toc">[LONGSTATUS] [DATE]</h2>
fantasai@1564 20 <dl>
fantasai@1564 21 <dt>This version:</dt>
tantek@1911 22 <!-- <dd><dd><a href="http://www.w3.org/TR/[YEAR]/WD-css-style-attr-[CDATE]/">http://www.w3.org/TR/[YEAR]/WD-css-style-attr-[CDATE]/</a></dd> -->
tantek@1911 23 <dd><a href="http://dev.w3.org/csswg/css-style-attr/">http://dev.w3.org/csswg/css-style-attr/</a>
tantek@1911 24 </dd>
fantasai@1564 25 <dt>Latest version:
fantasai@8243 26 <dd><a href="http://www.w3.org/TR/css-style-attr/">http://www.w3.org/TR/css-style-attr/</a>
fantasai@1564 27 <dt>Previous version:
tantek@1911 28 <dd><a href="http://www.w3.org/TR/2010/WD-css-style-attr-20100121/">http://www.w3.org/TR/2010/WD-css-style-attr-20100121/</a>
fantasai@7857 29 <dt>Feedback:
dbaron@7921 30 <dd><a href="mailto:www-style@w3.org?subject=%5Bcss-style-attr%5D%20feedback">www-style@w3.org</a>
fantasai@7857 31 with subject line &ldquo;<kbd>[css-style-attr] <var>&hellip; message topic &hellip;</var></kbd>&rdquo;
fantasai@7857 32 (<a rel="discussion" href="http://lists.w3.org/Archives/Public/www-style/">archives</a>)
tantek@1911 33 <dt>Editors:
tantek@1911 34 <dd class="vcard"><a lang="tr" class="fn url" href="http://tantek.com/">Tantek &Ccedil;elik</a>
fantasai@1989 35 (<span class="company role url">Invited Expert</span>,
fantasai@1989 36 formerly <a href="http://www.microsoft.com/">Microsoft Corporation</a>)
tantek@1911 37 &lt;<a class="email"
tantek@1911 38 href="mailto:tantek@cs.stanford.edu">tantek@cs.stanford.edu</a>&gt;
tantek@1911 39 </dd>
fantasai@1989 40 <dd class="vcard"><a class="fn n url" href="http://fantasai.inkedblade.net/contact"><span class="given-name">Elika</span> <abbr class="additional-name">J.</abbr> <span class="family-name">Etemad</span></a> (<span class="company role">Invited Expert</span>)
tantek@1911 41 </dd>
fantasai@1564 42 <dt>Previous Editors:
tantek@1911 43 <dd class="vcard"><a class="fn url" href="http://www.w3.org/People/Bos/">Bert Bos</a> (<a class="org" href="http://www.w3.org/">W3C</a>), &lt;<a class="email" href="mailto:bert@w3.org">bert@w3.org</a>&gt;
tantek@1911 44 </dd>
tantek@1911 45 <dd class="vcard"><span class="fn">Marc Attinasi</span> (<span class="org">AOL/Netscape</span>), &lt;<a class="email" href="mailto:attinasi@netscape.com">attinasi@netscape.com</a>&gt;
tantek@1911 46 </dd>
fantasai@1564 47 </dl>
fantasai@1564 48 <!--begin-copyright-->
fantasai@1564 49 <p>[Here will be included the file "../copyright.inc"]</p>
fantasai@1564 50 <!--end-copyright-->
fantasai@1563 51
fantasai@1563 52 <hr title="Separator for header">
fantasai@1563 53 </div>
fantasai@1563 54
fantasai@1563 55 <h2 class="no-num no-toc" id="abstract">Abstract</h2>
fantasai@1563 56
tantek@1958 57 <p>Markup languages such as HTML [[HTML401]] and SVG [[SVG11]] provide a style
fantasai@1655 58 attribute on most elements, to hold inline style information that applies
fantasai@1624 59 to those elements. One of the possible style sheet languages is CSS. This
fantasai@1624 60 draft describes the syntax and interpretation of the CSS fragment that can
tantek@1958 61 be used in such style attributes.
fantasai@1563 62
fantasai@1563 63 <h2 class="no-num no-toc" id="status">Status of this document</h2>
fantasai@1564 64 <!--status-->
fantasai@1953 65 <p>For this specification to exit the CR stage, the following conditions
fantasai@1953 66 shall be met:
fantasai@1953 67
fantasai@1953 68 <ol>
fantasai@1953 69 <li>
fantasai@1953 70 <p>There must be at least two interoperable implementations. For the
fantasai@1953 71 purposes of this criterion, we define the following terms:</p>
fantasai@1953 72
fantasai@1953 73 <dl>
fantasai@1953 74 <dt>interoperable
fantasai@1953 75
fantasai@1953 76 <dd>
fantasai@1953 77 <p>passing the respective test case(s) in the <a
fantasai@1953 78 href="http://www.w3.org/Style/CSS/Test/">CSS test suite</a>, or, if
fantasai@1953 79 the implementation is not a Web browser, an equivalent test. Every
fantasai@1953 80 relevant test in the test suite should have an equivalent test created
fantasai@1953 81 if such a user agent (UA) is to be used to claim interoperability. In
fantasai@1953 82 addition if such a UA is to be used to claim interoperability, then
fantasai@1953 83 there must one or more additional UAs which can also pass those
fantasai@1953 84 equivalent tests in the same way for the purpose of interoperability.
fantasai@1953 85 The equivalent tests must be made publicly available for the purposes
fantasai@1953 86 of peer review.</p>
fantasai@1953 87
fantasai@1953 88 <dt>implementation
fantasai@1953 89
fantasai@1953 90 <dd>
fantasai@1953 91 <p>a user agent which:</p>
fantasai@1953 92
fantasai@1953 93 <ol>
fantasai@1953 94 <li>implements the specification.
fantasai@1953 95
fantasai@1953 96 <li>is available (i.e. publicly downloadable or available through some
fantasai@1953 97 other public point of sale mechanism). This is the "show me"
fantasai@1953 98 requirement.
fantasai@1953 99
fantasai@1953 100 <li>is shipped, or is a "nightly build" (i.e., a development version
fantasai@1953 101 for the next release), but is not experimental (i.e., a version
fantasai@1953 102 specifically designed to pass the test suite and not intended for
fantasai@1953 103 daily usage going forward).
fantasai@1953 104 </ol>
fantasai@1953 105 </dl>
fantasai@1953 106
fantasai@1953 107 <li>
fantasai@1953 108 <p>A minimum of three months of the CR period must elapse. That
tantek@1958 109 is, this specification will not exit CR before (DATE OF PUBLICATION PLUS THREE MONTHS). When the
fantasai@1953 110 specification exits CR, an implementation report will be published. At
fantasai@1953 111 this point, no such report exists.</p>
fantasai@1953 112 </ol>
fantasai@1617 113
tantek@1958 114 <p>A CSS Style Attributes <a href="http://www.w3.org/Style/CSS/Test/">Test
fantasai@1617 115 Suite</a> will be developed during the Candidate Recommendation phase of
tantek@1958 116 this CSS Style Attributes specification.
fantasai@1563 117
fantasai@1564 118 <h2 class="no-num no-toc" id="contents">Table of contents</h2>
fantasai@1564 119 <!--toc-->
fantasai@1563 120
fantasai@1564 121 <h2 id="intro">Introduction</h2>
fantasai@1563 122
tantek@1958 123 <p>Some document formats have a <dfn>style attribute</dfn> to permit
fantasai@1610 124 the author to directly apply style information to specific elements
tantek@1958 125 in documents. If a document format defines a style attribute (whether named 'style' or something else) and the
fantasai@1624 126 attribute accepts CSS as its value, then this specification defines that
tantek@1958 127 <dfn>style attribute</dfn>&rsquo;s syntax and interpretation.
fantasai@1563 128
fantasai@1564 129 <div class="example">
fantasai@1564 130 <p>The following example shows the use of the <code>style</code> attribute
tantek@1911 131 in HTML [[HTML401]]:</p>
fantasai@1564 132 <pre>&lt;p style="<em>color: #090; line-height: 1.2</em>"&gt;...&lt;/p&gt;</pre>
fantasai@1564 133 </div>
fantasai@1563 134
fantasai@1565 135 <h2 id="conformance">Conformance</h2>
fantasai@1565 136
tantek@1958 137 <p>A document or implementation cannot conform to CSS Style Attributes alone, but can claim conformance to CSS Style Attributes
fantasai@1571 138 if it satisfies the conformance requirements in this specification when
tantek@1958 139 implementing CSS together with style attribute handling as defined in a
tantek@1958 140 document language that has one or more CSS style attributes.</p>
fantasai@1571 141
tantek@1958 142 <p>Conformance to CSS Style Attributes is defined for two
fantasai@1610 143 classes:
fantasai@1571 144 <dl>
fantasai@1571 145 <dt><dfn>document</dfn></dt>
tantek@1958 146 <dd>A document represented in a document language that defines a style
fantasai@1571 147 attribute for one or more of its elements.
fantasai@1571 148 <dt><dfn>interpreter</dfn></dt>
fantasai@1571 149 <dd>Someone or something that interprets the semantics of a document and
fantasai@1571 150 its associated style information.
fantasai@1571 151 (Most CSS <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">user
fantasai@1571 152 agents</a> fall under this category.)</dd>
fantasai@1571 153 </dl>
fantasai@1571 154
fantasai@1565 155 <p>The conformance requirements are expressed with a combination of
fantasai@1565 156 descriptive assertions and RFC 2119 terminology. The key words "MUST",
fantasai@1565 157 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
fantasai@1565 158 "RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this
fantasai@1565 159 document are to be interpreted as described in RFC 2119.
fantasai@1565 160 However, for readability, these words do not appear in all uppercase
fantasai@1565 161 letters in this specification. All of the text of this specification is
fantasai@1565 162 normative except sections explicitly marked as non-normative, examples,
fantasai@1565 163 and notes. [[!RFC2119]]</p>
fantasai@1565 164
fantasai@1565 165 <p>Examples in this specification are introduced with the words "for example"
fantasai@1565 166 or are set apart from the normative text with <code>class="example"</code>,
fantasai@1565 167 like this:
fantasai@1565 168
fantasai@1565 169 <div class="example">
fantasai@1565 170 <p>This is an example of an informative example.</p>
fantasai@1565 171 </div>
fantasai@1565 172
fantasai@1565 173 <p>Informative notes begin with the word "Note" and are set apart from the
fantasai@1565 174 normative text with <code>class="note"</code>, like this:
fantasai@1565 175
fantasai@1565 176 <p class="note">Note, this is an informative note.</p>
fantasai@1565 177
fantasai@1610 178 <h2 id="syntax">Syntax and Parsing</h2>
fantasai@1610 179
tantek@1958 180 <p>The value of the style attribute must match the syntax of the contents of
fantasai@1610 181 a CSS <a href="http://www.w3.org/TR/CSS21/syndata.html#rule-sets">declaration
fantasai@1915 182 block</a> (excluding the delimiting braces), whose formal grammar is given
fantasai@1915 183 below in the terms and conventions of the
fantasai@1616 184 <a href="http://www.w3.org/TR/CSS21/syndata.html#syntax">CSS core grammar</a>:
fantasai@1616 185
fantasai@1616 186 <pre>
fantasai@1616 187 declaration-list
fantasai@1619 188 : S* declaration? [ ';' S* declaration? ]*
fantasai@1616 189 ;
fantasai@1616 190 </pre>
fantasai@1616 191
fantasai@1616 192 <p class="note">Note that following the CSS2.1 convention, comment tokens
fantasai@1616 193 are not shown in the rule above.
fantasai@1616 194
tantek@1958 195 <p>The interpreter must parse the style attribute's value using the
fantasai@1610 196 same forward-compatible parsing rules that apply to parsing declaration block
fantasai@1610 197 contents in a normal CSS style sheet. See
fantasai@1610 198 <a href="http://www.w3.org/TR/CSS21/syndata.html">chapter 4 of the CSS2.1
fantasai@1616 199 specification</a> for details. [[!CSS21]]
fantasai@1610 200
fantasai@1610 201 <p class="note">Note that because there is no open brace delimiting the
tantek@1958 202 declaration list in the CSS style attribute syntax, a close brace
tantek@1958 203 (<code>}</code>) in the style attribute's value does not terminate the
fantasai@1610 204 style data: it is merely an invalid token.</p>
fantasai@1610 205
fantasai@1610 206 <h2 id="interpret">Cascading and Interpretation</h2>
fantasai@1610 207
tantek@1958 208 <p>The declarations in a style attribute apply to the element to which
fantasai@1656 209 the attribute belongs. In the cascade, these declarations are considered
fantasai@1656 210 to have author origin and a specificity higher than any selector.
fantasai@1656 211 CSS2.1 <a href="http://www.w3.org/TR/CSS21/cascade.html#specificity">defines</a>
tantek@1958 212 how style sheets and style attributes are cascaded together. [[!CSS21]]
tantek@1958 213 Relative URLs in the style data must be resolved relative to the style attribute's element (or to the document if per-element resolution is not
fantasai@1612 214 defined) when the attribute's value is parsed<!-- so dynamic changes to
fantasai@1612 215 the base URL don't affect the CSS ~Hixie -->.
fantasai@1610 216
tantek@1958 217 <p>Aside from the differences in cascading, the declarations in a style
fantasai@1610 218 attribute must be interpreted exactly as if they were given in a CSS
fantasai@1610 219 style rule that applies to the element.
fantasai@1610 220
fantasai@1610 221 <p>The CSS Working Group strongly recommends that document languages do
tantek@1958 222 not allow multiple CSS style attributes on a single element. If a document
tantek@1958 223 language allows multiple CSS style attributes, each must be parsed
fantasai@1610 224 independently and treated as a separate style rule, the ordering of which
fantasai@1610 225 should be defined by the document language, else is undefined.
fantasai@1610 226
fantasai@1564 227 <h2 id="ack">Acknowledgments</h2>
fantasai@1563 228
tantek@1912 229 <p>Thanks to feedback from <span class="vcard"><span class="fn">Daniel Glazman</span></span>, <span class="vcard"><span class="fn">Ian Hickson</span></span>, <span class="vcard"><span class="fn n"><span class="given-name">Eric</span> <abbr class="additional-name">A.</abbr> <span class="family-name">Meyer</span></span></span>,
tantek@1912 230 <span class="vcard"><span class="fn">Bj&ouml;rn H&ouml;hrmann</span></span>.
tantek@1912 231 </p>
fantasai@1563 232
fantasai@1564 233 <h2 id="references">References
fantasai@1563 234
fantasai@1564 235 <h3 class="no-num" id="normative-references">Normative references</h3>
fantasai@1563 236
fantasai@1564 237 <!--begin-normative-->
fantasai@1564 238 <p>[Here will be inserted the file "normative.inc"]</p>
fantasai@1564 239 <!--end-normative-->
fantasai@1563 240
fantasai@1564 241 <h3 class="no-num" id="informative-references">Informative references</h3>
fantasai@1563 242
fantasai@1564 243 <!--begin-informative-->
fantasai@1564 244 <p>[Here will be inserted the file "informative.inc"]</p>
fantasai@1564 245 <!--end-informative-->
fantasai@1563 246
fantasai@1563 247 </body>
fantasai@1563 248 </html>
fantasai@1563 249 <!-- Keep this comment at the end of the file
fantasai@1563 250 Local variables:
fantasai@1563 251 mode: sgml
fantasai@1563 252 sgml-declaration:"~/SGML/HTML4.decl"
fantasai@1563 253 sgml-default-doctype-name:"html"
fantasai@1563 254 sgml-minimize-attributes:t
fantasai@1563 255 sgml-nofill-elements:("pre" "style" "br")
fantasai@1563 256 End:
fantasai@1563 257 -->

mercurial