11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
22<html lang="en">
3- <!-- $Id: visuren.src,v 2.80 2002-04-23 23:29:32 bbos Exp $ -->
3+ <!-- $Id: visuren.src,v 2.81 2002-04-30 17:51:03 bbos Exp $ -->
44<head>
55<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
66<title>Visual formatting model</title>
@@ -636,7 +636,13 @@ href="#containing-block">containing block</a>. The height of a line
636636box is determined by the rules given in the section on <a
637637href="visudet.html#line-height">line height calculations</a>.
638638
639- <p>When several inline boxes cannot fit horizontally within a single
639+ <p>A line box is always tall enough for all of the boxes it contains.
640+ However, it may be taller than the tallest box it contains
641+ (if, for example, boxes are aligned so that baselines line up).
642+ When the height of a box B is less than the height of the line box containing it,
643+ the vertical alignment of B within the line box is determined by
644+ the 'vertical-align' property.
645+ When several inline boxes cannot fit horizontally within a single
640646line box, they are distributed among two or more vertically-stacked
641647line boxes. Thus, a paragraph is a vertical stack of line boxes. Line
642648boxes are stacked with no vertical separation and they never overlap.
@@ -783,17 +789,8 @@ line breaks and the space originally reserved for it. The section on
783789<a href="#containing-block">containing blocks</a> explains when a
784790relatively positioned box establishes a new containing block.
785791
786- <p>A relatively positioned box is generated when the <span
787- class="propinst-position">'position'</span> property for an element
788- has the value 'relative'. The offset is specified by the <span
789- class="propinst-top">'top'</span>, <span
790- class="propinst-bottom">'bottom'</span>, <span
791- class="propinst-left">'left'</span>, and <span
792- class="propinst-right">'right'</span> properties.
793-
794-
795792<p>For relatively positioned elements, 'left' and 'right' move the
796- box(es) horizontally, without changing their size. 'Left ' moves the
793+ box(es) horizontally, without changing their size. 'left ' moves the
797794boxes to the right, and 'right' moves them to the left. Since boxes
798795are not split or stretched as a result of 'left' or 'right', the
799796computed values are always: left = -right.
@@ -825,8 +822,11 @@ div.a8 { position: relative; direction: ltr; left: -1em; right: 5em }
825822</div>
826823
827824<p>The 'top' and 'bottom' properties move relatively positioned
828- elements up or down. They also must be each other's negative. If both
829- are 'auto', their computed values are both '0'. If one of them is
825+ element(s) up or down without changing their size. 'top' moves the
826+ boxes down, and 'bottom' moves them up. Since boxes
827+ are not split or stretched as a result of 'top' or 'bottom', the
828+ computed values are always: top = -bottom.
829+ If both are 'auto', their computed values are both '0'. If one of them is
830830'auto', it becomes the negative of the other. If neither is 'auto',
831831'bottom' is ignored (i.e., the computed value of 'bottom' will be
832832minus the value of 'top').
@@ -1247,27 +1247,39 @@ class="propinst-float">'float'</span> -- interact as follows:</p>
12471247
12481248<ol>
12491249<li>If <span class="propinst-display">'display'</span>
1250- has the value 'none',
1251- user agents must <a href="syndata.html#ignore">ignore</a>
1250+ has the value 'none', then
12521251<span class="propinst-position">'position'</span> and
1253- <span class="propinst-float">'float'</span>. In this
1254- case, the element generates no box.
1252+ <span class="propinst-float">'float'</span> do not apply.
1253+ In this case, the element generates no box.
12551254
12561255<li>Otherwise, if <span class="propinst-position">'position'</span>
1257- has the value 'absolute' or 'fixed', then the computed value of <span
1258- class="propinst-display">'display'</span> is 'block' and the computed
1259- value of <span class="propinst-float">'float'</span> is 'none'. The
1260- position of the box will be determined by the <span
1256+ has the value 'absolute' or 'fixed', the box is absolutely positioned,
1257+ the computed
1258+ value of <span class="propinst-float">'float'</span> is 'none',
1259+ and display is set according to this table:
1260+
1261+ <table border="1">
1262+ <tr><th>Specified value <th style="width:30%">Computed value
1263+ <tr><td>inline-table <td>table
1264+ <tr><td>inline, run-in, table-row-group, table-column,
1265+ table-column-group, table-header-group, table-footer-group, table-row,
1266+ table-cell, table-caption, inline-block <td>block
1267+ <tr><td>others <td>same as specified
1268+ </table>
1269+
1270+ <p>The position of the box will be determined by the <span
12611271class="propinst-top">'top'</span>, <span
12621272class="propinst-right">'right'</span>, <span
12631273class="propinst-bottom">'bottom'</span> and <span
12641274class="propinst-left">'left'</span> properties and the box's
12651275containing block.
1276+ </p>
1277+ </li>
12661278
12671279<li>Otherwise, if 'float' has a value other than 'none', the box is
12681280floated and 'display' is set according to this table:
1269- <table>
1270- <tr><th>Specified value <th>Computed value
1281+ <table border="1" >
1282+ <tr><th>Specified value <th style="width:30%" >Computed value
12711283<tr><td>inline-table <td>table
12721284<tr><td>inline, run-in, table-row-group, table-column,
12731285table-column-group, table-header-group, table-footer-group, table-row,
@@ -1280,17 +1292,6 @@ class="propinst-display">'display'</span> property values apply
12801292as specified.
12811293</ol>
12821294
1283- <div class="note"><p>
1284- <em><strong>Note.</strong> CSS2 does not
1285- specify layout behavior when values for these properties are changed
1286- by scripts. For example, what happens when an element having 'width:
1287- auto' is repositioned? Do the contents reflow, or do they maintain
1288- their original formatting? The answer is outside the scope of this
1289- document, and such behavior is likely to differ in initial
1290- implementations of CSS2.
1291- </em>
1292- </div>
1293-
12941295<h2><a name="comparison">Comparison of normal flow, floats,
12951296and absolute positioning</a></h2>
12961297<p>To illustrate the differences between normal flow, relative
@@ -1750,28 +1751,15 @@ written with Hebrew letters) to Latin letters at the user's request.
17501751<p>The HTML 4.0 specification ([HTML40], section 8.2) defines
17511752bidirectionality behavior for HTML elements. <a
17521753href="conform.html#conformance">Conforming</a> user agents that
1753- do not support bidirectional text may
1754- therefore ignore the <span
1754+ do not support bidirectional text may ignore the <span
17551755class="propinst-direction">'direction'</span> and <span
17561756class="propinst-unicode-bidi">'unicode-bidi'</span> properties in
1757- author and user style sheets if a 'unicode-bidi' or 'direction' value
1758- conflicts with the HTML 4.0 "dir" attribute value. The style sheet
1757+ author and user style sheets. The style sheet
17591758rules that would achieve the bidi behavior specified in [[HTML40]] are
17601759given in <a href="sample.html#bidi">the sample style sheet</a>. The
17611760HTML 4.0 specification also contains more information on
17621761bidirectionality issues.
17631762
1764- <div class="note">
1765- <em><strong>Note.</strong>
1766- User agents are not required to support the <span
1767- class="propinst-direction">'direction'</span> and <span
1768- class="propinst-unicode-bidi">'unicode-bidi'</span> properties
1769- to <a href="conform.html#conformance">conform</a> to
1770- CSS2 unless they support bi-directional text rendering
1771- (except for the case of HTML 4.0 as noted above).
1772- </em>
1773- </div>
1774-
17751763
17761764<!-- #include src=properties/direction.srb -->
17771765
0 commit comments