Wed, 10 Oct 2012 16:53:12 -0700
[css3-conditional] Remove the issue about @import, and excise all mentions of the @document rule. The section is still maintained in a comment in the draft for now.
css3-conditional/Overview.html | file | annotate | diff | comparison | revisions | |
css3-conditional/Overview.src.html | file | annotate | diff | comparison | revisions |
1.1 --- a/css3-conditional/Overview.html Tue Oct 09 17:30:03 2012 -0700 1.2 +++ b/css3-conditional/Overview.html Wed Oct 10 16:53:12 2012 -0700 1.3 @@ -106,9 +106,8 @@ 1.4 rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, which builds on CSS level 1 1.5 <a href="#CSS1" rel=biblioentry>[CSS1]<!--{{CSS1}}--></a>. The main 1.6 extensions compared to level 2 are allowing nesting of certain at-rules 1.7 - inside ‘<code class=css>@media</code>’, the addition of the ‘<code 1.8 - class=css>@supports</code>’ and ‘<code class=css>@document</code>’ 1.9 - rules for conditional processing. 1.10 + inside ‘<code class=css>@media</code>’, and the addition of the 1.11 + ‘<code class=css>@supports</code>’ rule for conditional processing. 1.12 1.13 <h2 class="no-num no-toc" id=status>Status of this document</h2> 1.14 <!--begin-status--> 1.15 @@ -166,11 +165,15 @@ 1.16 1.17 <li>The support for functions inside of ‘<code 1.18 class=css>@supports</code>’ is at risk. 1.19 + </ul> 1.20 + <!-- 1.21 1.22 - <li>The ‘<code class=css>@document</code>’ rule is at risk; if 1.23 - interoperable implementations are not found, it may be removed to advance 1.24 - the other features in this specification to Proposed Recommendation. 1.25 - </ul> 1.26 + Things to go in level 4: 1.27 + 1.28 + * Create some way to put these new conditional things on an @import. 1.29 + * The @document rule (commented out, down below). 1.30 + 1.31 +--> 1.32 1.33 <h2 class="no-num no-toc" id=contents>Table of contents</h2> 1.34 <!--begin-toc--> 1.35 @@ -206,55 +209,49 @@ 1.36 </span>Definition of support</a> 1.37 </ul> 1.38 1.39 - <li><a href="#at-document"><span class=secno>7. </span>Document queries: 1.40 - the ‘<code class=css>@document</code>’ rule</a> 1.41 - 1.42 - <li><a href="#apis"><span class=secno>8. </span>APIs</a> 1.43 + <li><a href="#apis"><span class=secno>7. </span>APIs</a> 1.44 <ul class=toc> 1.45 - <li><a href="#extentions-to-cssrule-interface"><span class=secno>8.1. 1.46 + <li><a href="#extentions-to-cssrule-interface"><span class=secno>7.1. 1.47 </span> Extensions to the <code>CSSRule</code> interface</a> 1.48 1.49 - <li><a href="#the-cssgroupingrule-interface"><span class=secno>8.2. 1.50 + <li><a href="#the-cssgroupingrule-interface"><span class=secno>7.2. 1.51 </span> The <code>CSSGroupingRule</code> interface</a> 1.52 1.53 - <li><a href="#the-cssconditionrule-interface"><span class=secno>8.3. 1.54 + <li><a href="#the-cssconditionrule-interface"><span class=secno>7.3. 1.55 </span> The <code>CSSConditionRule</code> interface</a> 1.56 1.57 - <li><a href="#the-cssmediarule-interface"><span class=secno>8.4. </span> 1.58 + <li><a href="#the-cssmediarule-interface"><span class=secno>7.4. </span> 1.59 The <code>CSSMediaRule</code> interface</a> 1.60 1.61 - <li><a href="#the-csssupportsrule-interface"><span class=secno>8.5. 1.62 + <li><a href="#the-csssupportsrule-interface"><span class=secno>7.5. 1.63 </span> The <code>CSSSupportsRule</code> interface</a> 1.64 1.65 - <li><a href="#the-cssdocumentrule-interface"><span class=secno>8.6. 1.66 - </span> The <code>CSSDocumentRule</code> interface</a> 1.67 - 1.68 - <li><a href="#the-css-interface"><span class=secno>8.7. </span> The 1.69 + <li><a href="#the-css-interface"><span class=secno>7.6. </span> The 1.70 <code>CSS</code> interface, and the <code title="">supports()</code> 1.71 function</a> 1.72 </ul> 1.73 1.74 <li class=no-num><a href="#grammar">Grammar</a> 1.75 1.76 - <li><a href="#conformance"><span class=secno>9. </span>Conformance</a> 1.77 + <li><a href="#conformance"><span class=secno>8. </span>Conformance</a> 1.78 <ul class=toc> 1.79 - <li><a href="#base-modules"><span class=secno>9.1. </span>Base 1.80 + <li><a href="#base-modules"><span class=secno>8.1. </span>Base 1.81 Modules</a> 1.82 1.83 - <li><a href="#conformance-classes"><span class=secno>9.2. 1.84 + <li><a href="#conformance-classes"><span class=secno>8.2. 1.85 </span>Conformance Classes</a> 1.86 1.87 - <li><a href="#partial"><span class=secno>9.3. </span> Partial 1.88 + <li><a href="#partial"><span class=secno>8.3. </span> Partial 1.89 Implementations</a> 1.90 1.91 - <li><a href="#experimental"><span class=secno>9.4. </span>Experimental 1.92 + <li><a href="#experimental"><span class=secno>8.4. </span>Experimental 1.93 Implementations</a> 1.94 1.95 - <li><a href="#cr-exit-criteria"><span class=secno>9.5. </span>CR Exit 1.96 + <li><a href="#cr-exit-criteria"><span class=secno>8.5. </span>CR Exit 1.97 Criteria</a> 1.98 </ul> 1.99 1.100 - <li><a href="#changes"><span class=secno>10. </span> Changes</a> 1.101 + <li><a href="#changes"><span class=secno>9. </span> Changes</a> 1.102 1.103 <li class=no-num><a href="#acknowledgments">Acknowledgments</a> 1.104 1.105 @@ -293,9 +290,9 @@ 1.106 features involving @-rules with media specific style sheets within a 1.107 single style sheet. 1.108 1.109 - <p>This specification also defines additional types of conditional group 1.110 - rules, ‘<code class=css>@supports</code>’ and ‘<code 1.111 - class=css>@document</code>’, to address author and user requirements. 1.112 + <p>This specification also defines an additional type of conditional group 1.113 + rule, ‘<code class=css>@supports</code>’, to address author and user 1.114 + requirements. 1.115 1.116 <p>The ‘<code class=css>@supports</code>’ rule allows CSS to be 1.117 conditioned on implementation support for CSS properties and values. This 1.118 @@ -305,11 +302,6 @@ 1.119 mechanisms, and for other cases where a set of related styles needs to be 1.120 conditioned on property support. 1.121 1.122 - <p>The ‘<code class=css>@document</code>’ rule allows CSS to be 1.123 - conditioned on the page to which the style sheet is being applied. This 1.124 - allows users to apply styles to a particular page or group of pages, which 1.125 - greatly increases the power of user style sheets. 1.126 - 1.127 <h3 id=placement><span class=secno>1.2. </span>Module Interactions</h3> 1.128 1.129 <p>This module replaces and extends the ‘<code class=css>@media</code>’ 1.130 @@ -373,15 +365,6 @@ 1.131 1.132 <p>causes a particular CSS rule (making elements with ID "navigation" be 1.133 display:none) apply only when the style sheet is used for a print medium. 1.134 - Likewise, this CSS rule: 1.135 - 1.136 - <pre>@document url("http://www.example.com/") { 1.137 - #example1 { display: none } 1.138 -}</pre> 1.139 - 1.140 - <p>does the same type of conditional application, but using a different 1.141 - condition: whether the style sheet is being applied to the page 1.142 - <code>http://www.example.com/</code>. 1.143 </div> 1.144 1.145 <p>Each conditional group rule has a condition, which at any time evaluates 1.146 @@ -425,11 +408,6 @@ 1.147 <h2 id=contents-of><span class=secno>3. </span>Contents of conditional 1.148 group rules</h2> 1.149 1.150 - <p class=issue>There is also likely demand for using these conditions with 1.151 - ‘<code class=css>@import</code>’. We should see if we can come up with 1.152 - sensible syntax for that, perhaps functional notation at the end of the 1.153 - ‘<code class=css>@import</code>’ rule. 1.154 - 1.155 <p>The syntax of each conditional group rule consists of some syntax 1.156 specific to the type of rule followed by a <dfn id=group-rule-body>group 1.157 rule body</dfn>, which is a block (pair of braces) containing a sequence 1.158 @@ -448,7 +426,7 @@ 1.159 1.160 <pre>nested_statement 1.161 : ruleset | media | page | font_face_rule | keyframes_rule | 1.162 - supports_rule | document_rule 1.163 + supports_rule 1.164 ; 1.165 1.166 group_rule_body 1.167 @@ -461,9 +439,9 @@ 1.168 rel=biblioentry>[CSS3-FONTS]<!--{{!CSS3-FONTS}}--></a>, 1.169 <code>keyframes_rule</code> defined in <a href="#CSS3-ANIMATIONS" 1.170 rel=biblioentry>[CSS3-ANIMATIONS]<!--{{!CSS3-ANIMATIONS}}--></a>, and 1.171 - <code>media</code>, <a 1.172 - href="#supports_rule"><code>supports_rule</code></a> and 1.173 - <code>document_rule</code> defined in this specification. 1.174 + <code>media</code> and <a 1.175 + href="#supports_rule"><code>supports_rule</code></a> defined in this 1.176 + specification. 1.177 1.178 <p>In general, future CSS specifications that add new @-rules that are not 1.179 forbidden to occur after some other types of rules should modify this 1.180 @@ -852,245 +830,220 @@ 1.181 to compound values; implementations must implement all parts of the value 1.182 in order to consider the declaration supported, either inside a ruleset or 1.183 in the declaration condition of an ‘<code class=css>@supports</code>’ 1.184 - rule. 1.185 + rule.</p> 1.186 + <!-- 1.187 +<h2 id="at-document">Document queries: the '@document' rule</h2> 1.188 1.189 - <h2 id=at-document><span class=secno>7. </span>Document queries: the 1.190 - ‘<code class=css>@document</code>’ rule</h2> 1.191 +<p>The <dfn>'@document' rule</dfn> is a conditional group 1.192 +rule whose condition depends on the 1.193 +<a href="#url-of-doc">URL of the document being styled</a>. 1.194 +This allows style sheets, particularly user style sheets, to have styles 1.195 +that only apply to a set of pages rather than to all pages using the 1.196 +style sheet.</p> 1.197 1.198 - <p>The <dfn id=atdocument-rule>‘<code class=css>@document</code>’ 1.199 - rule</dfn> is a conditional group rule whose condition depends on the <a 1.200 - href="#url-of-doc">URL of the document being styled</a>. This allows style 1.201 - sheets, particularly user style sheets, to have styles that only apply to 1.202 - a set of pages rather than to all pages using the style sheet. 1.203 +<p class="issue">Given that this @-rule is intended primarily for user 1.204 +style sheets, what should this specification say about its use in author 1.205 +style sheets? Should it be forbidden? Should use instead be 1.206 +discouraged? Or should this specification remain neutral on the 1.207 +topic, since there are valid uses in author style sheets?</p> 1.208 1.209 - <p class=issue>Given that this @-rule is intended primarily for user style 1.210 - sheets, what should this specification say about its use in author style 1.211 - sheets? Should it be forbidden? Should use instead be discouraged? Or 1.212 - should this specification remain neutral on the topic, since there are 1.213 - valid uses in author style sheets? 1.214 +<p id="url-of-doc">The <dfn>URL of the document being styled</dfn> is 1.215 +the URI at which the document is located, excluding any fragment 1.216 +identifiers. (This means, for example, that HTTP redirects have been 1.217 +followed.) If the styles are being applied inside a complete document 1.218 +embedded into the presentation of another (e.g., [[HTML5]]'s <code 1.219 +class="html">iframe</code>, <code class="html">object</code>, or <code 1.220 +class="html">img</code> elements), the relevant URI is that of the 1.221 +frame, not of its container. However, if content from other documents 1.222 +is mixed in via mechanisms that mix content from one document into 1.223 +another (e.g., [[SVG11]]'s <code>use</code> element), then the 1.224 +address of the container document is used.</p> 1.225 1.226 - <p id=url-of-doc>The <dfn id=url-of-the-document-being-styled>URL of the 1.227 - document being styled</dfn> is the URI at which the document is located, 1.228 - excluding any fragment identifiers. (This means, for example, that HTTP 1.229 - redirects have been followed.) If the styles are being applied inside a 1.230 - complete document embedded into the presentation of another (e.g., <a 1.231 - href="#HTML5" rel=biblioentry>[HTML5]<!--{{HTML5}}--></a>'s <code 1.232 - class=html>iframe</code>, <code class=html>object</code>, or <code 1.233 - class=html>img</code> elements), the relevant URI is that of the frame, 1.234 - not of its container. However, if content from other documents is mixed in 1.235 - via mechanisms that mix content from one document into another (e.g., <a 1.236 - href="#SVG11" rel=biblioentry>[SVG11]<!--{{SVG11}}--></a>'s 1.237 - <code>use</code> element), then the address of the container document is 1.238 - used. 1.239 +<p class="note">Note: In [[HTML5]], this is the 1.240 +<a href="http://dev.w3.org/html5/spec/dom.html#documents">document's address</a> 1.241 +of a document in a 1.242 +<a href="http://dev.w3.org/html5/spec/browsers.html#browsing-context">browsing context</a>.</p> 1.243 1.244 - <p class=note>Note: In <a href="#HTML5" 1.245 - rel=biblioentry>[HTML5]<!--{{HTML5}}--></a>, this is the <a 1.246 - href="http://dev.w3.org/html5/spec/dom.html#documents">document's 1.247 - address</a> of a document in a <a 1.248 - href="http://dev.w3.org/html5/spec/browsers.html#browsing-context">browsing 1.249 - context</a>. 1.250 +<div class="issue">What form of normalization is done on URLs and domains 1.251 +before matching? In particular, this specification needs to describe: 1.252 +<ul> 1.253 +<li>what form is used for the <a href="#url-of-doc">URL of the document 1.254 +being styled</a> (and what has been normalized in that form)</li> 1.255 +<li>what normalization (if any) happens to the argument of each of the match 1.256 +functions before the comparison that they describe and</li> 1.257 +<li>whether the 1.258 +comparison algorithm used is string comparison or some other URL 1.259 +comparison algorithm.</li></ul></div> 1.260 1.261 - <div class=issue>What form of normalization is done on URLs and domains 1.262 - before matching? In particular, this specification needs to describe: 1.263 - <ul> 1.264 - <li>what form is used for the <a href="#url-of-doc">URL of the document 1.265 - being styled</a> (and what has been normalized in that form) 1.266 +<p>The '@document' rule's condition is written as a 1.267 +comma-separated list of <dfn>URL matching functions</dfn>, and the 1.268 +condition evaluates to true whenever any one of those functions 1.269 +evaluates to true. The following URL matching functions are 1.270 +permitted:</p> 1.271 1.272 - <li>what normalization (if any) happens to the argument of each of the 1.273 - match functions before the comparison that they describe and 1.274 +<dl> 1.275 + <dt><dfn id="url-exact" title="url()|URL matching functions::exact"><url></dfn></dt> 1.276 1.277 - <li>whether the comparison algorithm used is string comparison or some 1.278 - other URL comparison algorithm. 1.279 - </ul> 1.280 - </div> 1.281 + <dd> 1.282 + <p>The 'url()' function is the <dfn>exact url matching 1.283 + function</dfn>. It evaluates to true whenever the <a 1.284 + href="#url-of-doc">URL of the document being styled</a> is exactly 1.285 + the URL given.</p> 1.286 1.287 - <p>The ‘<code class=css>@document</code>’ rule's condition is written 1.288 - as a comma-separated list of <dfn id=url-matching-functions>URL matching 1.289 - functions</dfn>, and the condition evaluates to true whenever any one of 1.290 - those functions evaluates to true. The following URL matching functions 1.291 - are permitted: 1.292 + <p class="Note">The 'url()' function, since it is a core syntax 1.293 + element in CSS, is allowed (subject to different character 1.294 + limitations and thus escaping requirements) to contain an unquoted 1.295 + value (in addition to the string values that are allowed as 1.296 + arguments for all four functions).</p> 1.297 1.298 - <dl> 1.299 - <dt><dfn id=url-exact 1.300 - title="url()|URL matching functions::exact"><url></dfn> 1.301 - 1.302 - <dd> 1.303 - <p>The ‘<a href="#url-exact"><code class=css>url()</code></a>’ 1.304 - function is the <dfn id=exact-url-matching-function>exact url matching 1.305 - function</dfn>. It evaluates to true whenever the <a 1.306 - href="#url-of-doc">URL of the document being styled</a> is exactly the 1.307 - URL given. 1.308 - 1.309 - <p class=Note>The ‘<a href="#url-exact"><code 1.310 - class=css>url()</code></a>’ function, since it is a core syntax 1.311 - element in CSS, is allowed (subject to different character limitations 1.312 - and thus escaping requirements) to contain an unquoted value (in 1.313 - addition to the string values that are allowed as arguments for all four 1.314 - functions). 1.315 - 1.316 - <div class=example> 1.317 - <p>For example, this rule: 1.318 - 1.319 - <pre>@document url("http://www.w3.org/Style/CSS/") { 1.320 + <div class="example"> 1.321 + <p>For example, this rule:</p> 1.322 +<pre>@document url("http://www.w3.org/Style/CSS/") { 1.323 #summary { background: yellow; color: black} 1.324 }</pre> 1.325 + <p>styles the <code class="html">summary</code> element on the page 1.326 + <code>http://www.w3.org/Style/CSS/</code>, but not on any other 1.327 + pages.</p> 1.328 + </div> 1.329 + </dd> 1.330 1.331 - <p>styles the <code class=html>summary</code> element on the page 1.332 - <code>http://www.w3.org/Style/CSS/</code>, but not on any other pages. 1.333 - </div> 1.334 + <dt><dfn id="url-prefix" title="url-prefix()|URL matching functions::prefix">url-prefix(<string>)</dfn></dt> 1.335 1.336 - <dt><dfn id=url-prefix 1.337 - title="url-prefix()|URL matching functions::prefix">url-prefix(<string>)</dfn> 1.338 - 1.339 - <dd> 1.340 - <p>The ‘<a href="#url-prefix"><code 1.341 - class=css>url-prefix()</code></a>’ function is the <dfn 1.342 - id=url-prefix-matching-function>url prefix matching function</dfn>. It 1.343 - evaluates to true whenever the <a href="#url-of-doc">URL of the document 1.344 - being styled</a> has the argument to the function as an initial 1.345 - substring (which is true when the two strings are equal). When the 1.346 - argument is the empty string, it evaluates to true for all documents. 1.347 - 1.348 - <div class=example> 1.349 - <p>For example, this rule: 1.350 - 1.351 - <pre>@document url-prefix("http://www.w3.org/Style/CSS/") { 1.352 + <dd> 1.353 + <p>The 'url-prefix()' function is the <dfn>url prefix 1.354 + matching function</dfn>. It evaluates to true whenever the 1.355 + <a href="#url-of-doc">URL of the document being styled</a> 1.356 + has the argument to the function as an 1.357 + initial substring (which is true when the two strings are equal). 1.358 + When the argument is the empty string, it evaluates to true for all 1.359 + documents.</p> 1.360 + <div class="example"> 1.361 + <p>For example, this rule:</p> 1.362 +<pre>@document url-prefix("http://www.w3.org/Style/CSS/") { 1.363 #summary { background: yellow; color: black} 1.364 }</pre> 1.365 + <p>styles the <code class="html">summary</code> element on the page 1.366 + <code>http://www.w3.org/Style/CSS/</code> and on the page 1.367 + <code>http://www.w3.org/Style/CSS/Test</code>, but it does not 1.368 + affect the page <code>http://www.w3.org/</code> or the page 1.369 + <code>http://www.example.com/Style/CSS/</code>.</p> 1.370 + </div> 1.371 + </dd> 1.372 1.373 - <p>styles the <code class=html>summary</code> element on the page 1.374 - <code>http://www.w3.org/Style/CSS/</code> and on the page 1.375 - <code>http://www.w3.org/Style/CSS/Test</code>, but it does not affect 1.376 - the page <code>http://www.w3.org/</code> or the page 1.377 - <code>http://www.example.com/Style/CSS/</code>. 1.378 - </div> 1.379 + <dt><dfn id="url-domain" title="domain()|URL matching functions::domain">domain(<string>)</dfn></dt> 1.380 1.381 - <dt><dfn id=url-domain 1.382 - title="domain()|URL matching functions::domain">domain(<string>)</dfn> 1.383 - 1.384 - <dd> 1.385 - <p>The ‘<a href="#url-domain"><code class=css>domain()</code></a>’ 1.386 - function is the <dfn id=domain-matching-function>domain matching 1.387 - function</dfn>. It evaluates to true whenever the <a 1.388 - href="#url-of-doc">URL of the document being styled</a> has a host 1.389 - subcomponent (as defined in <a href="#URI" 1.390 - rel=biblioentry>[URI]<!--{{!URI}}--></a>) and that host subcomponent is 1.391 - exactly the argument to the ‘<a href="#url-domain"><code 1.392 - class=css>domain()</code></a>’ function or a final substring of the 1.393 - host component is a period (U+002E) immediately followed by the argument 1.394 - to the ‘<a href="#url-domain"><code class=css>domain()</code></a>’ 1.395 - function. 1.396 - 1.397 - <div class=example> 1.398 - <p>For example, this rule: 1.399 - 1.400 - <pre>@document domain("w3.org") { 1.401 + <dd> 1.402 + <p>The 'domain()' function is the <dfn>domain 1.403 + matching function</dfn>. It evaluates to true whenever 1.404 + the <a href="#url-of-doc">URL of the document being styled</a> 1.405 + has a host subcomponent (as defined in [[!URI]]) 1.406 + and that host subcomponent is exactly the argument to the 1.407 + 'domain()' function or a final substring of the host 1.408 + component is a period (U+002E) immediately followed by the argument 1.409 + to the 'domain()' function.</p> 1.410 + <div class="example"> 1.411 + <p>For example, this rule:</p> 1.412 +<pre>@document domain("w3.org") { 1.413 body { font-size: 16px ! important } 1.414 }</pre> 1.415 - 1.416 - <p>changes the font size of the body element for pages such as 1.417 + <p>changes the font size of the body element for pages such as 1.418 <code>http://www.w3.org/Style/CSS/</code> and 1.419 <code>http://w3.org/Style/CSS/</code> and 1.420 - <code>http://lists.w3.org/Archives/Public/www-style/</code> but it does 1.421 - not affect the page <code>http://www.example.com/Style/CSS/</code>. 1.422 + <code>http://lists.w3.org/Archives/Public/www-style/</code> 1.423 + but it does not affect the page 1.424 + <code>http://www.example.com/Style/CSS/</code>.</p> 1.425 </div> 1.426 + </dd> 1.427 1.428 - <dt><dfn id=url-regexp 1.429 - title="regexp()|URL matching functions::regular expression">regexp(<string>)</dfn> 1.430 + <dt><dfn id="url-regexp" title="regexp()|URL matching functions::regular expression">regexp(<string>)</dfn></dt> 1.431 1.432 - <dd> 1.433 + <dd> 1.434 <p>The contents of the <string> argument <strong>must</strong> 1.435 - match the JavaScript <code>Pattern</code> production (<a 1.436 - href="#ECMA-262-5.1" 1.437 - rel=biblioentry>[ECMA-262-5.1]<!--{{!ECMA-262-5.1}}--></a>, section 1.438 - 15.10.1). However, failing to do so is not a CSS syntax error and does 1.439 - not trigger any error handling for CSS syntax errors. 1.440 + match the JavaScript <code>Pattern</code> production 1.441 + ([[!ECMA-262-5.1]], section 15.10.1). However, 1.442 + failing to do so is not a CSS syntax error and does not trigger any 1.443 + error handling for CSS syntax errors.</p> 1.444 1.445 - <p>The ‘<a href="#url-regexp"><code class=css>regexp()</code></a>’ 1.446 - function evaluates to true whenever the string argument compiled as a 1.447 - JavaScript regular expression with the <code>global</code>, 1.448 - <code>ignoreCase</code> and <code>multiline</code> flags 1.449 - <em>disabled</em> (see <a href="#ECMA-262-5.1" 1.450 - rel=biblioentry>[ECMA-262-5.1]<!--{{!ECMA-262-5.1}}--></a>, sections 1.451 - 15.10.7.2 through 15.10.7.4) compiles successfully and the resulting 1.452 - regular expression matches the entirety of the <a href="#url-of-doc">URL 1.453 - of the document being styled</a>. 1.454 + <p>The ''regexp()'' function evaluates to true whenever the string 1.455 + argument compiled as a JavaScript regular expression with the 1.456 + <code>global</code>, <code>ignoreCase</code> and 1.457 + <code>multiline</code> flags <em>disabled</em> 1.458 + (see [[!ECMA-262-5.1]], sections 15.10.7.2 through 15.10.7.4) 1.459 + compiles successfully and the resulting regular expression matches 1.460 + the entirety of the 1.461 + <a href="#url-of-doc">URL of the document being styled</a>.</p> 1.462 1.463 - <p class=note>Note that regular expression must match the entire URL, not 1.464 - just a part of it. 1.465 + <p class="note">Note that regular expression must match the entire 1.466 + URL, not just a part of it.</p> 1.467 1.468 - <p class=note>Note that this definition intentionally matches the 1.469 - behavior of the <a 1.470 - href="http://dev.w3.org/html5/spec/common-input-element-attributes.html#attr-input-pattern"><code 1.471 - class=html>pattern</code> attribute</a> on the <code 1.472 - class=html>input</code> element in <a href="#HTML5" 1.473 - rel=biblioentry>[HTML5]<!--{{HTML5}}--></a>. 1.474 + <p class="note">Note that this definition intentionally matches the 1.475 + behavior of the <a 1.476 + href="http://dev.w3.org/html5/spec/common-input-element-attributes.html#attr-input-pattern"><code class="html">pattern</code> 1.477 + attribute</a> on the <code class="html">input</code> element 1.478 + in [[HTML5]].</p> 1.479 1.480 - <div class=example> 1.481 - <p>For example, this rule: 1.482 - 1.483 - <pre>@document regexp("http://www.w3.org/TR/\\d{4}/[^/]*-CSS2-\\d{8}/") { 1.484 + <div class="example"> 1.485 + <p>For example, this rule:</p> 1.486 +<pre>@document regexp("http://www.w3.org/TR/\\d{4}/[^/]*-CSS2-\\d{8}/") { 1.487 body { font-size: 20px ! important } 1.488 }</pre> 1.489 + <p>changes the font size of the body element for pages such as 1.490 + <code>http://www.w3.org/TR/2011/PR-CSS2-20110412/</code>.</p> 1.491 + <p class="note">Note that the backslashes in the regular 1.492 + expression require CSS escaping as ''\\''.</p> 1.493 + </div> 1.494 + </dd> 1.495 1.496 - <p>changes the font size of the body element for pages such as 1.497 - <code>http://www.w3.org/TR/2011/PR-CSS2-20110412/</code>. 1.498 +</dl> 1.499 1.500 - <p class=note>Note that the backslashes in the regular expression 1.501 - require CSS escaping as ‘<code class=css>\\</code>’. 1.502 - </div> 1.503 - </dl> 1.504 +<p>Implementations <strong>must</strong> treat any unknown URL matching 1.505 +functions as a syntax error, and thus ignore the '@document' rule. 1.506 +<span class="issue">Should we instead have more complicated error 1.507 +handling rules to make forward-compatibility work differently, or is 1.508 +this rule the best solution for such future expansion anyway?</span></p> 1.509 1.510 - <p>Implementations <strong>must</strong> treat any unknown URL matching 1.511 - functions as a syntax error, and thus ignore the ‘<code 1.512 - class=css>@document</code>’ rule. <span class=issue>Should we instead 1.513 - have more complicated error handling rules to make forward-compatibility 1.514 - work differently, or is this rule the best solution for such future 1.515 - expansion anyway?</span> 1.516 +<div class="issue">This syntax doesn't offer any ability to do negations, 1.517 +which has been requested in <a 1.518 +href="https://bugzilla.mozilla.org/show_bug.cgi?id=349813">Mozilla bug 1.519 +349813</a>. Use cases that people have wanted negations for 1.520 +include: 1.521 +<ul> 1.522 + <li>User style sheets that want a particular rule in general, but know 1.523 + that that rule does more harm than good on specific sites.</li> 1.524 + <li>Authors who have a rule that they want to apply to most of their 1.525 + pages, but wish to make a few exceptions for.</li> 1.526 +</ul> 1.527 +</div> 1.528 1.529 - <div class=issue>This syntax doesn't offer any ability to do negations, 1.530 - which has been requested in <a 1.531 - href="https://bugzilla.mozilla.org/show_bug.cgi?id=349813">Mozilla bug 1.532 - 349813</a>. Use cases that people have wanted negations for include: 1.533 - <ul> 1.534 - <li>User style sheets that want a particular rule in general, but know 1.535 - that that rule does more harm than good on specific sites. 1.536 - 1.537 - <li>Authors who have a rule that they want to apply to most of their 1.538 - pages, but wish to make a few exceptions for. 1.539 - </ul> 1.540 - </div> 1.541 - 1.542 - <p>This extends the lexical scanner in the <a 1.543 - href="http://www.w3.org/TR/CSS21/grammar.html">Grammar of CSS 2.1</a> (<a 1.544 - href="#CSS21" rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>, Appendix G) by 1.545 - adding: 1.546 - 1.547 - <pre>@{D}{O}{C}{U}{M}{E}{N}{T} {return DOCUMENT_SYM;}</pre> 1.548 - 1.549 - <p>and the grammar by adding 1.550 - 1.551 - <pre>document_rule 1.552 +<p>This extends the lexical scanner in the 1.553 +<a href="http://www.w3.org/TR/CSS21/grammar.html">Grammar of CSS 2.1</a> 1.554 +([[!CSS21]], Appendix G) by adding: 1.555 +<pre>@{D}{O}{C}{U}{M}{E}{N}{T} {return DOCUMENT_SYM;}</pre> 1.556 +<p>and the grammar by adding</p> 1.557 +<pre>document_rule 1.558 : DOCUMENT_SYM S+ url_match_fn ( "," S* url_match_fn )* group_rule_body 1.559 ; 1.560 1.561 url_match_fn 1.562 : (URI | FUNCTION S* STRING S* ')' ) S* 1.563 ;</pre> 1.564 +--> 1.565 1.566 - <h2 id=apis><span class=secno>8. </span>APIs</h2> 1.567 + <h2 id=apis><span class=secno>7. </span>APIs</h2> 1.568 1.569 - <h3 id=extentions-to-cssrule-interface><span class=secno>8.1. </span> 1.570 + <h3 id=extentions-to-cssrule-interface><span class=secno>7.1. </span> 1.571 Extensions to the <code>CSSRule</code> interface</h3> 1.572 1.573 <p>The <code>CSSRule</code> interface is extended as follows: 1.574 1.575 <pre class=idl>partial interface CSSRule { 1.576 const unsigned short SUPPORTS_RULE = 12; 1.577 + <!-- 1.578 const unsigned short DOCUMENT_RULE = 13; 1.579 + --> 1.580 }</pre> 1.581 1.582 - <h3 id=the-cssgroupingrule-interface><span class=secno>8.2. </span> The <a 1.583 + <h3 id=the-cssgroupingrule-interface><span class=secno>7.2. </span> The <a 1.584 href="#cssgroupingrule"><code>CSSGroupingRule</code></a> interface</h3> 1.585 1.586 <p>The <dfn id=cssgroupingrule><code>CSSGroupingRule</code></dfn> interface 1.587 @@ -1125,7 +1078,7 @@ 1.588 CSS rule list returned by <code>cssRules</code> at <var>index</var>. 1.589 </dl> 1.590 1.591 - <h3 id=the-cssconditionrule-interface><span class=secno>8.3. </span> The <a 1.592 + <h3 id=the-cssconditionrule-interface><span class=secno>7.3. </span> The <a 1.593 href="#cssconditionrule"><code>CSSConditionRule</code></a> interface</h3> 1.594 1.595 <p>The <dfn id=cssconditionrule><code>CSSConditionRule</code></dfn> 1.596 @@ -1166,7 +1119,7 @@ 1.597 </ol> 1.598 </dl> 1.599 1.600 - <h3 id=the-cssmediarule-interface><span class=secno>8.4. </span> The <a 1.601 + <h3 id=the-cssmediarule-interface><span class=secno>7.4. </span> The <a 1.602 href="#cssmediarule"><code>CSSMediaRule</code></a> interface</h3> 1.603 1.604 <p>The <dfn id=cssmediarule><code>CSSMediaRule</code></dfn> interface 1.605 @@ -1193,7 +1146,7 @@ 1.606 <code>media.mediaText</code> attribute on the rule. 1.607 </dl> 1.608 1.609 - <h3 id=the-csssupportsrule-interface><span class=secno>8.5. </span> The <a 1.610 + <h3 id=the-csssupportsrule-interface><span class=secno>7.5. </span> The <a 1.611 href="#csssupportsrule"><code>CSSSupportsRule</code></a> interface</h3> 1.612 1.613 <p>The <dfn id=csssupportsrule><code>CSSSupportsRule</code></dfn> interface 1.614 @@ -1201,17 +1154,17 @@ 1.615 1.616 <pre class=idl>interface CSSSupportsRule : CSSConditionRule { 1.617 }</pre> 1.618 + <!-- 1.619 +<h3 id="the-cssdocumentrule-interface"> 1.620 +The <code>CSSDocumentRule</code> interface</h3> 1.621 1.622 - <h3 id=the-cssdocumentrule-interface><span class=secno>8.6. </span> The <a 1.623 - href="#cssdocumentrule"><code>CSSDocumentRule</code></a> interface</h3> 1.624 +<p>The <dfn><code>CSSDocumentRule</code></dfn> interface represents a ''@document'' rule.</p> 1.625 1.626 - <p>The <dfn id=cssdocumentrule><code>CSSDocumentRule</code></dfn> interface 1.627 - represents a ‘<code class=css>@document</code>’ rule. 1.628 +<pre class='idl'>interface CSSDocumentRule : CSSConditionRule { 1.629 +}</pre> 1.630 +--> 1.631 1.632 - <pre class=idl>interface CSSDocumentRule : CSSConditionRule { 1.633 -}</pre> 1.634 - 1.635 - <h3 id=the-css-interface><span class=secno>8.7. </span> The <a 1.636 + <h3 id=the-css-interface><span class=secno>7.6. </span> The <a 1.637 href="#CSS-interface"><code>CSS</code></a> interface, and the <code 1.638 title="">supports()</code> function</h3> 1.639 1.640 @@ -1252,12 +1205,11 @@ 1.641 the <code>media</code> production defined in <a href="#CSS21" 1.642 rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a> with the <code>media</code> 1.643 production defined in this one, and additionally inserting <code>| 1.644 - supports_rule | document_rule</code> alongside <code>ruleset | media | 1.645 - page</code>. 1.646 + supports_rule</code> alongside <code>ruleset | media | page</code>. 1.647 1.648 - <h2 id=conformance><span class=secno>9. </span>Conformance</h2> 1.649 + <h2 id=conformance><span class=secno>8. </span>Conformance</h2> 1.650 1.651 - <h3 id=base-modules><span class=secno>9.1. </span>Base Modules</h3> 1.652 + <h3 id=base-modules><span class=secno>8.1. </span>Base Modules</h3> 1.653 1.654 <p>This specification defines conformance in terms of base modules, which 1.655 are modules that this specification builds on top of. The base modules of 1.656 @@ -1290,7 +1242,7 @@ 1.657 such syntax does not make a style sheet nonconformant and failure to treat 1.658 such syntax as invalid does not make a processor nonconformant. 1.659 1.660 - <h3 id=conformance-classes><span class=secno>9.2. </span>Conformance 1.661 + <h3 id=conformance-classes><span class=secno>8.2. </span>Conformance 1.662 Classes</h3> 1.663 1.664 <p>Conformance to the CSS Conditional Rules Module is defined for three 1.665 @@ -1335,7 +1287,7 @@ 1.666 it writes style sheets that conform to the module and (if it reads CSS) it 1.667 is a conformant processor. 1.668 1.669 - <h3 id=partial><span class=secno>9.3. </span> Partial Implementations</h3> 1.670 + <h3 id=partial><span class=secno>8.3. </span> Partial Implementations</h3> 1.671 1.672 <p>So that authors can exploit the forward-compatible parsing rules to 1.673 assign fallback values, CSS renderers <strong>must</strong> treat as 1.674 @@ -1349,7 +1301,7 @@ 1.675 unsupported values must be), CSS requires that the entire declaration be 1.676 ignored. 1.677 1.678 - <h3 id=experimental><span class=secno>9.4. </span>Experimental 1.679 + <h3 id=experimental><span class=secno>8.4. </span>Experimental 1.680 Implementations</h3> 1.681 1.682 <p>To avoid clashes with future CSS features, the CSS specifications 1.683 @@ -1363,7 +1315,7 @@ 1.684 should implement the non-prefixed syntax for any feature they consider to 1.685 be correctly implemented according to spec. 1.686 1.687 - <h3 id=cr-exit-criteria><span class=secno>9.5. </span>CR Exit Criteria</h3> 1.688 + <h3 id=cr-exit-criteria><span class=secno>8.5. </span>CR Exit Criteria</h3> 1.689 1.690 <p>For this specification to be advanced to Proposed Recommendation, there 1.691 must be at least two independent, interoperable implementations of each 1.692 @@ -1411,7 +1363,7 @@ 1.693 <p>The specification will remain Candidate Recommendation for at least six 1.694 months. 1.695 1.696 - <h2 id=changes><span class=secno>10. </span> Changes</h2> 1.697 + <h2 id=changes><span class=secno>9. </span> Changes</h2> 1.698 1.699 <p>The following (non-editorial) changes were made to this specification 1.700 since the <a 1.701 @@ -1476,16 +1428,6 @@ 1.702 </dd> 1.703 <!----> 1.704 1.705 - <dt id=ECMA-262-5.1>[ECMA-262-5.1] 1.706 - 1.707 - <dd><a 1.708 - href="http://www.ecma-international.org/publications/standards/Ecma-262.htm"><cite>ECMAScript 1.709 - Language Specification, Edition 5.1.</cite></a> June 2011. ISO/IEC 1.710 - 16262:2011. URL: <a 1.711 - href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">http://www.ecma-international.org/publications/standards/Ecma-262.htm</a> 1.712 - </dd> 1.713 - <!----> 1.714 - 1.715 <dt id=MEDIAQ>[MEDIAQ] 1.716 1.717 <dd>Florian Rivoal. <a 1.718 @@ -1503,16 +1445,6 @@ 1.719 href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a> 1.720 </dd> 1.721 <!----> 1.722 - 1.723 - <dt id=URI>[URI] 1.724 - 1.725 - <dd>T. Berners-Lee; R. Fielding; L. Masinter. <a 1.726 - href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource 1.727 - Identifiers (URI): generic syntax.</cite></a> January 2005. Internet RFC 1.728 - 3986. URL: <a 1.729 - href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a> 1.730 - </dd> 1.731 - <!----> 1.732 </dl> 1.733 <!--end-normative--> 1.734 1.735 @@ -1543,25 +1475,6 @@ 1.736 href="http://www.w3.org/TR/2012/WD-css3-transitions-20120403/">http://www.w3.org/TR/2012/WD-css3-transitions-20120403/</a> 1.737 </dd> 1.738 <!----> 1.739 - 1.740 - <dt id=HTML5>[HTML5] 1.741 - 1.742 - <dd>Ian Hickson. <a 1.743 - href="http://www.w3.org/TR/2011/WD-html5-20110525/"><cite>HTML5.</cite></a> 1.744 - 25 May 2011. W3C Working Draft. (Work in progress.) URL: <a 1.745 - href="http://www.w3.org/TR/2011/WD-html5-20110525/">http://www.w3.org/TR/2011/WD-html5-20110525/</a> 1.746 - </dd> 1.747 - <!----> 1.748 - 1.749 - <dt id=SVG11>[SVG11] 1.750 - 1.751 - <dd>Erik Dahlström; et al. <a 1.752 - href="http://www.w3.org/TR/2011/REC-SVG11-20110816/"><cite>Scalable 1.753 - Vector Graphics (SVG) 1.1 (Second Edition).</cite></a> 16 August 2011. 1.754 - W3C Recommendation. URL: <a 1.755 - href="http://www.w3.org/TR/2011/REC-SVG11-20110816/">http://www.w3.org/TR/2011/REC-SVG11-20110816/</a> 1.756 - </dd> 1.757 - <!----> 1.758 </dl> 1.759 <!--end-informative--> 1.760 1.761 @@ -1575,44 +1488,29 @@ 1.762 <li>conformance 1.763 <ul> 1.764 <li>authoring tool, <a href="#conform-authoring-tool" 1.765 - title="conformance, authoring tool"><strong>9.2.</strong></a> 1.766 + title="conformance, authoring tool"><strong>8.2.</strong></a> 1.767 1.768 <li>processor, <a href="#conform-processor" 1.769 - title="conformance, processor"><strong>9.2.</strong></a> 1.770 + title="conformance, processor"><strong>8.2.</strong></a> 1.771 1.772 <li>style sheet, <a href="#conform-style-sheet" 1.773 - title="conformance, style sheet"><strong>9.2.</strong></a> 1.774 + title="conformance, style sheet"><strong>8.2.</strong></a> 1.775 </ul> 1.776 1.777 <li><a href="#CSS-interface"><code>CSS</code></a>, <a 1.778 - href="#CSS-interface" title=CSS><strong>8.7.</strong></a> 1.779 + href="#CSS-interface" title=CSS><strong>7.6.</strong></a> 1.780 1.781 <li><a href="#cssconditionrule"><code>CSSConditionRule</code></a>, <a 1.782 - href="#cssconditionrule" title=CSSConditionRule><strong>8.3.</strong></a> 1.783 - 1.784 - <li><a href="#cssdocumentrule"><code>CSSDocumentRule</code></a>, <a 1.785 - href="#cssdocumentrule" title=CSSDocumentRule><strong>8.6.</strong></a> 1.786 + href="#cssconditionrule" title=CSSConditionRule><strong>7.3.</strong></a> 1.787 1.788 <li><a href="#cssgroupingrule"><code>CSSGroupingRule</code></a>, <a 1.789 - href="#cssgroupingrule" title=CSSGroupingRule><strong>8.2.</strong></a> 1.790 + href="#cssgroupingrule" title=CSSGroupingRule><strong>7.2.</strong></a> 1.791 1.792 <li><a href="#cssmediarule"><code>CSSMediaRule</code></a>, <a 1.793 - href="#cssmediarule" title=CSSMediaRule><strong>8.4.</strong></a> 1.794 + href="#cssmediarule" title=CSSMediaRule><strong>7.4.</strong></a> 1.795 1.796 <li><a href="#csssupportsrule"><code>CSSSupportsRule</code></a>, <a 1.797 - href="#csssupportsrule" title=CSSSupportsRule><strong>8.5.</strong></a> 1.798 - 1.799 - <li>‘<code class=css>@document</code>’ rule, <a 1.800 - href="#atdocument-rule" title="'@document' rule"><strong>7.</strong></a> 1.801 - 1.802 - <li>domain(), <a href="#url-domain" 1.803 - title="domain()"><strong>7.</strong></a> 1.804 - 1.805 - <li>domain matching function, <a href="#domain-matching-function" 1.806 - title="domain matching function"><strong>7.</strong></a> 1.807 - 1.808 - <li>exact url matching function, <a href="#exact-url-matching-function" 1.809 - title="exact url matching function"><strong>7.</strong></a> 1.810 + href="#csssupportsrule" title=CSSSupportsRule><strong>7.5.</strong></a> 1.811 1.812 <li>group rule body, <a href="#group-rule-body" 1.813 title="group rule body"><strong>3.</strong></a> 1.814 @@ -1620,9 +1518,6 @@ 1.815 <li>‘<code class=css>@media</code>’ rule, <a href="#atmedia-rule" 1.816 title="'@media' rule"><strong>5.</strong></a> 1.817 1.818 - <li>regexp(), <a href="#url-regexp" 1.819 - title="regexp()"><strong>7.</strong></a> 1.820 - 1.821 <li>support, <a href="#dfn-support" 1.822 title=support><strong>6.1.</strong></a> 1.823 1.824 @@ -1650,34 +1545,6 @@ 1.825 1.826 <li>supports_rule, <a href="#supports_rule" 1.827 title="supports_rule"><strong>6.</strong></a> 1.828 - 1.829 - <li>url(), <a href="#url-exact" title="url()"><strong>7.</strong></a> 1.830 - 1.831 - <li>URL matching functions, <a href="#url-matching-functions" 1.832 - title="URL matching functions"><strong>7.</strong></a> 1.833 - <ul> 1.834 - <li>domain, <a href="#url-domain" 1.835 - title="URL matching functions, domain"><strong>7.</strong></a> 1.836 - 1.837 - <li>exact, <a href="#url-exact" 1.838 - title="URL matching functions, exact"><strong>7.</strong></a> 1.839 - 1.840 - <li>prefix, <a href="#url-prefix" 1.841 - title="URL matching functions, prefix"><strong>7.</strong></a> 1.842 - 1.843 - <li>regular expression, <a href="#url-regexp" 1.844 - title="URL matching functions, regular expression"><strong>7.</strong></a> 1.845 - </ul> 1.846 - 1.847 - <li>URL of the document being styled, <a 1.848 - href="#url-of-the-document-being-styled" 1.849 - title="URL of the document being styled"><strong>7.</strong></a> 1.850 - 1.851 - <li>url-prefix(), <a href="#url-prefix" 1.852 - title="url-prefix()"><strong>7.</strong></a> 1.853 - 1.854 - <li>url prefix matching function, <a href="#url-prefix-matching-function" 1.855 - title="url prefix matching function"><strong>7.</strong></a> 1.856 </ul> 1.857 <!--end-index--> 1.858 </html>
2.1 --- a/css3-conditional/Overview.src.html Tue Oct 09 17:30:03 2012 -0700 2.2 +++ b/css3-conditional/Overview.src.html Wed Oct 10 16:53:12 2012 -0700 2.3 @@ -64,8 +64,8 @@ 2.4 which builds on CSS level 1 [[CSS1]]. 2.5 The main extensions compared to level 2 are 2.6 allowing nesting of certain at-rules inside '@media', 2.7 - the addition of the '@supports' and '@document' 2.8 - rules for conditional processing. 2.9 + and the addition of the '@supports' 2.10 + rule for conditional processing. 2.11 2.12 <h2 class="no-num no-toc" id="status">Status of this document</h2> 2.13 2.14 @@ -91,12 +91,16 @@ 2.15 features in this specification to Proposed Recommendation.</li> 2.16 2.17 <li>The support for functions inside of ''@supports'' is at risk.</li> 2.18 +</ul> 2.19 2.20 - <li>The '@document' rule is at risk; if interoperable 2.21 - implementations are not found, it may be removed to advance the other 2.22 - features in this specification to Proposed Recommendation.</li> 2.23 +<!-- 2.24 2.25 -</ul> 2.26 + Things to go in level 4: 2.27 + 2.28 + * Create some way to put these new conditional things on an @import. 2.29 + * The @document rule (commented out, down below). 2.30 + 2.31 +--> 2.32 2.33 <h2 class="no-num no-toc" id="contents">Table of contents</h2> 2.34 2.35 @@ -123,8 +127,8 @@ 2.36 to combine CSS features involving @-rules with media specific style 2.37 sheets within a single style sheet.</p> 2.38 2.39 - <p>This specification also defines additional types of conditional 2.40 - group rules, '@supports' and '@document', to 2.41 + <p>This specification also defines an additional type of conditional 2.42 + group rule, '@supports', to 2.43 address author and user requirements.</p> 2.44 2.45 <p>The '@supports' rule allows CSS to be conditioned on 2.46 @@ -135,11 +139,6 @@ 2.47 mechanisms, and for other cases where a set of related styles needs to 2.48 be conditioned on property support.</p> 2.49 2.50 - <p>The '@document' rule allows CSS to be conditioned on the 2.51 - page to which the style sheet is being applied. This allows users to 2.52 - apply styles to a particular page or group of pages, which greatly 2.53 - increases the power of user style sheets.</p> 2.54 - 2.55 <h3 id="placement">Module Interactions</h3> 2.56 2.57 <p>This module replaces and extends the '@media' rule 2.58 @@ -193,13 +192,7 @@ 2.59 }</pre> 2.60 <p>causes a particular CSS rule (making elements with ID "navigation" be 2.61 display:none) apply only when the style sheet is used for a print 2.62 -medium. Likewise, this CSS rule:</p> 2.63 -<pre>@document url("http://www.example.com/") { 2.64 - #example1 { display: none } 2.65 -}</pre> 2.66 -<p>does the same type of conditional application, but using a different 2.67 -condition: whether the style sheet is being applied to the page 2.68 -<code>http://www.example.com/</code>.</p> 2.69 +medium. 2.70 </div> 2.71 2.72 <p>Each conditional group rule has a condition, which at any time 2.73 @@ -240,11 +233,6 @@ 2.74 2.75 <h2 id="contents-of">Contents of conditional group rules</h2> 2.76 2.77 -<p class="issue">There is also likely demand for using these 2.78 -conditions with '@import'. We should see if we can 2.79 -come up with sensible syntax for that, perhaps functional notation 2.80 -at the end of the '@import' rule.</p> 2.81 - 2.82 <p>The syntax of each conditional group rule consists of some syntax 2.83 specific to the type of rule followed by a <dfn>group rule body</dfn>, 2.84 which is a block (pair of braces) containing a sequence of rules.</p> 2.85 @@ -261,7 +249,7 @@ 2.86 2.87 <pre>nested_statement 2.88 : ruleset | media | page | font_face_rule | keyframes_rule | 2.89 - supports_rule | document_rule 2.90 + supports_rule 2.91 ; 2.92 2.93 group_rule_body 2.94 @@ -271,8 +259,8 @@ 2.95 in which all the productions are defined in that grammar with the 2.96 exception of <code>font_face_rule</code> <span class="issue">not</span> 2.97 defined in [[!CSS3-FONTS]], <code>keyframes_rule</code> defined in 2.98 -[[!CSS3-ANIMATIONS]], and <code>media</code>, <code>supports_rule</code> 2.99 -and <code>document_rule</code> defined in this specification.</p> 2.100 +[[!CSS3-ANIMATIONS]], and <code>media</code> and <code>supports_rule</code> 2.101 +defined in this specification.</p> 2.102 2.103 <p>In general, future CSS specifications that add new @-rules that are 2.104 not forbidden to occur after some other types of rules should modify 2.105 @@ -612,6 +600,7 @@ 2.106 in order to consider the declaration supported, either inside a ruleset 2.107 or in the declaration condition of an ''@supports'' rule.</p> 2.108 2.109 +<!-- 2.110 <h2 id="at-document">Document queries: the '@document' rule</h2> 2.111 2.112 <p>The <dfn>'@document' rule</dfn> is a conditional group 2.113 @@ -807,6 +796,8 @@ 2.114 url_match_fn 2.115 : (URI | FUNCTION S* STRING S* ')' ) S* 2.116 ;</pre> 2.117 +--> 2.118 + 2.119 2.120 <h2 id="apis">APIs</h2> 2.121 2.122 @@ -817,7 +808,9 @@ 2.123 2.124 <pre class='idl'>partial interface CSSRule { 2.125 const unsigned short SUPPORTS_RULE = 12; 2.126 + <!-- 2.127 const unsigned short DOCUMENT_RULE = 13; 2.128 + --> 2.129 }</pre> 2.130 2.131 2.132 @@ -921,7 +914,7 @@ 2.133 <pre class='idl'>interface CSSSupportsRule : CSSConditionRule { 2.134 }</pre> 2.135 2.136 - 2.137 +<!-- 2.138 <h3 id="the-cssdocumentrule-interface"> 2.139 The <code>CSSDocumentRule</code> interface</h3> 2.140 2.141 @@ -929,6 +922,7 @@ 2.142 2.143 <pre class='idl'>interface CSSDocumentRule : CSSConditionRule { 2.144 }</pre> 2.145 +--> 2.146 2.147 2.148 <h3 id='the-css-interface'> 2.149 @@ -968,7 +962,7 @@ 2.150 href="http://www.w3.org/TR/CSS21/grammar.html">Appendix G</a> grammar of 2.151 [[!CSS21]] by replacing the <code>media</code> production defined in 2.152 [[!CSS21]] with the <code>media</code> production defined in this one, 2.153 -and additionally inserting <code>| supports_rule | document_rule</code> 2.154 +and additionally inserting <code>| supports_rule</code> 2.155 alongside <code>ruleset | media | page</code>.</p> 2.156 2.157