Skip to content

Commit f370da7

Browse files
committed
[selectors] Add scope-relative selectors to the grammar.
1 parent f7d21ea commit f370da7

2 files changed

Lines changed: 86 additions & 17 deletions

File tree

selectors/Overview.html

Lines changed: 58 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -329,32 +329,36 @@ <h2 class="no-num no-toc" id=contents>Table of Contents</h2>
329329
<li><a href="#enableddisabled"><span class=secno>11.1. </span> The
330330
<code>:enabled</code> and <code>:disabled</code> pseudo-classes</a>
331331

332-
<li><a href="#checked"><span class=secno>11.2. </span> The
332+
<li><a href="#placeholder"><span class=secno>11.2. </span> The
333+
placeholder-shown pseudo-class <code>:placeholder-shown</code></a>
334+
335+
<li><a href="#checked"><span class=secno>11.3. </span> The
333336
selected-option pseudo-class <code>:checked</code></a>
334337

335-
<li><a href="#indeterminate"><span class=secno>11.3. </span> The
338+
<li><a href="#indeterminate"><span class=secno>11.4. </span> The
336339
indeterminate-value pseudo-class <code>:indeterminate</code></a>
337340

338-
<li><a href="#the-default-pseudo"><span class=secno>11.4. </span> The
341+
<li><a href="#the-default-pseudo"><span class=secno>11.5. </span> The
339342
default option pseudo-class <code>:default</code></a>
340343

341-
<li><a href="#validity-pseudos"><span class=secno>11.5. </span> The
344+
<li><a href="#validity-pseudos"><span class=secno>11.6. </span> The
342345
validity pseudo-classes: <code>:valid</code> and
343346
<code>:invalid</code></a>
344347

345-
<li><a href="#range-pseudos"><span class=secno>11.6. </span> The range
348+
<li><a href="#range-pseudos"><span class=secno>11.7. </span> The range
346349
pseudo-classes <code>:in-range</code> and
347350
<code>:out-of-range</code></a>
348351

349-
<li><a href="#opt-pseudos"><span class=secno>11.7. </span> The
352+
<li><a href="#opt-pseudos"><span class=secno>11.8. </span> The
350353
optionality pseudo-classes <code>:required</code> and
351354
<code>:optional</code></a>
352355

353-
<li><a href="#user-pseudos"><span class=secno>11.8. </span> The
356+
<li><a href="#user-pseudos"><span class=secno>11.9. </span> The
354357
user-interaction pseudo-class <code>:user-error</code></a>
355358

356-
<li><a href="#rw-pseudos"><span class=secno>11.9. </span> The mutability
357-
pseudo-classes <code>:read-only</code> and <code>:read-write</code></a>
359+
<li><a href="#rw-pseudos"><span class=secno>11.10. </span> The
360+
mutability pseudo-classes <code>:read-only</code> and
361+
<code>:read-write</code></a>
358362
</ul>
359363

360364
<li><a href="#structural-pseudos"><span class=secno>12. </span>
@@ -2821,7 +2825,17 @@ <h3 id=enableddisabled><span class=secno>11.1. </span> The <a
28212825
<code>display</code> and <code>visibility</code> properties have no effect
28222826
on the enabled/disabled state of an element.
28232827

2824-
<h3 id=checked><span class=secno>11.2. </span> The selected-option
2828+
<h3 id=placeholder><span class=secno>11.2. </span> The placeholder-shown
2829+
pseudo-class <a
2830+
href="#placeholder-shown-pseudo"><code>:placeholder-shown</code></a></h3>
2831+
2832+
<p>Input elements can sometimes show placeholder text as a hint to the user
2833+
on what to type in. See, for example, the <code>placeholder</code>
2834+
attribute in <a href="#HTML5" rel=biblioentry>[HTML5]<!--{{HTML5}}--></a>.
2835+
The <dfn id=placeholder-shown-pseudo>:placeholder-shown</dfn> pseudo-class
2836+
matches an input element that is showing such placeholder text.
2837+
2838+
<h3 id=checked><span class=secno>11.3. </span> The selected-option
28252839
pseudo-class <a href="#checked-pseudo"><code>:checked</code></a></h3>
28262840

