## Simple selectors & basic combinators #data * {} #errors #expected | 1 * #reset #data E {} #errors #expected | 1 E #reset #data E F {} #errors #expected | 1 E F #reset #data E > F {} #errors #expected | 1 E > F #reset #data E:first-child {} #errors #expected | 1 E:first-child #reset #data E:link {} #errors #expected | 1 E:link #reset #data E:visited {} #errors #expected | 1 E:visited #reset #data E:active {} #errors #expected | 1 E:active #reset #data E:hover {} #errors #expected | 1 E:hover #reset #data E:focus {} #errors #expected | 1 E:focus #reset #data E:lang(c) {} #errors #expected | 1 E:lang(c) #reset #data E:left {} #errors #expected | 1 E:left #reset #data E:right {} #errors #expected | 1 E:right #reset #data E:first {} #errors #expected | 1 E:first #reset #data E:first-line {} #errors #expected | 1 E:first-line #reset #data E:first-letter {} #errors #expected | 1 E:first-letter #reset #data E:before {} #errors #expected | 1 E:before #reset #data E:after {} #errors #expected | 1 E:after #reset #data E + F {} #errors #expected | 1 E + F #reset #data E[foo] {} #errors #expected | 1 E[foo] #reset #data E[foo="warning"] {} #errors #expected | 1 E[foo="warning"] #reset #data E[foo~="warning"] {} #errors #expected | 1 E[foo~="warning"] #reset #data E[lang|="en"] {} #errors #expected | 1 E[lang|="en"] #reset #data DIV.warning {} #errors #expected | 1 DIV.warning #reset #data .warning {} #errors #expected | 1 .warning #reset #data E#myid {} #errors #expected | 1 E#myid #reset #data #myid {} #errors #expected | 1 #myid #reset ## Multiple specifics in simple selectors #data foo.bar#baz {} #errors #expected | 1 foo.bar#baz #reset #data [bar="baz"][foo|="bar"] {} #errors #expected | 1 [bar="baz"][foo|="bar"] #reset #data .foo[bar~="baz"] {} #errors #expected | 1 .foo[bar~="baz"] #reset #data #myid:link:before {} #errors #expected | 1 #myid:link:before #reset #data .class:lang(c):after {} #errors #expected | 1 .class:lang(c):after #reset #data .class:lang(c) > #myid:before {} #errors #expected | 1 .class:lang(c) > #myid:before #reset ## Multiple selectors in a rule #data foo,bar {} #errors #expected | 1 foo, bar #reset #data E>F,bar {} #errors #expected | 1 E > F, bar #reset #data E+F,bar {} #errors #expected | 1 E + F, bar #reset #data E F,bar {} #errors #expected | 1 E F, bar #reset #data E:first-child,bar {} #errors #expected | 1 E:first-child, bar #reset #data E:link,bar {} #errors #expected | 1 E:link, bar #reset #data E:visited,bar {} #errors #expected | 1 E:visited, bar #reset #data E:active,bar {} #errors #expected | 1 E:active, bar #reset #data E:hover,bar {} #errors #expected | 1 E:hover, bar #reset #data E:focus,bar {} #errors #expected | 1 E:focus, bar #reset #data E:lang(c),bar {} #errors #expected | 1 E:lang(c), bar #reset #data E[foo],bar {} #errors #expected | 1 E[foo], bar #reset #data E[foo="warning"],bar {} #errors #expected | 1 E[foo="warning"], bar #reset #data E[foo~="warning"],bar {} #errors #expected | 1 E[foo~="warning"], bar #reset #data E[lang|="en"],bar {} #errors #expected | 1 E[lang|="en"], bar #reset #data DIV.warning,bar {} #errors #expected | 1 DIV.warning, bar #reset #data .warning,bar {} #errors #expected | 1 .warning, bar #reset #data E#myid,bar {} #errors #expected | 1 E#myid, bar #reset #data #myid,bar {} #errors #expected | 1 #myid, bar #reset