Short URL: http://html5.org/r/6276
| SVN | Bug | Comment | Time (UTC) |
|---|---|---|---|
| 6276 | 13019 | Attempt to reorganise the rendering section to make it more usable for implementors | 2011-07-02 00:12 |
Index: source
===================================================================
--- source (revision 6275)
+++ source (revision 6276)
@@ -104032,15 +104032,10 @@
element is not <span>being rendered</span>, though this might be
overridden by the style sheets.</p>
- </div>
- <div class="impl">
-
<h3>The CSS user agent style sheet and presentational hints</h3>
- <h4>Introduction</h4>
-
<p>The CSS rules given in these subsections are, except where
otherwise specified, expected to be used as part of the user-agent
level style sheet defaults for all documents that contain <span>HTML
@@ -104098,143 +104093,43 @@
the dimension was an integer, and with the value given as a
percentage if the dimension was a percentage.</p>
- </div>
+ <p>When a user agent is to <dfn>align descendants</dfn> of a node,
+ the user agent is expected to align only those descendants that have
+ both their 'margin-left' and 'margin-right' properties computing to
+ a value other than 'auto', that are over-constrained and that have
+ one of those two margins with a used value forced to a greater
+ value, and that do not themselves have an applicable <code
+ title="attr-align">align</code> attribute. When multiple elements
+ are to <span title="align descendants">align</span> a particular
+ descendant, the most deeply nested such element is expected to
+ override the others.</p>
- <div class="impl">
- <h4>Display types</h4>
+ <h3>Non-replaced elements</h3>
+
+ <h4>Hidden elements</h4>
+
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
[hidden], area, base, basefont, command, datalist, head,
input[type=hidden], link, menu[type=context], meta, noembed, noframes,
param, rp, script, source, style, track, title { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
display: none;
-}
+}</pre>
-address, article, aside, blockquote, body, center, dd, dir, div, dl,
-dt, figure, figcaption, footer, form, h1, h2, h3, h4, h5, h6, header,
-hgroup, hr, html, legend, listing, menu, nav, ol, p, plaintext, pre,
-section, summary, ul, xmp { display: block; unicode-bidi: isolate; }
-
-table { display: table; unicode-bidi: isolate; }
-caption { display: table-caption; unicode-bidi: isolate; }
-colgroup, colgroup[hidden] { display: table-column-group; unicode-bidi: isolate; }
-col, col[hidden] { display: table-column; unicode-bidi: isolate; }
-thead, thead[hidden] { display: table-header-group; unicode-bidi: isolate; }
-tbody, tbody[hidden] { display: table-row-group; unicode-bidi: isolate; }
-tfoot, tfoot[hidden] { display: table-footer-group; unicode-bidi: isolate; }
-tr, tr[hidden] { display: table-row; unicode-bidi: isolate; }
-td, th, td[hidden], th[hidden] { display: table-cell; unicode-bidi: isolate; }
-
-colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
-tfoot[hidden], tr[hidden], td[hidden], th[hidden] {
- visibility: collapse;
-}
-
-li { display: list-item; unicode-bidi: isolate; }
-
-ruby { display: ruby; }
-rt { display: ruby-text; }</pre>
-
- <!-- del, ins, and map are inline. -->
-
- <p>For the purposes of the CSS table model, the <code>col</code>
- element is expected to be treated as if it was present as many times
- as its <code title="attr-col-span">span</code> attribute <span
- title="rules for parsing non-negative
- integers">specifies</span>.</p>
-
- <p>For the purposes of the CSS table model, the
- <code>colgroup</code> element, if it contains no <code>col</code>
- element, is expected to be treated as if it had as many such
- children as its <code title="attr-colgroup-span">span</code>
- attribute <span title="rules for parsing non-negative
- integers">specifies</span>.</p>
-
- <p>For the purposes of the CSS table model, the <code
- title="attr-tdth-colspan">colspan</code> and <code
- title="attr-tdth-rowspan">rowspan</code> attributes on
- <code>td</code> and <code>th</code> elements are expected to <span
- title="rules for parsing non-negative integers">provide</span> the
- <i>special knowledge</i> regarding cells spanning rows and
- columns.</p>
-
- <p>For the purposes of the CSS ruby model, runs of children of
- <code>ruby</code> elements that are not <code>rt</code> or
- <code>rp</code> elements are expected to be wrapped in anonymous
- boxes whose 'display' property has the value 'ruby-base'. <a
- href="#refsCSSRUBY">[CSSRUBY]</a></p>
-
- <p>User agents that do not support correct ruby rendering are
- expected to render parentheses around the text of <code>rt</code>
- elements in the absence of <code>rp</code> elements.</p>
-
<p>The user agent is expected to hide <code>noscript</code> elements
for whom <span title="concept-n-script">scripting is enabled</span>,
irrespective of CSS rules.</p>
- <p>In <span>HTML documents</span>, the user agent is expected to
- hide <code>form</code> elements that are children of
- <code>table</code>, <code>thead</code>, <code>tbody</code>,
- <code>tfoot</code>, or <code>tr</code> elements, irrespective of CSS
- rules.</p>
- </div>
+ <h4>The page</h4>
-
- <div class="impl">
-
- <h4>Margins and padding</h4>
-
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-blockquote, dir, dl, figure, listing, menu, ol, p, plaintext,
-pre, ul, xmp {
- margin-top: 1em; margin-bottom: 1em;
-}
+html, body { display: block; }</pre>
-dir dir, dir dl, dir menu, dir ol, dir ul,
-dl dir, dl dl, dl menu, dl ol, dl ul,
-menu dir, menu dl, menu menu, menu ol, menu ul,
-ol dir, ol dl, ol menu, ol ol, ol ul,
-ul dir, ul dl, ul menu, ul ol, ul ul {
- margin-top: 0; margin-bottom: 0;
-}
-
-h1 { margin-top: 0.67em; margin-bottom: 0.67em; }
-h2 { margin-top: 0.83em; margin-bottom: 0.83em; }
-h3 { margin-top: 1.00em; margin-bottom: 1.00em; }
-h4 { margin-top: 1.33em; margin-bottom: 1.33em; }
-h5 { margin-top: 1.67em; margin-bottom: 1.67em; }
-h6 { margin-top: 2.33em; margin-bottom: 2.33em; }
-
-dd { margin-left: 40px; } /* <span>LTR-specific</span>: use 'margin-right' for rtl elements */
-dir, menu, ol, ul { padding-left: 40px; } /* <span>LTR-specific</span>: use 'padding-right' for rtl elements */
-blockquote, figure { margin-left: 40px; margin-right: 40px; }
-
-table { border-spacing: 2px; border-collapse: separate; }
-td, th { padding: 1px; }</pre>
-
- <p>The <code>article</code>, <code>aside</code>, <code>nav</code>,
- and <code>section</code> elements are expected to affect the margins
- of <code>h1</code> elements, based on the nesting depth. If <var
- title="">x</var> is a selector that matches elements that are either
- <code>article</code>, <code>aside</code>, <code>nav</code>, or
- <code>section</code> elements, then the following rules capture what
- is expected:</p>
-
- <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-
-<var title="">x</var> h1 { margin-top: 0.83em; margin-bottom: 0.83em; }
-<var title="">x</var> <var title="">x</var> h1 { margin-top: 1.00em; margin-bottom: 1.00em; }
-<var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.33em; margin-bottom: 1.33em; }
-<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.67em; margin-bottom: 1.67em; }
-<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 2.33em; margin-bottom: 2.33em; }</pre>
-
- <hr>
-
<p>For each property in the table below, given a <code>body</code>
element, the first attribute that exists <span>maps to the pixel
length property</span> on the <code>body</code> element. If none of
@@ -104347,148 +104242,109 @@
<hr>
- <p>The <code>table</code> element's <code
- title="attr-table-cellspacing">cellspacing</code> attribute
- <span>maps to the pixel length property</span> 'border-spacing' on the
- element.</p>
+ <p>When a <code>Document</code> is in <span>quirks mode</span>,
+ vertical margins on <span>HTML elements</span> at the top or bottom
+ of <code>body</code> elements are expected to be collapsed to
+ zero.</p>
- <p>The <code>table</code> element's <code
- title="attr-table-cellpadding">cellpadding</code> attribute <span
- title="maps to the pixel length property">maps to the pixel length
- properties</span> 'padding-top', 'padding-right', 'padding-bottom',
- and 'padding-left' of any <code>td</code> and <code>th</code>
- elements that have corresponding <span
- title="concept-cell">cells</span> in the <span
- title="concept-table">table</span> corresponding to the
- <code>table</code> element.</p>
+ <hr>
- <p>The <code>table</code> element's <code
- title="attr-table-hspace">hspace</code> attribute <span title="maps
- to the dimension property">maps to the dimension properties</span>
- 'margin-left' and 'margin-right' on the <code>table</code>
- element.</p>
+ <p>When a <code>body</code> element has a <code
+ title="attr-background">background</code> attribute set to a
+ non-empty value, the new value is expected to be <span
+ title="resolve a url">resolved</span> relative to the element, and
+ if this is successful, the user agent is expected to treat the
+ attribute as a <span title="presentational hints">presentational
+ hint</span> setting the element's 'background-image' property to the
+ resulting <span>absolute URL</span>.</p>
- <p>The <code>table</code> element's <code
- title="attr-table-vspace">vspace</code> attribute <span title="maps
- to the dimension property">maps to the dimension properties</span>
- 'margin-top' and 'margin-bottom' on the <code>table</code>
- element.</p>
+ <p>When a <code>body</code> element has a <code
+ title="">bgcolor</code> attribute set, the new value is expected to
+ be parsed using the <span>rules for parsing a legacy color
+ value</span>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <span title="presentational
+ hints">presentational hint</span> setting the element's
+ 'background-color' property to the resulting color.</p>
- <p>The <code>table</code> element's <code
- title="attr-table-height">height</code> attribute <span>maps to the
- dimension property</span> 'height' on the <code>table</code>
- element.</p>
+ <p>When a <code>body</code> element has a <code
+ title="attr-body-text">text</code> attribute, its value is expected
+ to be parsed using the <span>rules for parsing a legacy color
+ value</span>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <span
+ title="presentational hints">presentational hint</span> setting the
+ element's 'color' property to the resulting color.</p>
- <p>The <code>table</code> element's <code
- title="attr-table-width">width</code> attribute <span>maps to the
- dimension property</span> 'width' on the <code>table</code>
- element.</p>
+ <p>When a <code>body</code> element has a <code
+ title="attr-body-link">link</code> attribute, its value is expected
+ to be parsed using the <span>rules for parsing a legacy color
+ value</span>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <span title="presentational
+ hints">presentational hint</span> setting the 'color' property of
+ any element in the <code>Document</code> matching the ':link'
+ pseudo-class to the resulting color.</p>
- <p>The <code>col</code> element's <code
- title="attr-col-width">width</code> attribute <span>maps to the
- dimension property</span> 'width' on the <code>col</code>
- element.</p>
+ <p>When a <code>body</code> element has a <code
+ title="attr-body-vlink">vlink</code> attribute, its value is
+ expected to be parsed using the <span>rules for parsing a legacy
+ color value</span>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <span
+ title="presentational hints">presentational hint</span> setting the
+ 'color' property of any element in the <code>Document</code>
+ matching the ':visited' pseudo-class to the resulting color.</p>
- <p>The <code>tr</code> element's <code
- title="attr-tr-height">height</code> attribute <span>maps to the
- dimension property</span> 'height' on the <code>tr</code>
- element.</p>
+ <p>When a <code>body</code> element has a <code
+ title="attr-body-alink">alink</code> attribute, its value is
+ expected to be parsed using the <span>rules for parsing a legacy
+ color value</span>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <span
+ title="presentational hints">presentational hint</span> setting the
+ 'color' property of any element in the <code>Document</code>
+ matching the ':active' pseudo-class and either the ':link'
+ pseudo-class or the ':visited' pseudo-class to the resulting
+ color.</p>
- <p>The <code>td</code> and <code>th</code> elements' <code
- title="attr-tdth-height">height</code> attributes <span title="maps
- to the dimension property">map to the dimension property</span> 'height'
- on the element.</p>
- <p>The <code>td</code> and <code>th</code> elements' <code
- title="attr-tdth-width">width</code> attributes <span title="maps
- to the dimension property">map to the dimension property</span> 'width'
- on the element.</p>
- <hr>
+ <h4>Flow content</h4>
- <p>In <span>quirks mode</span>, the following rules are also
- expected to apply:</p>
+ <!-- del, ins, and map are inline. -->
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-form { margin-bottom: 1em; }</pre>
+address, blockquote, center, div, figure, figcaption, footer, form,
+header, hr, legend, listing, p, plaintext, pre, summary, xmp {
+ display: block; unicode-bidi: isolate;
+}
- <p>When a <code>Document</code> is in <span>quirks mode</span>,
- vertical margins on <span>HTML elements</span> at the top or bottom
- of <code>body</code>, <code>td</code>, or <code>th</code> elements
- are expected to be collapsed to zero.</p>
+blockquote, figure, listing, p, plaintext, pre, xmp {
+ margin-top: 1em; margin-bottom: 1em;
+}
- </div>
+blockquote, figure { margin-left: 40px; margin-right: 40px; }
+address { font-style: italic; }
+listing, plaintext, pre, xmp {
+ font-family: monospace; white-space: pre;
+}</pre>
- <div class="impl">
+ <p>The following rules are also expected to apply, as
+ <span>presentational hints</span>:</p>
- <h4>Alignment</h4>
-
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-thead, tbody, tfoot, table > tr { vertical-align: middle; }
-tr, td, th { vertical-align: inherit; }
-sub { vertical-align: sub; }
-sup { vertical-align: super; }</pre>
+pre[wrap] { white-space: pre-wrap; }</pre>
- <hr>
+ <p>In <span>quirks mode</span>, the following rules are also
+ expected to apply:</p>
- <p>The following rules are also expected to apply, as
- <span>presentational hints</span>:</p>
-
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-table[align=left] { float: left; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-table[align=right] { float: right; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-table[align=center], table[align=abscenter],
-table[align=absmiddle], table[align=middle] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- margin-left: auto; margin-right: auto;
-}
-thead[align=absmiddle], tbody[align=absmiddle], tfoot[align=absmiddle],
-tr[align=absmiddle], td[align=absmiddle], th[align=absmiddle] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- text-align: center;
-}
+form { margin-bottom: 1em; }</pre>
-caption[align=bottom] { caption-side: bottom; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-p[align=left], h1[align=left], h2[align=left], h3[align=left],
-h4[align=left], h5[align=left], h6[align=left] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- text-align: left;
-}
-p[align=right], h1[align=right], h2[align=right], h3[align=right],
-h4[align=right], h5[align=right], h6[align=right] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- text-align: right;
-}
-p[align=center], h1[align=center], h2[align=center], h3[align=center],
-h4[align=center], h5[align=center], h6[align=center] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- text-align: center;
-}
-p[align=justify], h1[align=justify], h2[align=justify], h3[align=justify],
-h4[align=justify], h5[align=justify], h6[align=justify] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- text-align: justify;
-}
-thead[valign=top], tbody[valign=top], tfoot[valign=top],
-tr[valign=top], td[valign=top], th[valign=top] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- vertical-align: top;
-}
-thead[valign=middle], tbody[valign=middle], tfoot[valign=middle],
-tr[valign=middle], td[valign=middle], th[valign=middle] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- vertical-align: middle;
-}
-thead[valign=bottom], tbody[valign=bottom], tfoot[valign=bottom],
-tr[valign=bottom], td[valign=bottom], th[valign=bottom] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- vertical-align: bottom;
-}
-thead[valign=baseline], tbody[valign=baseline], tfoot[valign=baseline],
-tr[valign=baseline], td[valign=baseline], th[valign=baseline] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- vertical-align: baseline;
-}</pre>
+ <hr>
- <p>The <code>center</code> element, the <code>caption</code> element
- unless specified otherwise below, and the <code>div</code>,
- <code>thead</code>, <code>tbody</code>, <code>tfoot</code>,
- <code>tr</code>, <code>td</code>, and <code>th</code> elements when
- they have an <code title="attr-div-align">align</code> attribute
+ <p>The <code>center</code> element, and the <code>div</code> element
+ when it has an <code title="attr-div-align">align</code> attribute
whose value is an <span>ASCII case-insensitive</span> match for
either the string "<code title="">center</code>" or the string
"<code title="">middle</code>", are expected to center text within
@@ -104497,205 +104353,108 @@
hint</span>, and to <span>align descendants</span> to the
center.</p>
- <p>The <code>div</code>, <code>caption</code>, <code>thead</code>,
- <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
- <code>td</code>, and <code>th</code> elements, when they have an
- <code title="attr-align">align</code> attribute whose value is an
+ <p>The <code>div</code> element, when it has an <code
+ title="attr-align">align</code> attribute whose value is an
<span>ASCII case-insensitive</span> match for the string "<code
- title="">left</code>", are expected to left-align text within
- themselves, as if they had their 'text-align' property set to 'left'
- in a <span title="presentational hints">presentational hint</span>,
- and to <span>align descendants</span> to the left.</p>
+ title="">left</code>", is expected to left-align text within itself,
+ as if it had its 'text-align' property set to 'left' in a <span
+ title="presentational hints">presentational hint</span>, and to
+ <span>align descendants</span> to the left.</p>
- <p>The <code>div</code>, <code>caption</code>, <code>thead</code>,
- <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
- <code>td</code>, and <code>th</code> elements, when they have an
- <code title="attr-align">align</code> attribute whose value is an
+ <p>The <code>div</code> element, when it has an <code
+ title="attr-align">align</code> attribute whose value is an
<span>ASCII case-insensitive</span> match for the string "<code
- title="">right</code>", are expected to right-align text within
- themselves, as if they had their 'text-align' property set to
- 'right' in a <span title="presentational hints">presentational
- hint</span>, and to <span>align descendants</span> to the right.</p>
+ title="">right</code>", is expected to right-align text within
+ itself, as if it had its 'text-align' property set to 'right' in a
+ <span title="presentational hints">presentational hint</span>, and
+ to <span>align descendants</span> to the right.</p>
- <p>The <code>div</code>, <code>caption</code>, <code>thead</code>,
- <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
- <code>td</code>, and <code>th</code> elements, when they have an
- <code title="attr-align">align</code> attribute whose value is an
+ <p>The <code>div</code> element, when it has an <code
+ title="attr-align">align</code> attribute whose value is an
<span>ASCII case-insensitive</span> match for the string "<code
- title="">justify</code>", are expected to full-justify text within
- themselves, as if they had their 'text-align' property set to
- 'justify' in a <span title="presentational hints">presentational
- hint</span>, and to <span>align descendants</span> to the left.</p>
+ title="">justify</code>", is expected to full-justify text within
+ itself, as if it had its 'text-align' property set to 'justify' in a
+ <span title="presentational hints">presentational hint</span>, and
+ to <span>align descendants</span> to the left.</p>
- <p>When a user agent is to <dfn>align descendants</dfn> of a node,
- the user agent is expected to align only those descendants that have
- both their 'margin-left' and 'margin-right' properties computing to
- a value other than 'auto', that are over-constrained and that have
- one of those two margins with a used value forced to a greater
- value, and that do not themselves have an applicable <code
- title="attr-align">align</code> attribute. When multiple elements
- are to <span title="align descendants">align</span> a particular
- descendant, the most deeply nested such element is expected to
- override the others.</p>
- <p>User agents are expected to have a rule in their user agent
- stylesheet that matches <code>th</code> elements that have a parent
- node whose computed value for the 'text-align' property is its
- initial value, whose declaration block consists of just a single
- declaration that sets the 'text-align' property to the value
- 'center'.</p> <!-- q.v. '-moz-center-or-inherit' -->
- </div>
+ <h4>Phrasing content</h4>
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
- <div class="impl">
+cite, dfn, em, i, var { font-style: italic; }
+b, strong { font-weight: bold; }
+code, kbd, samp, tt { font-family: monospace; }
+big { font-size: larger; }
+small { font-size: smaller; }
- <h4>Fonts and colors</h4>
+sub { vertical-align: sub; }
+sup { vertical-align: super; }
+sub, sup { line-height: normal; font-size: smaller; }
- <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+ruby { display: ruby; }
+rt { display: ruby-text; }
-address, cite, dfn, em, i, var { font-style: italic; }
-b, strong, th { font-weight: bold; }
-code, kbd, listing, plaintext, pre, samp, tt, xmp { font-family: monospace; }
-h1 { font-size: 2.00em; font-weight: bold; }
-h2 { font-size: 1.50em; font-weight: bold; }
-h3 { font-size: 1.17em; font-weight: bold; }
-h4 { font-size: 1.00em; font-weight: bold; }
-h5 { font-size: 0.83em; font-weight: bold; }
-h6 { font-size: 0.67em; font-weight: bold; }
-big { font-size: larger; }
-small, sub, sup { font-size: smaller; }
-sub, sup { line-height: normal; }
-
:link { color: blue; }
:visited { color: purple; }
+:link, :visited { text-decoration: underline; }
+
+:focus { outline: auto; }
+
mark { background: yellow; color: black; }
-table, td, th { border-color: gray; }
-thead, tbody, tfoot, tr { border-color: inherit; }
-table[rules=none], table[rules=groups], table[rules=rows],
-table[rules=cols], table[rules=all], table[frame=void],
-table[frame=above], table[frame=below], table[frame=hsides],
-table[frame=lhs], table[frame=rhs], table[frame=vsides],
-table[frame=box], table[frame=border],
-table[rules=none] > tr > td, table[rules=none] > tr > th,
-table[rules=groups] > tr > td, table[rules=groups] > tr > th,
-table[rules=rows] > tr > td, table[rules=rows] > tr > th,
-table[rules=cols] > tr > td, table[rules=cols] > tr > th,
-table[rules=all] > tr > td, table[rules=all] > tr > th,
-table[rules=none] > thead > tr > td, table[rules=none] > thead > tr > th,
-table[rules=groups] > thead > tr > td, table[rules=groups] > thead > tr > th,
-table[rules=rows] > thead > tr > td, table[rules=rows] > thead > tr > th,
-table[rules=cols] > thead > tr > td, table[rules=cols] > thead > tr > th,
-table[rules=all] > thead > tr > td, table[rules=all] > thead > tr > th,
-table[rules=none] > tbody > tr > td, table[rules=none] > tbody > tr > th,
-table[rules=groups] > tbody > tr > td, table[rules=groups] > tbody > tr > th,
-table[rules=rows] > tbody > tr > td, table[rules=rows] > tbody > tr > th,
-table[rules=cols] > tbody > tr > td, table[rules=cols] > tbody > tr > th,
-table[rules=all] > tbody > tr > td, table[rules=all] > tbody > tr > th,
-table[rules=none] > tfoot > tr > td, table[rules=none] > tfoot > tr > th,
-table[rules=groups] > tfoot > tr > td, table[rules=groups] > tfoot > tr > th,
-table[rules=rows] > tfoot > tr > td, table[rules=rows] > tfoot > tr > th,
-table[rules=cols] > tfoot > tr > td, table[rules=cols] > tfoot > tr > th,
-table[rules=all] > tfoot > tr > td, table[rules=all] > tfoot > tr > th { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
- border-color: black;
-}</pre>
+abbr[title], acronym[title] { text-decoration: dotted underline; }<!-- CSS3 http://dev.w3.org/csswg/css3-text/#text-decoration-style -->
+ins, u { text-decoration: underline; }
+del, s, strike { text-decoration: line-through; }
+blink { text-decoration: blink; }
- <hr>
+q::before { content: open-quote; }
+q::after { content: close-quote; }
- <p>The initial value for the 'color' property is expected to be
- black. The initial value for the 'background-color' property is
- expected to be 'transparent'. The canvas' background is expected to
- be white.</p>
+br { content: '\A'; white-space: pre; }
+nobr { white-space: nowrap; }</pre>
- <hr>
+ <p>The following rules are also expected to apply, as
+ <span>presentational hints</span>:</p>
- <p>The <code>article</code>, <code>aside</code>, <code>nav</code>,
- and <code>section</code> elements are expected to affect the font
- size of <code>h1</code> elements, based on the nesting depth. If
- <var title="">x</var> is a selector that matches elements that are
- either <code>article</code>, <code>aside</code>, <code>nav</code>,
- or <code>section</code> elements, then the following rules capture
- what is expected:</p>
-
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-<var title="">x</var> h1 { font-size: 1.50em; }
-<var title="">x</var> <var title="">x</var> h1 { font-size: 1.17em; }
-<var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { font-size: 1.00em; }
-<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { font-size: 0.83em; }
-<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { font-size: 0.67em; }</pre>
+br[clear=left] { clear: left; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+br[clear=right] { clear: right; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+br[clear=all], br[clear=both] { clear: both; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */</pre>
- <hr>
+ <p>For the purposes of the CSS ruby model, runs of children of
+ <code>ruby</code> elements that are not <code>rt</code> or
+ <code>rp</code> elements are expected to be wrapped in anonymous
+ boxes whose 'display' property has the value 'ruby-base'. <a
+ href="#refsCSSRUBY">[CSSRUBY]</a></p>
- <p>When a <code>body</code>, <code>table</code>, <code>thead</code>,
- <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
- <code>td</code>, or <code>th</code> element has a <code
- title="attr-background">background</code> attribute set to a
- non-empty value, the new value is expected to be <span
- title="resolve a url">resolved</span> relative to the element, and
- if this is successful, the user agent is expected to treat the
- attribute as a <span title="presentational hints">presentational
- hint</span> setting the element's 'background-image' property to the
- resulting <span>absolute URL</span>.</p>
+ <p>User agents that do not support correct ruby rendering are
+ expected to render parentheses around the text of <code>rt</code>
+ elements in the absence of <code>rp</code> elements.</p>
- <p>When a <code>body</code>, <code>table</code>, <code>thead</code>,
- <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
- <code>td</code>, or <code>th</code> element has a <code
- title="">bgcolor</code> attribute set, the new value is expected to
- be parsed using the <span>rules for parsing a legacy color
- value</span>, and if that does not return an error, the user agent
- is expected to treat the attribute as a <span title="presentational
- hints">presentational hint</span> setting the element's
- 'background-color' property to the resulting color.</p>
+ <p>Rules setting the 'quotes' property appropriately for the locales
+ and languages understood by the user are expected to be present.</p>
- <p>When a <code>body</code> element has a <code
- title="attr-body-text">text</code> attribute, its value is expected
- to be parsed using the <span>rules for parsing a legacy color
- value</span>, and if that does not return an error, the user
- agent is expected to treat the attribute as a <span
- title="presentational hints">presentational hint</span> setting the
- element's 'color' property to the resulting color.</p>
+ <hr>
- <p>When a <code>body</code> element has a <code
- title="attr-body-link">link</code> attribute, its value is expected
- to be parsed using the <span>rules for parsing a legacy color
- value</span>, and if that does not return an error, the user agent
- is expected to treat the attribute as a <span title="presentational
- hints">presentational hint</span> setting the 'color' property of
- any element in the <code>Document</code> matching the ':link'
- pseudo-class to the resulting color.</p>
+ <p>User agents are expected to
+ support the 'clear' property on inline elements (in order to render
+ <code>br</code> elements with <code
+ title="attr-br-clear">clear</code> attributes) in the manner
+ described in the non-normative note to this effect in CSS2.1.</p>
+ <!-- section 9.5.2 of CSS2.1 -->
- <p>When a <code>body</code> element has a <code
- title="attr-body-vlink">vlink</code> attribute, its value is
- expected to be parsed using the <span>rules for parsing a legacy
- color value</span>, and if that does not return an error, the user
- agent is expected to treat the attribute as a <span
- title="presentational hints">presentational hint</span> setting the
- 'color' property of any element in the <code>Document</code>
- matching the ':visited' pseudo-class to the resulting color.</p>
+ <p>The <code>wbr</code> element is expected to override the
+ 'white-space' property and always provide a line-breaking
+ opportunity.</p>
- <p>When a <code>body</code> element has a <code
- title="attr-body-alink">alink</code> attribute, its value is
- expected to be parsed using the <span>rules for parsing a legacy
- color value</span>, and if that does not return an error, the user
- agent is expected to treat the attribute as a <span
- title="presentational hints">presentational hint</span> setting the
- 'color' property of any element in the <code>Document</code>
- matching the ':active' pseudo-class and either the ':link'
- pseudo-class or the ':visited' pseudo-class to the resulting
- color.</p>
+ <p>The initial value for the 'color' property is expected to be
+ black. The initial value for the 'background-color' property is
+ expected to be 'transparent'. The canvas' background is expected to
+ be white.</p>
- <p>When a <code>table</code> element has a <code
- title="attr-table-bordercolor">bordercolor</code> attribute, its
- value is expected to be parsed using the <span>rules for parsing a
- legacy color value</span>, and if that does not return an error, the
- user agent is expected to treat the attribute as a <span
- title="presentational hints">presentational hint</span> setting the
- element's 'border-top-color', 'border-right-color',
- 'border-bottom-color', and 'border-right-color' properties to the
- resulting color.</p>
-
<hr>
<p>When a <code>font</code> element has a <code
@@ -104835,37 +104594,77 @@
</ol>
- </div>
+ <h4>Bidirectional text</h4>
- <div class="impl">
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
- <h4>Punctuation and decorations</h4>
+:ltr { direction: ltr; }
+:rtl { direction: rtl; }
+[dir] { unicode-bidi: embed; }
+bdi, output, [dir=auto] { unicode-bidi: isolate; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+bdo, bdo[dir] { unicode-bidi: bidi-override; }
+bdo[dir=auto] { unicode-bidi: bidi-override isolate; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+textarea[dir=auto], pre[dir=auto] { unicode-bidi: plaintext; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */</pre>
+
+ <h4>Sections and headings</h4>
+
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-:link, :visited, ins, u { text-decoration: underline; }
-abbr[title], acronym[title] { text-decoration: dotted underline; }<!-- CSS3 http://dev.w3.org/csswg/css3-text/#text-decoration-style -->
-del, s, strike { text-decoration: line-through; }
-blink { text-decoration: blink; }
+article, aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section {
+ display: block; unicode-bidi: isolate;
+}
-:focus { outline: auto; }
+h1 { margin-top: 0.67em; margin-bottom: 0.67em; font-size: 2.00em; font-weight: bold; }
+h2 { margin-top: 0.83em; margin-bottom: 0.83em; font-size: 1.50em; font-weight: bold; }
+h3 { margin-top: 1.00em; margin-bottom: 1.00em; font-size: 1.17em; font-weight: bold; }
+h4 { margin-top: 1.33em; margin-bottom: 1.33em; font-size: 1.00em; font-weight: bold; }
+h5 { margin-top: 1.67em; margin-bottom: 1.67em; font-size: 0.83em; font-weight: bold; }
+h6 { margin-top: 2.33em; margin-bottom: 2.33em; font-size: 0.67em; font-weight: bold; }</pre>
-q:before { content: open-quote; }
-q:after { content: close-quote; }
+ <p>The <code>article</code>, <code>aside</code>, <code>nav</code>,
+ and <code>section</code> elements are expected to affect the margins
+ and font size of <code>h1</code> elements, based on the nesting
+ depth. If <var title="">x</var> is a selector that matches elements
+ that are either <code>article</code>, <code>aside</code>,
+ <code>nav</code>, or <code>section</code> elements, then the
+ following rules capture what is expected:</p>
-br { content: '\A'; white-space: pre; }
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-nobr { white-space: nowrap; }
-listing, plaintext, pre, xmp { white-space: pre; }
-textarea { white-space: pre-wrap; }
+<var title="">x</var> h1 { margin-top: 0.83em; margin-bottom: 0.83em; font-size: 1.50em; }
+<var title="">x</var> <var title="">x</var> h1 { margin-top: 1.00em; margin-bottom: 1.00em; font-size: 1.17em; }
+<var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.33em; margin-bottom: 1.33em; font-size: 1.00em; }
+<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.67em; margin-bottom: 1.67em; font-size: 0.83em; }
+<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 2.33em; margin-bottom: 2.33em; font-size: 0.67em; }</pre>
-ol { list-style-type: decimal; }
-dir, menu, ul {
- list-style-type: disc;
+
+ <h4>Lists</h4>
+
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+dir, dd, dl, dt, menu, ol, ul { display: block; unicode-bidi: isolate; }
+li { display: list-item; unicode-bidi: isolate; }
+
+dir, dl, menu, ol, ul { margin-top: 1em; margin-bottom: 1em; }
+
+dir dir, dir dl, dir menu, dir ol, dir ul,
+dl dir, dl dl, dl menu, dl ol, dl ul,
+menu dir, menu dl, menu menu, menu ol, menu ul,
+ol dir, ol dl, ol menu, ol ol, ol ul,
+ul dir, ul dl, ul menu, ul ol, ul ul {
+ margin-top: 0; margin-bottom: 0;
}
+dd { margin-left: 40px; } /* <span>LTR-specific</span>: use 'margin-right' for rtl elements */
+dir, menu, ol, ul { padding-left: 40px; } /* <span>LTR-specific</span>: use 'padding-right' for rtl elements */
+
+ol { list-style-type: decimal; }
+
+dir, menu, ul { list-style-type: disc; }
+
dir dl, dir menu, dir ul,
menu dl, menu menu, menu ul,
ol dl, ol menu, ol ul,
@@ -104890,43 +104689,13 @@
ul ol dl, ul ol menu, ul ol ul,
ul ul dl, ul ul menu, ul ul ul {
list-style-type: square;
-}
+}</pre>
-table { border-style: outset; }
-td, th { border-style: inset; }
-
-:ltr { direction: ltr; }
-:rtl { direction: rtl; }
-[dir] { unicode-bidi: embed; }
-bdi, output, [dir=auto] { unicode-bidi: isolate; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-bdo, bdo[dir] { unicode-bidi: bidi-override; }
-bdo[dir=auto] { unicode-bidi: bidi-override isolate; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-textarea[dir=auto], pre[dir=auto] { unicode-bidi: plaintext; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */</pre>
-
- <p>Rules setting the 'quotes' property appropriately for the locales
- and languages understood by the user are expected to be present.</p>
-
- <p>User agents are expected to
- support the 'clear' property on inline elements (in order to render
- <code>br</code> elements with <code
- title="attr-br-clear">clear</code> attributes) in the manner
- described in the non-normative note to this effect in CSS2.1.</p>
- <!-- section 9.5.2 of CSS2.1 -->
-
- <hr>
-
- <p id="decohints">The following rules are also expected to apply, as
+ <p>The following rules are also expected to apply, as
<span>presentational hints</span>:</p>
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-td[nowrap], th[nowrap] { white-space: nowrap; }
-pre[wrap] { white-space: pre-wrap; }
-
-br[clear=left] { clear: left; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-br[clear=right] { clear: right; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-br[clear=all], br[clear=both] { clear: both; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-
ol[type=1], li[type=1] { list-style-type: decimal; }
ol[type=a], li[type=a] { list-style-type: lower-alpha; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
ol[type=A], li[type=A] { list-style-type: upper-alpha; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
@@ -104934,9 +104703,128 @@
ol[type=I], li[type=I] { list-style-type: upper-roman; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
ul[type=disc], li[type=disc] { list-style-type: disc; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
ul[type=circle], li[type=circle] { list-style-type: circle; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-ul[type=square], li[type=square] { list-style-type: square; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ul[type=square], li[type=square] { list-style-type: square; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */</pre>
+ <p>When rendering <code>li</code> elements, user agents are expected
+ to use the <span>ordinal value</span> of the <code>li</code> element
+ to render the counter in the list item marker.</p>
+
+
+ <h4>Tables</h4>
+
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+table { display: table; unicode-bidi: isolate; }
+caption { display: table-caption; unicode-bidi: isolate; }
+colgroup, colgroup[hidden] { display: table-column-group; unicode-bidi: isolate; }
+col, col[hidden] { display: table-column; unicode-bidi: isolate; }
+thead, thead[hidden] { display: table-header-group; unicode-bidi: isolate; }
+tbody, tbody[hidden] { display: table-row-group; unicode-bidi: isolate; }
+tfoot, tfoot[hidden] { display: table-footer-group; unicode-bidi: isolate; }
+tr, tr[hidden] { display: table-row; unicode-bidi: isolate; }
+td, th, td[hidden], th[hidden] { display: table-cell; unicode-bidi: isolate; }
+
+colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
+tfoot[hidden], tr[hidden], td[hidden], th[hidden] {
+ visibility: collapse;
+}
+
+table {
+ border-spacing: 2px;
+ border-collapse: separate;
+ border-style: outset;
+ text-indent: initial;
+}
+
+td, th { padding: 1px; border-style: inset; }
+th { font-weight: bold; }
+
+thead, tbody, tfoot, table > tr { vertical-align: middle; }
+tr, td, th { vertical-align: inherit; }
+
+table, td, th { border-color: gray; }
+thead, tbody, tfoot, tr { border-color: inherit; }
table[rules=none], table[rules=groups], table[rules=rows],
+table[rules=cols], table[rules=all], table[frame=void],
+table[frame=above], table[frame=below], table[frame=hsides],
+table[frame=lhs], table[frame=rhs], table[frame=vsides],
+table[frame=box], table[frame=border],
+table[rules=none] > tr > td, table[rules=none] > tr > th,
+table[rules=groups] > tr > td, table[rules=groups] > tr > th,
+table[rules=rows] > tr > td, table[rules=rows] > tr > th,
+table[rules=cols] > tr > td, table[rules=cols] > tr > th,
+table[rules=all] > tr > td, table[rules=all] > tr > th,
+table[rules=none] > thead > tr > td, table[rules=none] > thead > tr > th,
+table[rules=groups] > thead > tr > td, table[rules=groups] > thead > tr > th,
+table[rules=rows] > thead > tr > td, table[rules=rows] > thead > tr > th,
+table[rules=cols] > thead > tr > td, table[rules=cols] > thead > tr > th,
+table[rules=all] > thead > tr > td, table[rules=all] > thead > tr > th,
+table[rules=none] > tbody > tr > td, table[rules=none] > tbody > tr > th,
+table[rules=groups] > tbody > tr > td, table[rules=groups] > tbody > tr > th,
+table[rules=rows] > tbody > tr > td, table[rules=rows] > tbody > tr > th,
+table[rules=cols] > tbody > tr > td, table[rules=cols] > tbody > tr > th,
+table[rules=all] > tbody > tr > td, table[rules=all] > tbody > tr > th,
+table[rules=none] > tfoot > tr > td, table[rules=none] > tfoot > tr > th,
+table[rules=groups] > tfoot > tr > td, table[rules=groups] > tfoot > tr > th,
+table[rules=rows] > tfoot > tr > td, table[rules=rows] > tfoot > tr > th,
+table[rules=cols] > tfoot > tr > td, table[rules=cols] > tfoot > tr > th,
+table[rules=all] > tfoot > tr > td, table[rules=all] > tfoot > tr > th { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ border-color: black;
+}</pre>
+
+ <p>The following rules are also expected to apply, as
+ <span>presentational hints</span>:</p>
+
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+table[align=left] { float: left; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+table[align=right] { float: right; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+table[align=center], table[align=abscenter],
+table[align=absmiddle], table[align=middle] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ margin-left: auto; margin-right: auto;
+}
+thead[align=absmiddle], tbody[align=absmiddle], tfoot[align=absmiddle],
+tr[align=absmiddle], td[align=absmiddle], th[align=absmiddle] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ text-align: center;
+}
+
+caption[align=bottom] { caption-side: bottom; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+p[align=left], h1[align=left], h2[align=left], h3[align=left],
+h4[align=left], h5[align=left], h6[align=left] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ text-align: left;
+}
+p[align=right], h1[align=right], h2[align=right], h3[align=right],
+h4[align=right], h5[align=right], h6[align=right] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ text-align: right;
+}
+p[align=center], h1[align=center], h2[align=center], h3[align=center],
+h4[align=center], h5[align=center], h6[align=center] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ text-align: center;
+}
+p[align=justify], h1[align=justify], h2[align=justify], h3[align=justify],
+h4[align=justify], h5[align=justify], h6[align=justify] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ text-align: justify;
+}
+thead[valign=top], tbody[valign=top], tfoot[valign=top],
+tr[valign=top], td[valign=top], th[valign=top] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ vertical-align: top;
+}
+thead[valign=middle], tbody[valign=middle], tfoot[valign=middle],
+tr[valign=middle], td[valign=middle], th[valign=middle] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ vertical-align: middle;
+}
+thead[valign=bottom], tbody[valign=bottom], tfoot[valign=bottom],
+tr[valign=bottom], td[valign=bottom], th[valign=bottom] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ vertical-align: bottom;
+}
+thead[valign=baseline], tbody[valign=baseline], tfoot[valign=baseline],
+tr[valign=baseline], td[valign=baseline], th[valign=baseline] { /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
+ vertical-align: baseline;
+}
+
+td[nowrap], th[nowrap] { white-space: nowrap; }
+
+table[rules=none], table[rules=groups], table[rules=rows],
table[rules=cols], table[rules=all] {
border-style: none;
border-collapse: collapse;
@@ -104998,11 +104886,202 @@
border-width: 1px;
}</pre>
- <p>When rendering <code>li</code> elements, user agents are expected
- to use the <span>ordinal value</span> of the <code>li</code> element
- to render the counter in the list item marker.</p>
+ <p>In <span>quirks mode</span>, the following rules are also
+ expected to apply:</p>
+ <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+table {
+ font-weight: initial;
+ font-style: initial;
+ font-variant: initial;
+ font-size: initial;
+ line-height: initial;
+ white-space: initial;
+ text-align: initial;
+}</pre>
+
+ <hr>
+
+ <p>For the purposes of the CSS table model, the <code>col</code>
+ element is expected to be treated as if it was present as many times
+ as its <code title="attr-col-span">span</code> attribute <span
+ title="rules for parsing non-negative
+ integers">specifies</span>.</p>
+
+ <p>For the purposes of the CSS table model, the
+ <code>colgroup</code> element, if it contains no <code>col</code>
+ element, is expected to be treated as if it had as many such
+ children as its <code title="attr-colgroup-span">span</code>
+ attribute <span title="rules for parsing non-negative
+ integers">specifies</span>.</p>
+
+ <p>For the purposes of the CSS table model, the <code
+ title="attr-tdth-colspan">colspan</code> and <code
+ title="attr-tdth-rowspan">rowspan</code> attributes on
+ <code>td</code> and <code>th</code> elements are expected to <span
+ title="rules for parsing non-negative integers">provide</span> the
+ <i>special knowledge</i> regarding cells spanning rows and
+ columns.</p>
+
+ <p>In <span>HTML documents</span>, the user agent is expected to
+ hide <code>form</code> elements that are children of
+ <code>table</code>, <code>thead</code>, <code>tbody</code>,
+ <code>tfoot</code>, or <code>tr</code> elements, irrespective of CSS
+ rules.</p>
+
+ <hr>
+
<p>The <code>table</code> element's <code
+ title="attr-table-cellspacing">cellspacing</code> attribute
+ <span>maps to the pixel length property</span> 'border-spacing' on the
+ element.</p>
+
+ <p>The <code>table</code> element's <code
+ title="attr-table-cellpadding">cellpadding</code> attribute <span
+ title="maps to the pixel length property">maps to the pixel length
+ properties</span> 'padding-top', 'padding-right', 'padding-bottom',
+ and 'padding-left' of any <code>td</code> and <code>th</code>
+ elements that have corresponding <span
+ title="concept-cell">cells</span> in the <span
+ title="concept-table">table</span> corresponding to the
+ <code>table</code> element.</p>
+
+ <p>The <code>table</code> element's <code
+ title="attr-table-hspace">hspace</code> attribute <span title="maps
+ to the dimension property">maps to the dimension properties</span>
+ 'margin-left' and 'margin-right' on the <code>table</code>
+ element.</p>
+
+ <p>The <code>table</code> element's <code
+ title="attr-table-vspace">vspace</code> attribute <span title="maps
+ to the dimension property">maps to the dimension properties</span>
+ 'margin-top' and 'margin-bottom' on the <code>table</code>
+ element.</p>
+
+ <p>The <code>table</code> element's <code
+ title="attr-table-height">height</code> attribute <span>maps to the
+ dimension property</span> 'height' on the <code>table</code>
+ element.</p>
+
+ <p>The <code>table</code> element's <code
+ title="attr-table-width">width</code> attribute <span>maps to the
+ dimension property</span> 'width' on the <code>table</code>
+ element.</p>
+
+ <p>The <code>col</code> element's <code
+ title="attr-col-width">width</code> attribute <span>maps to the
+ dimension property</span> 'width' on the <code>col</code>
+ element.</p>
+
+ <p>The <code>tr</code> element's <code
+ title="attr-tr-height">height</code> attribute <span>maps to the
+ dimension property</span> 'height' on the <code>tr</code>
+ element.</p>
+
+ <p>The <code>td</code> and <code>th</code> elements' <code
+ title="attr-tdth-height">height</code> attributes <span title="maps
+ to the dimension property">map to the dimension property</span> 'height'
+ on the element.</p>
+
+ <p>The <code>td</code> and <code>th</code> elements' <code
+ title="attr-tdth-width">width</code> attributes <span title="maps
+ to the dimension property">map to the dimension property</span> 'width'
+ on the element.</p>
+
+ <p>When a <code>Document</code> is in <span>quirks mode</span>,
+ vertical margins on <span>HTML elements</span> at the top or bottom
+ of <code>td</code> or <code>th</code> elements are expected to be
+ collapsed to zero.</p>
+
+ <hr>
+
+ <p>The the <code>caption</code> element unless specified otherwise
+ below, and the <code>thead</code>, <code>tbody</code>,
+ <code>tfoot</code>, <code>tr</code>, <code>td</code>, and
+ <code>th</code> elements when they have an <code
+ title="attr-div-align">align</code> attribute whose value is an
+ <span>ASCII case-insensitive</span> match for either the string
+ "<code title="">center</code>" or the string "<code
+ title="">middle</code>", are expected to center text within
+ themselves, as if they had their 'text-align' property set to
+ 'center' in a <span title="presentational hints">presentational
+ hint</span>, and to <span>align descendants</span> to the
+ center.</p>
+
+ <p>The <code>caption</code>, <code>thead</code>, <code>tbody</code>,
+ <code>tfoot</code>, <code>tr</code>, <code>td</code>, and
+ <code>th</code> elements, when they have an <code
+ title="attr-align">align</code> attribute whose value is an
+ <span>ASCII case-insensitive</span> match for the string "<code
+ title="">left</code>", are expected to left-align text within
+ themselves, as if they had their 'text-align' property set to 'left'
+ in a <span title="presentational hints">presentational hint</span>,
+ and to <span>align descendants</span> to the left.</p>
+
+ <p>The <code>caption</code>, <code>thead</code>, <code>tbody</code>,
+ <code>tfoot</code>, <code>tr</code>, <code>td</code>, and
+ <code>th</code> elements, when they have an <code
+ title="attr-align">align</code> attribute whose value is an
+ <span>ASCII case-insensitive</span> match for the string "<code
+ title="">right</code>", are expected to right-align text within
+ themselves, as if they had their 'text-align' property set to
+ 'right' in a <span title="presentational hints">presentational
+ hint</span>, and to <span>align descendants</span> to the right.</p>
+
+ <p>The <code>caption</code>, <code>thead</code>, <code>tbody</code>,
+ <code>tfoot</code>, <code>tr</code>, <code>td</code>, and
+ <code>th</code> elements, when they have an <code
+ title="attr-align">align</code> attribute whose value is an
+ <span>ASCII case-insensitive</span> match for the string "<code
+ title="">justify</code>", are expected to full-justify text within
+ themselves, as if they had their 'text-align' property set to
+ 'justify' in a <span title="presentational hints">presentational
+ hint</span>, and to <span>align descendants</span> to the left.</p>
+
+ <p>User agents are expected to have a rule in their user agent
+ stylesheet that matches <code>th</code> elements that have a parent
+ node whose computed value for the 'text-align' property is its
+ initial value, whose declaration block consists of just a single
+ declaration that sets the 'text-align' property to the value
+ 'center'.</p> <!-- q.v. '-moz-center-or-inherit' -->
+
+ <hr>
+
+ <p>When a <code>table</code>, <code>thead</code>,
+ <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
+ <code>td</code>, or <code>th</code> element has a <code
+ title="attr-background">background</code> attribute set to a
+ non-empty value, the new value is expected to be <span
+ title="resolve a url">resolved</span> relative to the element, and
+ if this is successful, the user agent is expected to treat the
+ attribute as a <span title="presentational hints">presentational
+ hint</span> setting the element's 'background-image' property to the
+ resulting <span>absolute URL</span>.</p>
+
+ <p>When a <code>table</code>, <code>thead</code>,
+ <code>tbody</code>, <code>tfoot</code>, <code>tr</code>,
+ <code>td</code>, or <code>th</code> element has a <code
+ title="">bgcolor</code> attribute set, the new value is expected to
+ be parsed using the <span>rules for parsing a legacy color
+ value</span>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <span title="presentational
+ hints">presentational hint</span> setting the element's
+ 'background-color' property to the resulting color.</p>
+
+ <p>When a <code>table</code> element has a <code
+ title="attr-table-bordercolor">bordercolor</code> attribute, its
+ value is expected to be parsed using the <span>rules for parsing a
+ legacy color value</span>, and if that does not return an error, the
+ user agent is expected to treat the attribute as a <span
+ title="presentational hints">presentational hint</span> setting the
+ element's 'border-top-color', 'border-right-color',
+ 'border-bottom-color', and 'border-right-color' properties to the
+ resulting color.</p>
+
+ <hr>
+
+ <p>The <code>table</code> element's <code
title="attr-table-border">border</code> attribute <span title="maps
to the pixel length property">maps to the pixel length
properties</span> 'border-top-width', 'border-right-width',
@@ -105024,51 +105103,31 @@
<span>table model</span> as the <code>table</code> element to
zero.</p>
- <p>The <code>wbr</code> element is expected to override the
- 'white-space' property and always provide a line-breaking
- opportunity.</p>
- </div>
+ <h4>Form controls</h4>
- <div class="impl">
-
- <h4>Resetting rules for inherited properties</h4>
-
- <p>The following rules are also expected to be in play, resetting
- certain properties to block inheritance by default.</p>
-
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-table, input, select, option, optgroup, button, textarea, keygen {
+input, select, option, optgroup, button, textarea, keygen {
text-indent: initial;
-}</pre>
+}
- <!-- arguably, the form controls' 'text-indent' lines should be in
- the sections below instead of here, but that would be far more
- complicated than this -->
+textarea { white-space: pre-wrap; }
+</pre>
<p>In <span>quirks mode</span>, the following rules are also
expected to apply:</p>
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
-table {
- font-weight: initial;
- font-style: initial;
- font-variant: initial;
- font-size: initial;
- line-height: initial;
- white-space: initial;
- text-align: initial;
-}
-
input { box-sizing: border-box; }</pre>
- </div>
+ <p>Each kind of form control is also given a specific default
+ binding, as described in subsequent sections, which implements the
+ look and feel of the control.</p>
- <div class="impl">
<h4>The <code>hr</code> element</h4>
@@ -105123,11 +105182,8 @@
hints">presentational hint</span> setting the element's 'color'
property to the resulting color.</p>
- </div>
- <div class="impl">
-
<h4>The <code>fieldset</code> element</h4>
<pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
@@ -105188,11 +105244,7 @@
<td>In the middle
</table>
- </div>
-
- <div class="impl">
-
<h3>Replaced elements</h3>
<h4>Embedded content</h4>