OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script src="../htmlrunner.js"></script> | 3 <script src="../htmlrunner.js"></script> |
4 <script> | 4 <script> |
5 window.onload = function(){ | 5 window.onload = function(){ |
6 startTest("dom-modify"); | 6 startTest("dom-modify"); |
7 | 7 |
8 // Try to force real results | 8 // Try to force real results |
9 var ret, tmp, str; | 9 var ret, tmp, str; |
10 | 10 |
11 var elems = []; | 11 var elems = []; |
12 var htmlstr = document.body.innerHTML; | 12 var htmlstr = document.body.innerHtml; |
13 var div = document.createElement("div"); | 13 var div = document.createElement("div"); |
14 var num = 400; | 14 var num = 400; |
15 | 15 |
16 for ( var i = 0; i < 1024; i++ ) | 16 for ( var i = 0; i < 1024; i++ ) |
17 str += String.fromCharCode( (25 * Math.random()) + 97 ); | 17 str += String.fromCharCode( (25 * Math.random()) + 97 ); |
18 | 18 |
19 test( "createElement", function(){ | 19 test( "createElement", function(){ |
20 for ( var i = 0; i < num; i++ ) { | 20 for ( var i = 0; i < num; i++ ) { |
21 ret = document.createElement("div"); | 21 ret = document.createElement("div"); |
22 ret = document.createElement("span"); | 22 ret = document.createElement("span"); |
(...skipping 13 matching lines...) Expand all Loading... |
36 } | 36 } |
37 }); | 37 }); |
38 | 38 |
39 /* Need a better way to test this | 39 /* Need a better way to test this |
40 test( "removeChild", function(){ | 40 test( "removeChild", function(){ |
41 while ( document.body.firstChild ) | 41 while ( document.body.firstChild ) |
42 document.body.removeChild( document.body.firstChild ); | 42 document.body.removeChild( document.body.firstChild ); |
43 }); | 43 }); |
44 */ | 44 */ |
45 | 45 |
46 » test( "innerHTML", function(){ | 46 » test( "innerHtml", function(){ |
47 » » document.body.innerHTML = htmlstr; | 47 » » document.body.innerHtml = htmlstr; |
48 }); | 48 }); |
49 | 49 |
50 prep(function(){ | 50 prep(function(){ |
51 elems = []; | 51 elems = []; |
52 var telems = document.body.childNodes; | 52 var telems = document.body.childNodes; |
53 for ( var i = 0; i < telems.length; i++ ) | 53 for ( var i = 0; i < telems.length; i++ ) |
54 elems.push( telems[i] ); | 54 elems.push( telems[i] ); |
55 }); | 55 }); |
56 » | 56 |
57 test( "cloneNode", function(){ | 57 test( "cloneNode", function(){ |
58 for ( var i = 0; i < elems.length; i++ ) { | 58 for ( var i = 0; i < elems.length; i++ ) { |
59 ret = elems[i].cloneNode(false); | 59 ret = elems[i].cloneNode(false); |
60 ret = elems[i].cloneNode(true); | 60 ret = elems[i].cloneNode(true); |
61 ret = elems[i].cloneNode(true); | 61 ret = elems[i].cloneNode(true); |
62 } | 62 } |
63 }); | 63 }); |
64 | 64 |
65 test( "appendChild", function(){ | 65 test( "appendChild", function(){ |
66 for ( var i = 0; i < elems.length; i++ ) | 66 for ( var i = 0; i < elems.length; i++ ) |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 specification, these have been described in terms of CSS2.1. <a | 321 specification, these have been described in terms of CSS2.1. <a |
322 href="#refsCSS21">[CSS21]</a></p> | 322 href="#refsCSS21">[CSS21]</a></p> |
323 | 323 |
324 <h3><a name=terminology></a>1.2. Terminology</h3> | 324 <h3><a name=terminology></a>1.2. Terminology</h3> |
325 | 325 |
326 <p>All of the text of this specification is normative except | 326 <p>All of the text of this specification is normative except |
327 examples, notes, and sections explicitly marked as | 327 examples, notes, and sections explicitly marked as |
328 non-normative.</p> | 328 non-normative.</p> |
329 | 329 |
330 <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3> | 330 <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3> |
331 | 331 |
332 <p><em>This section is non-normative.</em></p> | 332 <p><em>This section is non-normative.</em></p> |
333 | 333 |
334 <p>The main differences between the selectors in CSS2 and those in | 334 <p>The main differences between the selectors in CSS2 and those in |
335 Selectors are: | 335 Selectors are: |
336 | 336 |
337 <ul> | 337 <ul> |
338 | 338 |
339 <li>the list of basic definitions (selector, group of selectors, | 339 <li>the list of basic definitions (selector, group of selectors, |
340 simple selector, etc.) has been changed; in particular, what was | 340 simple selector, etc.) has been changed; in particular, what was |
341 referred to in CSS2 as a simple selector is now called a sequence | 341 referred to in CSS2 as a simple selector is now called a sequence |
(...skipping 1162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1504 | 1504 |
1505 | 1505 |
1506 <h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5> | 1506 <h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5> |
1507 | 1507 |
1508 <div class="note"> | 1508 <div class="note"> |
1509 | 1509 |
1510 <p>Radio and checkbox elements can be toggled by the user, but are | 1510 <p>Radio and checkbox elements can be toggled by the user, but are |
1511 sometimes in an indeterminate state, neither checked nor unchecked. | 1511 sometimes in an indeterminate state, neither checked nor unchecked. |
1512 This can be due to an element attribute, or DOM manipulation.</p> | 1512 This can be due to an element attribute, or DOM manipulation.</p> |
1513 | 1513 |
1514 <p>A future version of this specification may introduce an | 1514 <p>A future version of this specification may introduce an |
1515 <code>:indeterminate</code> pseudo-class that applies to such elements. | 1515 <code>:indeterminate</code> pseudo-class that applies to such elements. |
1516 <!--While the <code>:indeterminate</code> pseudo-class is dynamic in | 1516 <!--While the <code>:indeterminate</code> pseudo-class is dynamic in |
1517 nature, and is altered by user action, since it can also be based on | 1517 nature, and is altered by user action, since it can also be based on |
1518 the presence of an element attribute, it applies to all media.</p> | 1518 the presence of an element attribute, it applies to all media.</p> |
1519 | 1519 |
1520 <p>Components of a radio-group initialized with no pre-selected choice | 1520 <p>Components of a radio-group initialized with no pre-selected choice |
1521 are an example of :indeterminate state.--></p> | 1521 are an example of :indeterminate state.--></p> |
1522 | 1522 |
1523 </div> | 1523 </div> |
1524 | 1524 |
1525 | 1525 |
1526 <h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4> | 1526 <h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4> |
1527 | 1527 |
1528 <p>Selectors introduces the concept of <dfn>structural | 1528 <p>Selectors introduces the concept of <dfn>structural |
1529 pseudo-classes</dfn> to permit selection based on extra information that lies in | 1529 pseudo-classes</dfn> to permit selection based on extra information that lies in |
1530 the document tree but cannot be represented by other simple selectors or | 1530 the document tree but cannot be represented by other simple selectors or |
1531 combinators. | 1531 combinators. |
1532 | 1532 |
1533 <p>Note that standalone pieces of PCDATA (text nodes in the DOM) are | 1533 <p>Note that standalone pieces of PCDATA (text nodes in the DOM) are |
1534 not counted when calculating the position of an element in the list of | 1534 not counted when calculating the position of an element in the list of |
1535 children of its parent. When calculating the position of an element in | 1535 children of its parent. When calculating the position of an element in |
1536 the list of children of its parent, the index numbering starts at 1. | 1536 the list of children of its parent, the index numbering starts at 1. |
1537 | 1537 |
1538 | 1538 |
1539 <h5><a name=root-pseudo>:root pseudo-class</a></h5> | 1539 <h5><a name=root-pseudo>:root pseudo-class</a></h5> |
1540 | 1540 |
1541 <p>The <code>:root</code> pseudo-class represents an element that is | 1541 <p>The <code>:root</code> pseudo-class represents an element that is |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1713 <p>Examples:</p> | 1713 <p>Examples:</p> |
1714 <p>The following selector represents a <code>p</code> element that is | 1714 <p>The following selector represents a <code>p</code> element that is |
1715 the first child of a <code>div</code> element:</p> | 1715 the first child of a <code>div</code> element:</p> |
1716 <pre>div > p:first-child</pre> | 1716 <pre>div > p:first-child</pre> |
1717 <p>This selector can represent the <code>p</code> inside the | 1717 <p>This selector can represent the <code>p</code> inside the |
1718 <code>div</code> of the following fragment:</p> | 1718 <code>div</code> of the following fragment:</p> |
1719 <pre><p> The last P before the note.</p> | 1719 <pre><p> The last P before the note.</p> |
1720 <div class="note"> | 1720 <div class="note"> |
1721 <p> The first P inside the note.</p> | 1721 <p> The first P inside the note.</p> |
1722 </div></pre>but cannot represent the second <code>p</code> in the followin
g | 1722 </div></pre>but cannot represent the second <code>p</code> in the followin
g |
1723 fragment: | 1723 fragment: |
1724 <pre><p> The last P before the note.</p> | 1724 <pre><p> The last P before the note.</p> |
1725 <div class="note"> | 1725 <div class="note"> |
1726 <h2> Note </h2> | 1726 <h2> Note </h2> |
1727 <p> The first P inside the note.</p> | 1727 <p> The first P inside the note.</p> |
1728 </div></pre> | 1728 </div></pre> |
1729 <p>The following two selectors are usually equivalent:</p> | 1729 <p>The following two selectors are usually equivalent:</p> |
1730 <pre>* > a:first-child /* a is first child of any element */ | 1730 <pre>* > a:first-child /* a is first child of any element */ |
1731 a:first-child /* Same (assuming a is not the root element) */</pre> | 1731 a:first-child /* Same (assuming a is not the root element) */</pre> |
1732 </div> | 1732 </div> |
1733 | 1733 |
1734 <h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5> | 1734 <h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5> |
1735 | 1735 |
1736 <p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-
class | 1736 <p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-
class |
1737 represents an element that is the last child of some other element. | 1737 represents an element that is the last child of some other element. |
1738 | 1738 |
1739 <div class="example"> | 1739 <div class="example"> |
1740 <p>Example:</p> | 1740 <p>Example:</p> |
1741 <p>The following selector represents a list item <code>li</code> that | 1741 <p>The following selector represents a list item <code>li</code> that |
1742 is the last child of an ordered list <code>ol</code>. | 1742 is the last child of an ordered list <code>ol</code>. |
1743 <pre>ol > li:last-child</pre> | 1743 <pre>ol > li:last-child</pre> |
1744 </div> | 1744 </div> |
1745 | 1745 |
1746 <h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5> | 1746 <h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5> |
1747 | 1747 |
1748 <p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-
class | 1748 <p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-
class |
1749 represents an element that is the first sibling of its type in the list of | 1749 represents an element that is the first sibling of its type in the list of |
1750 children of its parent element. | 1750 children of its parent element. |
1751 | 1751 |
1752 <div class="example"> | 1752 <div class="example"> |
1753 <p>Example:</p> | 1753 <p>Example:</p> |
1754 <p>The following selector represents a definition title | 1754 <p>The following selector represents a definition title |
1755 <code>dt</code> inside a definition list <code>dl</code>, this | 1755 <code>dt</code> inside a definition list <code>dl</code>, this |
1756 <code>dt</code> being the first of its type in the list of children of | 1756 <code>dt</code> being the first of its type in the list of children of |
1757 its parent element.</p> | 1757 its parent element.</p> |
1758 <pre>dl dt:first-of-type</pre> | 1758 <pre>dl dt:first-of-type</pre> |
1759 <p>It is a valid description for the first two <code>dt</code> | 1759 <p>It is a valid description for the first two <code>dt</code> |
1760 elements in the following example but not for the third one:</p> | 1760 elements in the following example but not for the third one:</p> |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1919 | 1919 |
1920 <p>The selector <code>p::first-line</code> does not match any real | 1920 <p>The selector <code>p::first-line</code> does not match any real |
1921 HTML element. It does match a pseudo-element that conforming user | 1921 HTML element. It does match a pseudo-element that conforming user |
1922 agents will insert at the beginning of every paragraph.</p> | 1922 agents will insert at the beginning of every paragraph.</p> |
1923 | 1923 |
1924 <p>Note that the length of the first line depends on a number of | 1924 <p>Note that the length of the first line depends on a number of |
1925 factors, including the width of the page, the font size, etc. Thus, | 1925 factors, including the width of the page, the font size, etc. Thus, |
1926 an ordinary HTML paragraph such as:</p> | 1926 an ordinary HTML paragraph such as:</p> |
1927 | 1927 |
1928 <pre> | 1928 <pre> |
1929 <P>This is a somewhat long HTML | 1929 <P>This is a somewhat long HTML |
1930 paragraph that will be broken into several | 1930 paragraph that will be broken into several |
1931 lines. The first line will be identified | 1931 lines. The first line will be identified |
1932 by a fictional tag sequence. The other lines | 1932 by a fictional tag sequence. The other lines |
1933 will be treated as ordinary lines in the | 1933 will be treated as ordinary lines in the |
1934 paragraph.</P> | 1934 paragraph.</P> |
1935 </pre> | 1935 </pre> |
1936 | 1936 |
1937 <p>the lines of which happen to be broken as follows: | 1937 <p>the lines of which happen to be broken as follows: |
1938 | 1938 |
1939 <pre> | 1939 <pre> |
1940 THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT | 1940 THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT |
1941 will be broken into several lines. The first | 1941 will be broken into several lines. The first |
1942 line will be identified by a fictional tag | 1942 line will be identified by a fictional tag |
1943 sequence. The other lines will be treated as | 1943 sequence. The other lines will be treated as |
1944 ordinary lines in the paragraph. | 1944 ordinary lines in the paragraph. |
1945 </pre> | 1945 </pre> |
1946 | 1946 |
1947 <p>This paragraph might be "rewritten" by user agents to include the | 1947 <p>This paragraph might be "rewritten" by user agents to include the |
1948 <em>fictional tag sequence</em> for <code>::first-line</code>. This | 1948 <em>fictional tag sequence</em> for <code>::first-line</code>. This |
1949 fictional tag sequence helps to show how properties are inherited.</p> | 1949 fictional tag sequence helps to show how properties are inherited.</p> |
1950 | 1950 |
1951 <pre> | 1951 <pre> |
1952 <P><b><P::first-line></b> This is a somewhat long HTML | 1952 <P><b><P::first-line></b> This is a somewhat long HTML |
1953 paragraph that <b></P::first-line></b> will be broken into several | 1953 paragraph that <b></P::first-line></b> will be broken into several |
1954 lines. The first line will be identified | 1954 lines. The first line will be identified |
1955 by a fictional tag sequence. The other lines | 1955 by a fictional tag sequence. The other lines |
1956 will be treated as ordinary lines in the | 1956 will be treated as ordinary lines in the |
1957 paragraph.</P> | 1957 paragraph.</P> |
1958 </pre> | 1958 </pre> |
1959 | 1959 |
1960 <p>If a pseudo-element breaks up a real element, the desired effect | 1960 <p>If a pseudo-element breaks up a real element, the desired effect |
1961 can often be described by a fictional tag sequence that closes and | 1961 can often be described by a fictional tag sequence that closes and |
1962 then re-opens the element. Thus, if we mark up the previous paragraph | 1962 then re-opens the element. Thus, if we mark up the previous paragraph |
1963 with a <code>span</code> element:</p> | 1963 with a <code>span</code> element:</p> |
1964 | 1964 |
1965 <pre> | 1965 <pre> |
1966 <P><b><SPAN class="test"></b> This is a somewhat long HTML | 1966 <P><b><SPAN class="test"></b> This is a somewhat long HTML |
1967 paragraph that will be broken into several | 1967 paragraph that will be broken into several |
1968 lines.<b></SPAN></b> The first line will be identified | 1968 lines.<b></SPAN></b> The first line will be identified |
1969 by a fictional tag sequence. The other lines | 1969 by a fictional tag sequence. The other lines |
1970 will be treated as ordinary lines in the | 1970 will be treated as ordinary lines in the |
1971 paragraph.</P> | 1971 paragraph.</P> |
1972 </pre> | 1972 </pre> |
1973 | 1973 |
1974 <p>the user agent could simulate start and end tags for | 1974 <p>the user agent could simulate start and end tags for |
1975 <code>span</code> when inserting the fictional tag sequence for | 1975 <code>span</code> when inserting the fictional tag sequence for |
1976 <code>::first-line</code>. | 1976 <code>::first-line</code>. |
1977 | 1977 |
1978 <pre> | 1978 <pre> |
1979 <P><P::first-line><b><SPAN class="test"></b> This is a | 1979 <P><P::first-line><b><SPAN class="test"></b> This is a |
1980 somewhat long HTML | 1980 somewhat long HTML |
1981 paragraph that will <b></SPAN></b></P::first-line><b><SPAN class=
"test"></b> be | 1981 paragraph that will <b></SPAN></b></P::first-line><b><SPAN class=
"test"></b> be |
1982 broken into several | 1982 broken into several |
1983 lines.<b></SPAN></b> The first line will be identified | 1983 lines.<b></SPAN></b> The first line will be identified |
1984 by a fictional tag sequence. The other lines | 1984 by a fictional tag sequence. The other lines |
1985 will be treated as ordinary lines in the | 1985 will be treated as ordinary lines in the |
1986 paragraph.</P> | 1986 paragraph.</P> |
1987 </pre> | 1987 </pre> |
1988 | 1988 |
1989 <p>In CSS, the <code>::first-line</code> pseudo-element can only be | 1989 <p>In CSS, the <code>::first-line</code> pseudo-element can only be |
1990 attached to a block-level element, an inline-block, a table-caption, | 1990 attached to a block-level element, an inline-block, a table-caption, |
1991 or a table-cell.</p> | 1991 or a table-cell.</p> |
1992 | 1992 |
1993 <p><a name="first-formatted-line"></a>The "first formatted line" of an | 1993 <p><a name="first-formatted-line"></a>The "first formatted line" of an |
1994 element may occur inside a | 1994 element may occur inside a |
1995 block-level descendant in the same flow (i.e., a block-level | 1995 block-level descendant in the same flow (i.e., a block-level |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2113 | 2113 |
2114 <p>The <span class="index-inst" title="fictional tag | 2114 <p>The <span class="index-inst" title="fictional tag |
2115 sequence">fictional tag sequence</span> is:</p> | 2115 sequence">fictional tag sequence</span> is:</p> |
2116 | 2116 |
2117 <pre> | 2117 <pre> |
2118 <P> | 2118 <P> |
2119 <SPAN> | 2119 <SPAN> |
2120 <P::first-letter> | 2120 <P::first-letter> |
2121 T | 2121 T |
2122 </P::first-letter>he first | 2122 </P::first-letter>he first |
2123 </SPAN> | 2123 </SPAN> |
2124 few words of an article in the Economist. | 2124 few words of an article in the Economist. |
2125 </P> | 2125 </P> |
2126 </pre> | 2126 </pre> |
2127 | 2127 |
2128 <p>Note that the <code>::first-letter</code> pseudo-element tags abut | 2128 <p>Note that the <code>::first-letter</code> pseudo-element tags abut |
2129 the content (i.e., the initial character), while the ::first-line | 2129 the content (i.e., the initial character), while the ::first-line |
2130 pseudo-element start tag is inserted right after the start tag of the | 2130 pseudo-element start tag is inserted right after the start tag of the |
2131 block element.</p> </div> | 2131 block element.</p> </div> |
2132 | 2132 |
2133 <p>In order to achieve traditional drop caps formatting, user agents | 2133 <p>In order to achieve traditional drop caps formatting, user agents |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2224 p::first-line { color: blue } | 2224 p::first-line { color: blue } |
2225 | 2225 |
2226 <P>Some text that ends up on two lines</P></pre> | 2226 <P>Some text that ends up on two lines</P></pre> |
2227 | 2227 |
2228 <p>Assuming that a line break will occur before the word "ends", the | 2228 <p>Assuming that a line break will occur before the word "ends", the |
2229 <span class="index-inst" title="fictional tag sequence">fictional tag | 2229 <span class="index-inst" title="fictional tag sequence">fictional tag |
2230 sequence</span> for this fragment might be:</p> | 2230 sequence</span> for this fragment might be:</p> |
2231 | 2231 |
2232 <pre><P> | 2232 <pre><P> |
2233 <P::first-line> | 2233 <P::first-line> |
2234 <P::first-letter> | 2234 <P::first-letter> |
2235 S | 2235 S |
2236 </P::first-letter>ome text that | 2236 </P::first-letter>ome text that |
2237 </P::first-line> | 2237 </P::first-line> |
2238 ends up on two lines | 2238 ends up on two lines |
2239 </P></pre> | 2239 </P></pre> |
2240 | 2240 |
2241 <p>Note that the <code>::first-letter</code> element is inside the <code>::first
-line</code> | 2241 <p>Note that the <code>::first-letter</code> element is inside the <code>::first
-line</code> |
2242 element. Properties set on <code>::first-line</code> are inherited by | 2242 element. Properties set on <code>::first-line</code> are inherited by |
2243 <code>::first-letter</code>, but are overridden if the same property is set on | 2243 <code>::first-letter</code>, but are overridden if the same property is set on |
2244 <code>::first-letter</code>.</p> | 2244 <code>::first-letter</code>.</p> |
2245 </div> | 2245 </div> |
2246 | 2246 |
2247 | 2247 |
2248 <h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-elemen
t</a></h4> | 2248 <h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-elemen
t</a></h4> |
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2735 <th>Specification</th> | 2735 <th>Specification</th> |
2736 <td>CSS level 1</td></tr> | 2736 <td>CSS level 1</td></tr> |
2737 <tr> | 2737 <tr> |
2738 <th>Accepts</th> | 2738 <th>Accepts</th> |
2739 <td>type selectors<br>class selectors<br>ID selectors<br>:link, | 2739 <td>type selectors<br>class selectors<br>ID selectors<br>:link, |
2740 :visited and :active pseudo-classes<br>descendant combinator | 2740 :visited and :active pseudo-classes<br>descendant combinator |
2741 <br>::first-line and ::first-letter pseudo-elements</td></tr> | 2741 <br>::first-line and ::first-letter pseudo-elements</td></tr> |
2742 <tr> | 2742 <tr> |
2743 <th>Excludes</th> | 2743 <th>Excludes</th> |
2744 <td> | 2744 <td> |
2745 | 2745 |
2746 <p>universal selector<br>attribute selectors<br>:hover and :focus | 2746 <p>universal selector<br>attribute selectors<br>:hover and :focus |
2747 pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI | 2747 pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI |
2748 element states pseudo-classes<br>all structural | 2748 element states pseudo-classes<br>all structural |
2749 pseudo-classes<br>negation pseudo-class<br>all | 2749 pseudo-classes<br>negation pseudo-class<br>all |
2750 UI element fragments pseudo-elements<br>::before and ::after | 2750 UI element fragments pseudo-elements<br>::before and ::after |
2751 pseudo-elements<br>child combinators<br>sibling combinators | 2751 pseudo-elements<br>child combinators<br>sibling combinators |
2752 | 2752 |
2753 <p>namespaces</td></tr> | 2753 <p>namespaces</td></tr> |
2754 <tr> | 2754 <tr> |
2755 <th>Extra constraints</th> | 2755 <th>Extra constraints</th> |
2756 <td>only one class selector allowed per sequence of simple | 2756 <td>only one class selector allowed per sequence of simple |
2757 selectors</td></tr></tbody></table><br><br> | 2757 selectors</td></tr></tbody></table><br><br> |
2758 <table class="tprofile"> | 2758 <table class="tprofile"> |
2759 <tbody> | 2759 <tbody> |
2760 <tr> | 2760 <tr> |
2761 <th class="title" colspan=2>Selectors profile</th></tr> | 2761 <th class="title" colspan=2>Selectors profile</th></tr> |
2762 <tr> | 2762 <tr> |
2763 <th>Specification</th> | 2763 <th>Specification</th> |
2764 <td>CSS level 2</td></tr> | 2764 <td>CSS level 2</td></tr> |
2765 <tr> | 2765 <tr> |
2766 <th>Accepts</th> | 2766 <th>Accepts</th> |
2767 <td>type selectors<br>universal selector<br>attribute presence and | 2767 <td>type selectors<br>universal selector<br>attribute presence and |
2768 values selectors<br>class selectors<br>ID selectors<br>:link, :visited, | 2768 values selectors<br>class selectors<br>ID selectors<br>:link, :visited, |
2769 :active, :hover, :focus, :lang() and :first-child pseudo-classes | 2769 :active, :hover, :focus, :lang() and :first-child pseudo-classes |
2770 <br>descendant combinator<br>child combinator<br>adjacent sibling | 2770 <br>descendant combinator<br>child combinator<br>adjacent sibling |
2771 combinator<br>::first-line and ::first-letter pseudo-elements<br>::before | 2771 combinator<br>::first-line and ::first-letter pseudo-elements<br>::before |
2772 and ::after pseudo-elements</td></tr> | 2772 and ::after pseudo-elements</td></tr> |
2773 <tr> | 2773 <tr> |
2774 <th>Excludes</th> | 2774 <th>Excludes</th> |
2775 <td> | 2775 <td> |
2776 | 2776 |
2777 <p>content selectors<br>substring matching attribute | 2777 <p>content selectors<br>substring matching attribute |
2778 selectors<br>:target pseudo-classes<br>all UI element | 2778 selectors<br>:target pseudo-classes<br>all UI element |
2779 states pseudo-classes<br>all structural pseudo-classes other | 2779 states pseudo-classes<br>all structural pseudo-classes other |
2780 than :first-child<br>negation pseudo-class<br>all UI element | 2780 than :first-child<br>negation pseudo-class<br>all UI element |
2781 fragments pseudo-elements<br>general sibling combinators | 2781 fragments pseudo-elements<br>general sibling combinators |
2782 | 2782 |
2783 <p>namespaces</td></tr> | 2783 <p>namespaces</td></tr> |
2784 <tr> | 2784 <tr> |
2785 <th>Extra constraints</th> | 2785 <th>Extra constraints</th> |
2786 <td>more than one class selector per sequence of simple selectors (CSS1 | 2786 <td>more than one class selector per sequence of simple selectors (CSS1 |
2787 constraint) allowed</td></tr></tbody></table> | 2787 constraint) allowed</td></tr></tbody></table> |
2788 | 2788 |
2789 <p>In CSS, selectors express pattern matching rules that determine which style | 2789 <p>In CSS, selectors express pattern matching rules that determine which style |
2790 rules apply to elements in the document tree. | 2790 rules apply to elements in the document tree. |
2791 | 2791 |
2792 <p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</c
ode> | 2792 <p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</c
ode> |
2793 with attribute <code>name</code> set inside a section 1 header <code>h1</code>: | 2793 with attribute <code>name</code> set inside a section 1 header <code>h1</code>: |
2794 <pre>h1 a[name]</pre> | 2794 <pre>h1 a[name]</pre> |
2795 | 2795 |
2796 <p>All CSS declarations attached to such a selector are applied to elements | 2796 <p>All CSS declarations attached to such a selector are applied to elements |
2797 matching it. </div> | 2797 matching it. </div> |
2798 | 2798 |
2799 <div class="profile"> | 2799 <div class="profile"> |
2800 <table class="tprofile"> | 2800 <table class="tprofile"> |
2801 <tbody> | 2801 <tbody> |
2802 <tr> | 2802 <tr> |
2803 <th class="title" colspan=2>Selectors profile</th></tr> | 2803 <th class="title" colspan=2>Selectors profile</th></tr> |
2804 <tr> | 2804 <tr> |
2805 <th>Specification</th> | 2805 <th>Specification</th> |
2806 <td>STTS 3</td> | 2806 <td>STTS 3</td> |
2807 </tr> | 2807 </tr> |
2808 <tr> | 2808 <tr> |
2809 <th>Accepts</th> | 2809 <th>Accepts</th> |
2810 <td> | 2810 <td> |
2811 | 2811 |
2812 <p>type selectors<br>universal selectors<br>attribute selectors<br>class | 2812 <p>type selectors<br>universal selectors<br>attribute selectors<br>class |
2813 selectors<br>ID selectors<br>all structural pseudo-classes<br> | 2813 selectors<br>ID selectors<br>all structural pseudo-classes<br> |
2814 all combinators | 2814 all combinators |
2815 | 2815 |
2816 <p>namespaces</td></tr> | 2816 <p>namespaces</td></tr> |
2817 <tr> | 2817 <tr> |
2818 <th>Excludes</th> | 2818 <th>Excludes</th> |
2819 <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr> | 2819 <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr> |
2820 <tr> | 2820 <tr> |
2821 <th>Extra constraints</th> | 2821 <th>Extra constraints</th> |
2822 <td>some selectors and combinators are not allowed in fragment | 2822 <td>some selectors and combinators are not allowed in fragment |
2823 descriptions on the right side of STTS declarations.</td></tr></tbody></ta
ble> | 2823 descriptions on the right side of STTS declarations.</td></tr></tbody></ta
ble> |
2824 <form> | 2824 <form> |
2825 <input type="text" name="test1"/> | 2825 <input type="text" name="test1"/> |
(...skipping 15 matching lines...) Expand all Loading... |
2841 <input type="text" name="foo"/> | 2841 <input type="text" name="foo"/> |
2842 <input type="text" name="foo"/> | 2842 <input type="text" name="foo"/> |
2843 <input type="text" name="foo"/> | 2843 <input type="text" name="foo"/> |
2844 <input type="text" name="foo"/> | 2844 <input type="text" name="foo"/> |
2845 <input type="text" name="foo"/> | 2845 <input type="text" name="foo"/> |
2846 <input type="text" name="foo"/> | 2846 <input type="text" name="foo"/> |
2847 <input type="text" name="foo"/> | 2847 <input type="text" name="foo"/> |
2848 <input type="text" name="foo"/> | 2848 <input type="text" name="foo"/> |
2849 <input type="text" name="foo"/> | 2849 <input type="text" name="foo"/> |
2850 </form> | 2850 </form> |
2851 | 2851 |
2852 <p>Selectors can be used in STTS 3 in two different | 2852 <p>Selectors can be used in STTS 3 in two different |
2853 manners: | 2853 manners: |
2854 <ol> | 2854 <ol> |
2855 <li>a selection mechanism equivalent to CSS selection mechanism: declarations | 2855 <li>a selection mechanism equivalent to CSS selection mechanism: declarations |
2856 attached to a given selector are applied to elements matching that selector, | 2856 attached to a given selector are applied to elements matching that selector, |
2857 <li>fragment descriptions that appear on the right side of declarations. | 2857 <li>fragment descriptions that appear on the right side of declarations. |
2858 </li></ol></div> | 2858 </li></ol></div> |
2859 | 2859 |
2860 <h2><a name=Conformance></a>13. Conformance and requirements</h2> | 2860 <h2><a name=Conformance></a>13. Conformance and requirements</h2> |
2861 | 2861 |
2862 <p>This section defines conformance with the present specification only. | 2862 <p>This section defines conformance with the present specification only. |
2863 | 2863 |
2864 <p>The inability of a user agent to implement part of this specification due to | 2864 <p>The inability of a user agent to implement part of this specification due to |
2865 the limitations of a particular device (e.g., non interactive user agents will | 2865 the limitations of a particular device (e.g., non interactive user agents will |
2866 probably not implement dynamic pseudo-classes because they make no sense without | 2866 probably not implement dynamic pseudo-classes because they make no sense without |
2867 interactivity) does not imply non-conformance. | 2867 interactivity) does not imply non-conformance. |
2868 | 2868 |
2869 <p>All specifications reusing Selectors must contain a <a | 2869 <p>All specifications reusing Selectors must contain a <a |
2870 href="#profiling">Profile</a> listing the | 2870 href="#profiling">Profile</a> listing the |
2871 subset of Selectors it accepts or excludes, and describing the constraints | 2871 subset of Selectors it accepts or excludes, and describing the constraints |
2872 it adds to the current specification. | 2872 it adds to the current specification. |
2873 | 2873 |
2874 <p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a toke
n | 2874 <p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a toke
n |
2875 which is not allowed at the current parsing point. | 2875 which is not allowed at the current parsing point. |
2876 | 2876 |
2877 <p>User agents must observe the rules for handling parsing errors: | 2877 <p>User agents must observe the rules for handling parsing errors: |
2878 <ul> | 2878 <ul> |
2879 <li>a simple selector containing an undeclared namespace prefix is invalid</li
> | 2879 <li>a simple selector containing an undeclared namespace prefix is invalid</li
> |
2880 <li>a selector containing an invalid simple selector, an invalid combinator | 2880 <li>a selector containing an invalid simple selector, an invalid combinator |
2881 or an invalid token is invalid. </li> | 2881 or an invalid token is invalid. </li> |
2882 <li>a group of selectors containing an invalid selector is invalid.</li> | 2882 <li>a group of selectors containing an invalid selector is invalid.</li> |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2915 | 2915 |
2916 <h2><a name=references>16. References</a></h2> | 2916 <h2><a name=references>16. References</a></h2> |
2917 | 2917 |
2918 <dl class="refs"> | 2918 <dl class="refs"> |
2919 | 2919 |
2920 <dt>[CSS1] | 2920 <dt>[CSS1] |
2921 <dd><a name=refsCSS1></a> Bert Bos, Håkon Wium Lie; "<cite>Cascading Sty
le Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999 | 2921 <dd><a name=refsCSS1></a> Bert Bos, Håkon Wium Lie; "<cite>Cascading Sty
le Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999 |
2922 <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CS
S1</a></code>) | 2922 <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CS
S1</a></code>) |
2923 | 2923 |
2924 <dt>[CSS21] | 2924 <dt>[CSS21] |
2925 <dd><a name=refsCSS21></a> Bert Bos, Tantek Çelik, Ian Hickson, Hå
;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>
", W3C Working Draft, 13 June 2005 | 2925 <dd><a name=refsCSS21></a> Bert Bos, Tantek Çelik, Ian Hickson, Hå
;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>
", W3C Working Draft, 13 June 2005 |
2926 <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>
</code>) | 2926 <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>
</code>) |
2927 | 2927 |
2928 <dt>[CWWW] | 2928 <dt>[CWWW] |
2929 <dd><a name=refsCWWW></a> Martin J. Dürst, François Yergeau, Misha
Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World W
ide Web</cite>", W3C Recommendation, 15 February 2005 | 2929 <dd><a name=refsCWWW></a> Martin J. Dürst, François Yergeau, Misha
Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World W
ide Web</cite>", W3C Recommendation, 15 February 2005 |
2930 <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmo
d/</a></code>) | 2930 <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmo
d/</a></code>) |
2931 | 2931 |
2932 <dt>[FLEX] | 2932 <dt>[FLEX] |
2933 <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>"
, Version 2.3.7, ISBN 1882114213 | 2933 <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>"
, Version 2.3.7, ISBN 1882114213 |
2934 | 2934 |
2935 <dt>[HTML4] | 2935 <dt>[HTML4] |
2936 <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors;
"<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999 | 2936 <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors;
"<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999 |
2937 <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</
code></a>) | 2937 <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</
code></a>) |
2938 | 2938 |
2939 <dt>[MATH] | 2939 <dt>[MATH] |
2940 <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathema
tical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 J
uly 1999 | 2940 <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathema
tical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 J
uly 1999 |
2941 <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC
-MathML/</a></code>) | 2941 <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC
-MathML/</a></code>) |
2942 | 2942 |
2943 <dt>[RFC3066] | 2943 <dt>[RFC3066] |
2944 <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identificati
on of Languages</cite>", Request for Comments 3066, January 2001 | 2944 <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identificati
on of Languages</cite>", Request for Comments 3066, January 2001 |
2945 <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/r
fc/rfc3066.txt</code></a>) | 2945 <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/r
fc/rfc3066.txt</code></a>) |
2946 | 2946 |
2947 <dt>[STTS] | 2947 <dt>[STTS] |
2948 <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sh
eets 3</cite>", Electricité de France, submission to the W3C, 11 November
1998 | 2948 <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sh
eets 3</cite>", Electricité de France, submission to the W3C, 11 November
1998 |
2949 <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE
-STTS3</a></code>) | 2949 <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE
-STTS3</a></code>) |
2950 | 2950 |
2951 <dt>[SVG] | 2951 <dt>[SVG] |
2952 <dd><a name="refsSVG"></a> Jon Ferraiolo, 藤沢 淳, Dean Jack
son, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W
3C Recommendation, 14 January 2003 | 2952 <dd><a name="refsSVG"></a> Jon Ferraiolo, 藤沢 淳, Dean Jack
son, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W
3C Recommendation, 14 January 2003 |
2953 <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></
code>) | 2953 <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></
code>) |
2954 | 2954 |
2955 <dt>[UNICODE]</dt> | 2955 <dt>[UNICODE]</dt> |
2956 <dd><a name="refsUNICODE"></a> <cite><a | 2956 <dd><a name="refsUNICODE"></a> <cite><a |
2957 href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Ve
rsion 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March
2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions
/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/U
nicode4.1.0/">Unicode 4.1.0</a>. | 2957 href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Ve
rsion 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March
2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions
/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/U
nicode4.1.0/">Unicode 4.1.0</a>. |
2958 <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/v
ersions/</a></code>)</dd> | 2958 <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/v
ersions/</a></code>)</dd> |
2959 | 2959 |
2960 <dt>[XML10] | 2960 <dt>[XML10] |
2961 <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve
Maler, François Yergeau, editors; "<cite>Extensible Markup Language (XML
) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004 | 2961 <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve
Maler, François Yergeau, editors; "<cite>Extensible Markup Language (XML
) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004 |
2962 <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xm
l/</code></a>) | 2962 <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xm
l/</code></a>) |
2963 | 2963 |
2964 <dt>[XMLNAMES] | 2964 <dt>[XMLNAMES] |
2965 <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, edito
rs; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999 | 2965 <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, edito
rs; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999 |
2966 <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/
REC-xml-names/</code></a>) | 2966 <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/
REC-xml-names/</code></a>) |
2967 | 2967 |
2968 <dt>[YACC] | 2968 <dt>[YACC] |
2969 <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC — Yet another com
piler compiler</cite>", Technical Report, Murray Hill, 1975 | 2969 <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC — Yet another com
piler compiler</cite>", Technical Report, Murray Hill, 1975 |
2970 | 2970 |
2971 </dl> | 2971 </dl> |
2972 </body> | 2972 </body> |
2973 </html> | 2973 </html> |
OLD | NEW |