28272841
<p>Radio and checkbox elements can be toggled by the user. Some menu items
@@ -2847,7 +2861,7 @@ <h3 id=checked><span class=secno>11.2. </span> The selected-option
28472861
<pre>:not(:checked)</pre>
28482862
</div>
28492863

2850-
<h3 id=indeterminate><span class=secno>11.3. </span> The
2864+
<h3 id=indeterminate><span class=secno>11.4. </span> The
28512865
indeterminate-value pseudo-class <a
28522866
href="#indetermine-pseudo"><code>:indeterminate</code></a></h3>
28532867

@@ -2866,7 +2880,7 @@ <h3 id=indeterminate><span class=secno>11.3. </span> The
28662880
href="#indetermine-pseudo"><code>:indeterminate</code></a> even in a
28672881
static display.
28682882

2869-
<h3 id=the-default-pseudo><span class=secno>11.4. </span> The default
2883+
<h3 id=the-default-pseudo><span class=secno>11.5. </span> The default
28702884
option pseudo-class <a href="#default-pseudo"><code>:default</code></a></h3>
28712885

28722886
<p>The <dfn id=default-pseudo>:default</dfn> pseudo-class applies to the
@@ -2880,7 +2894,7 @@ <h3 id=the-default-pseudo><span class=secno>11.4. </span> The default
28802894
href="#default-pseudo"><code>:default</code></a> elements, like a
28812895
selection of pizza toppings for example.
28822896

2883-
<h3 id=validity-pseudos><span class=secno>11.5. </span> The validity
2897+
<h3 id=validity-pseudos><span class=secno>11.6. </span> The validity
28842898
pseudo-classes: <a href="#valid-pseudo"><code>:valid</code></a> and <a
28852899
href="#invalid-pseudo"><code>:invalid</code></a></h3>
28862900

@@ -2904,7 +2918,7 @@ <h3 id=validity-pseudos><span class=secno>11.5. </span> The validity
29042918
<code>&lt;p></code> element has no validity semantics at all, and so it
29052919
never matches either of these pseudo-classes.
29062920

2907-
<h3 id=range-pseudos><span class=secno>11.6. </span> The range
2921+
<h3 id=range-pseudos><span class=secno>11.7. </span> The range
29082922
pseudo-classes <a href="#in-range-psuedo"><code>:in-range</code></a> and
29092923
<a href="#out-of-range-pseudo"><code>:out-of-range</code></a></h3>
29102924

@@ -2923,7 +2937,7 @@ <h3 id=range-pseudos><span class=secno>11.6. </span> The range
29232937
menu element with a value of "E" that happens to be presented in a popup
29242938
menu that only has choices "A", "B" and "C".
29252939

2926-
<h3 id=opt-pseudos><span class=secno>11.7. </span> The optionality
2940+
<h3 id=opt-pseudos><span class=secno>11.8. </span> The optionality
29272941
pseudo-classes <a href="#required-pseudo"><code>:required</code></a> and
29282942
<a href="#optional-pseudo"><code>:optional</code></a></h3>
29292943

@@ -2933,7 +2947,7 @@ <h3 id=opt-pseudos><span class=secno>11.7. </span> The optionality
29332947
submitted. Elements that are not form elements are neither required nor
29342948
optional.
29352949

2936-
<h3 id=user-pseudos><span class=secno>11.8. </span> The user-interaction
2950+
<h3 id=user-pseudos><span class=secno>11.9. </span> The user-interaction
29372951
pseudo-class <a href="#user-error-pseudo"><code>:user-error</code></a></h3>
29382952

29392953
<p> The <dfn id=user-error-pseudo>:user-error</dfn> pseudo-class represents
@@ -2983,7 +2997,7 @@ <h3 id=user-pseudos><span class=secno>11.8. </span> The user-interaction
29832997
<code>:user-invalid</code> and <code>:user-omitted</code> could be used.
29842998
-->
29852999

2986-
<h3 id=rw-pseudos><span class=secno>11.9. </span> The mutability
3000+
<h3 id=rw-pseudos><span class=secno>11.10. </span> The mutability
29873001
pseudo-classes <a href="#read-only-pseudo"><code>:read-only</code></a> and
29883002
<a href="#read-write-pseudo"><code>:read-write</code></a></h3>
29893003

@@ -3850,6 +3864,13 @@ <h3 id=grammar><span class=secno>16.1. </span> Grammar</h3>
38503864
: complex_selector [ COMMA S* complex_selector ]*
38513865
;
38523866

3867+
scope_relative_selector_list
3868+
: scope_relative_selector [ COMMA s* scope_relative_selector ]*
3869+
3870+
scope_relative_selector
3871+
: combinator? complex_selector
3872+
;
3873+
38533874
complex_selector
38543875
: compound_selector [ combinator compound_selector ]* S*
38553876
;
@@ -3921,6 +3942,26 @@ <h3 id=grammar><span class=secno>16.1. </span> Grammar</h3>
39213942
: FUNCTION S* value ')'
39223943
;</pre>
39233944

3945+
<p> To aid with the authoring of property grammars, the following CSS
3946+
grammar productions are defined:
3947+
3948+
<dl>
3949+
<dt><dfn id=ltselector><var>&lt;selector></var></dfn>
3950+
3951+
<dd> A <code>complex_selector_list</code>.
3952+
3953+
<dt><dfn id=ltrelative-selector><var>&lt;relative-selector></var></dfn>
3954+
3955+
<dd> A <code>scope_relative_selector_list</code>.
3956+
3957+
<dt><dfn id=ltcompound-selector><var>&lt;compound-selector></var></dfn>
3958+
3959+
<dd> A <code>compound_selector_list</code>.
3960+
3961+
<dt><dfn id=ltid-selector><var>&lt;id-selector></var></dfn> An
3962+
<code>id</code>.
3963+
</dl>
3964+
39243965
<h2 id=profiling><span class=secno>17. </span> Profiles</h2>
39253966

39263967
<p>Each specification using Selectors must define the subset of Selectors

selectors/Overview.src.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2816,6 +2816,13 @@ <h3 id="grammar">
28162816
: complex_selector [ COMMA S* complex_selector ]*
28172817
;
28182818

2819+
scope_relative_selector_list
2820+
: scope_relative_selector [ COMMA s* scope_relative_selector ]*
2821+
2822+
scope_relative_selector
2823+
: combinator? complex_selector
2824+
;
2825+
28192826
complex_selector
28202827
: compound_selector [ combinator compound_selector ]* S*
28212828
;
@@ -2887,6 +2894,27 @@ <h3 id="grammar">
28872894
: FUNCTION S* value ')'
28882895
;</pre>
28892896

2897+
<p>
2898+
To aid with the authoring of property grammars,
2899+
the following CSS grammar productions are defined:
2900+
2901+
<dl>
2902+
<dt><dfn><var>&lt;selector></var></dfn>
2903+
<dd>
2904+
A <code>complex_selector_list</code>.
2905+
2906+
<dt><dfn><var>&lt;relative-selector></var></dfn>
2907+
<dd>
2908+
A <code>scope_relative_selector_list</code>.
2909+
2910+
<dt><dfn><var>&lt;compound-selector></var></dfn>
2911+
<dd>
2912+
A <code>compound_selector_list</code>.
2913+
2914+
<dt><dfn><var>&lt;id-selector></var></dfn>
2915+
An <code>id</code>.
2916+
</dl>
2917+
28902918

28912919

28922920
<h2 id="profiling">

0 commit comments

Comments
 (0)