11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
22<html lang="en">
3- <!-- $Id: visuren.src,v 1.69 1998-01-28 18:09:18 bbos Exp $ -->
3+ <!-- $Id: visuren.src,v 1.70 1998-01-29 00:52:53 ijacobs Exp $ -->
44<HEAD>
55<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
66<TITLE>Visual rendering model</TITLE>
@@ -46,9 +46,18 @@ in the containing block is also affected by the edges of those
4646floating boxes.
4747
4848<P>The <a href="#box-model">box model</a> describes the generation of
49- boxes. The normal, float, and absolute positioning models describe the
50- <a href="#layout">layout</a> of these boxes with respect to containing
51- blocks.
49+ boxes. The layout of these boxes is governed by:</p>
50+
51+ <ul>
52+ <li><a href="#box-dimensions">box dimensions</a> and <a
53+ href="#box-gen">type</a>.
54+ <li><a href="#positioning-scheme">positioning scheme</a>
55+ (normal, float, and absolute positioning models).
56+ <li>relationships between elements
57+ in the <a href="conform.html#doctree">document tree.</a>
58+ <li>external information (e.g., viewport size, intrinsic
59+ dimensions of images, etc.).
60+ </ul>
5261
5362<P>The properties defined in this chapter apply to both <a
5463href="media.html#continuous-media-group">continuous media</a> and <a
@@ -114,7 +123,8 @@ elements</dfn></span> are those elements of the document language that
114123do not cause paragraph breaks (e.g., pieces of text, inline images,
115124etc.). Several values of the <span
116125class="propinst-display">'display'</span> property make an element
117- inline: 'inline', 'compact' and 'run-in' (part of the time; see <a
126+ inline: 'inline', 'inline-table',
127+ 'compact' and 'run-in' (part of the time; see <a
118128href="#compact-and-run-in">compact and run-in boxes</a>).
119129Inline elements generate inline boxes.
120130
@@ -152,10 +162,10 @@ class="propinst-display">'display'</span> value.
152162For information about lists and examples of list formatting,
153163please consult the section on <a href="lists.html">lists</a>.
154164
155- <dt><span class="index-def" title="'none'::as list style"><span
156- class="value-def-none"><strong>'none'</strong></span></span>
165+ <dt><span class="value-def-none"><strong>'none'</strong></span>
157166
158- <dd>This value causes an element to generate <b>no</b> boxes in the <a
167+ <dd><span class="index-def" title="'none'::as list style">This
168+ value</span> causes an element to generate <b>no</b> boxes in the <a
159169href="intro.html#rendering-structure">rendering structure</a> (i.e.,
160170the element has no effect on layout). Descendant elements do not
161171generate any boxes either; this behavior <strong>cannot</strong> be
@@ -175,24 +185,25 @@ name="value-def-compact"><strong>'compact'</strong></a></span>
175185<dd>These values create a box that is block-level
176186or inline, depending on context. These values are described below.
177187
178- <dt><span class="index-def" title="'table', definition
179- of"><a name="value-def-table"><strong>'table'</strong></a></span>, <span
180- class="index-def" title="'row-group', definition of"><a
181- name="value-def-row-group"><strong>'row-group'</strong></a></span>, <span
182- class="index-def" title="'col-group', definition of"><a
183- name="value-def-col-group"><strong>'col-group'</strong></a></span>, <span
184- class="index-def" title="'row', definition of"><a
185- name="value-def-row"><strong>'row'</strong></a></span>, <span class="index-def"
186- title="'col', definition of"><a
187- name="value-def-col"><strong>'col'</strong></a></span>, <span class="index-def"
188- title="'cell', definition of"><a
189- name="value-def-cell"><strong>'cell'</strong></a></span>, and <span class="index-def"
190- title="'caption', definition of"><a
191- name="value-def-caption"><strong>'caption'</strong></a></span>
192- <dd>These values cause an element to behave
193- like a <a href="tables.html#table-elements">table element</a>
188+ <dt><span class="index-def" title="'table', definition of"><a
189+ name="value-def-table"><strong>'table'</strong></a></span>, <span
190+ class="index-def" title="<inline-table>, definition of"><a
191+ name="value-def-inline-table"><inline-table></a></span>, <span
192+ class="index-def" title="'table-row-group', definition of"><a
193+ name="value-def-table-row-group"><strong>'table-row-group'</strong></a></span>,
194+ <span class="index-def" title="'table-column-group', definition of"><a
195+ name="value-def-table-column-group"><strong>'table-column-group'</strong></a></span>,
196+ <span class="index-def" title="'table-header-group', definition of"><a name="value-def-table-header-group">'table-header-group'</a></span>,
197+ <span class="index-def" title="'table-footer-group', definition of"><a name="value-def-table-footer-group">'table-footer-group'</a></span>,
198+ <span class="index-def" title="'table-row', definition of"><a
199+ name="value-def-table-row"><strong>'table-row'</strong></a></span>, <span
200+ class="index-def" title="'table-cell', definition of"><a
201+ name="value-def-table-cell"><strong>'table-cell'</strong></a></span>, and <span
202+ class="index-def" title="'table-caption', definition of"><a
203+ name="value-def-table-caption"><strong>'table-caption'</strong></a></span>
204+ <dd>These values cause an element to behave like a table element
194205(subject to restrictions described in the chapter on <a
195- href="tables.html">tables</a>.
206+ href="tables.html">tables</a>) .
196207</dl>
197208
198209<P>Note that although the <a href="cascade.html#initial-value">initial
@@ -545,22 +556,7 @@ used for the LI padding.
545556<span class="propinst-border-style">'border-style'</span> property).
546557</ul>
547558
548- <H2><a name="layout">Box layout</a></H2>
549-
550- <P>The remainder of the visual rendering model describes how user
551- agents lay out boxes. Layout is affected by:</p>
552-
553- <ul>
554- <li><a href="#box-dimensions">Box dimensions</a> and <a
555- href="#box-gen">type</a>.
556- <li><a href="#positioning-scheme">Position scheme</a>.
557- <li>Relationships between elements
558- in the <a href="conform.html#doctree">document tree.</a>
559- <li>External information (e.g., viewport size, intrinsic
560- dimensions of images, etc.).
561- </ul>
562-
563- <h3><a name="positioning-scheme">Positioning schemes</a></h3>
559+ <h2><a name="positioning-scheme">Positioning schemes</a></h2>
564560
565561<P>In CSS2, a box may be laid out according to three <span
566562class="index-def" title="positioning scheme"><dfn>positioning
@@ -591,8 +587,8 @@ their absolutely positioned sister did not exist at all. Later
591587siblings of floating boxes flow with respect to the final
592588position of the floating box.
593589
594- <h4 ><a name="choose-position">Choosing a positioning scheme:</a> <span
595- class="propinst-position">'position'</span> property</h4 >
590+ <h3 ><a name="choose-position">Choosing a positioning scheme:</a> <span
591+ class="propinst-position">'position'</span> property</h3 >
596592
597593<P>The <span class="propinst-position">'position'</span>, and <span
598594class="propinst-float">'float'</span> properties determine which CSS2
@@ -650,11 +646,11 @@ class="propinst-position">'position'</span> property to 'relative'.
650646</em>
651647</div>
652648
653- <H4 ><a name="position-props">Box offsets</a>: <span
649+ <H3 ><a name="position-props">Box offsets</a>: <span
654650class="propinst-top">'top'</span>, <span
655651class="propinst-right">'right'</span>, <span
656652class="propinst-bottom">'bottom'</span>, <span
657- class="propinst-left">'left'</span></H4 >
653+ class="propinst-left">'left'</span></H3 >
658654
659655<P>The position of an <a href="#relative-positioning">relatively</A>
660656or <a href="#absolute-positioning">absolutely</A> (including <a
@@ -721,7 +717,7 @@ consult the sections on <a href="visudet.html#box-width">box width
721717calculations</a> and <a href="visudet.html#box-height">box height
722718calculations</a> respectively.
723719
724- <H3 ><a name="normal-flow">Normal flow</a></H3 >
720+ <H2 ><a name="normal-flow">Normal flow</a></H2 >
725721
726722<P>Boxes in the normal flow belong to a <span class="index-def"
727723title="formatting context">formatting context</span>, which may be
@@ -733,7 +729,7 @@ href="#block-formatting">block formatting</a> context.
733729<P><a href="#inline">Inline</a> boxes participate in an <a
734730href="#inline-formatting">inline formatting</a> context.
735731
736- <h4 ><a name="anonymous">Anonymous boxes</a></h4 >
732+ <h3 ><a name="anonymous">Anonymous boxes</a></h3 >
737733
738734<P>Block-level elements whose <a
739735href="conform.html#rendered-content">rendered content</a> contains
@@ -750,7 +746,7 @@ construction of anonymous inline boxes depend on many factors
750746(language, hyphenation, etc.) and lie outside the scope of this
751747specification.
752748
753- <h4 ><a name="block-formatting">Block formatting context</a></h4 >
749+ <h3 ><a name="block-formatting">Block formatting context</a></h3 >
754750
755751<P>In a block formatting context, boxes are laid out one after the
756752other, vertically. The vertical distance between two sibling boxes is
@@ -769,7 +765,7 @@ href="#absolute-positioning">absolute</a> positioning).
769765the section on <a href="page.html#allowed-page-breaks">allowed
770766page breaks</a>.
771767
772- <H4 ><a name="inline-formatting">Inline formatting context</a></H4 >
768+ <H3 ><a name="inline-formatting">Inline formatting context</a></H3 >
773769
774770<P>In an inline formatting context, boxes are laid out horizontally,
775771one after the other. Horizontal margins, borders, and padding are
@@ -906,8 +902,8 @@ dashed border is rendered on three sides in each case.
906902<P>Note that with a small line height, the padding and borders
907903around text in different lines may overlap.
908904
909- <h4 ><a name="direction">Direction of inline flow</a>: the <span
910- class="propinst-direction">'direction'</span> property</h4 >
905+ <h3 ><a name="direction">Direction of inline flow</a>: the <span
906+ class="propinst-direction">'direction'</span> property</h3 >
911907
912908<!-- #include src=properties/direction.srb -->
913909
@@ -947,7 +943,7 @@ side of the parent box is no preceding box exists) is similarly
947943determined by the source element's <span
948944class="propinst-margin">'margin'</span> properties.
949945
950- <H4 ><a name="relative-positioning">Relative positioning</a></H4 >
946+ <H3 ><a name="relative-positioning">Relative positioning</a></H3 >
951947
952948<P>Once a box has been assigned a position according to the <a
953949href="#normal-flow">normal flow</a>, it may be shifted relative to
@@ -988,11 +984,27 @@ information.
988984href="#comparison">comparing normal, relative, floating, and
989985absolute positioning</a>.
990986
991- <H3 ><a name="floats">Floats</a>: the <span
987+ <H2 ><a name="floats">Floats</a>: the <span
992988class="propinst-float">'float'</span> and <span
993- class="propinst-clear">'clear'</span> properties</H3 >
989+ class="propinst-clear">'clear'</span> properties</H2 >
994990
995- <P>A floating box is given a position and height according to the <a
991+ <P>A floating box has two interesting qualities:
992+
993+ <ol>
994+ <li>It may be positioned at the right or left edge of
995+ a containing block (the <span class="propinst-float">'float'</span>
996+ property).
997+ <li>It may or may not allow content to flow next to it
998+ (the <span class="propinst-clear">'clear'</span> property).
999+ </ol>
1000+
1001+ <!-- #include src=properties/float.srb -->
1002+
1003+ <P>This property specifies whether a box should float to the left,
1004+ right, or not at all. It may be set for elements that generate boxes
1005+ that are not positioned absolutely (including fixed boxes).
1006+
1007+ A floating box is given a position and height according to the <a
9961008href="#normal-flow">normal flow</a> (the <a
9971009href="cascade.html#computed-value">computed value</a> of the <span
9981010class="propinst-width">'width'</span> is '0' unless assigned
@@ -1008,12 +1020,7 @@ The margins of floating boxes never <a
10081020href="visudet.html#collapsing-margins">collapse</a> with margins of
10091021adjacent boxes.
10101022
1011- <!-- #include src=properties/float.srb -->
1012-
1013- <P>This property specifies whether a box should float to the left,
1014- right, or not at all. It may be set for elements that generate boxes
1015- that are not positioned absolutely (including fixed boxes). The
1016- values have the following meanings:</p>
1023+ <P>The values of this property have the following meanings:</p>
10171024
10181025<dl>
10191026<dt><strong>left</strong>
@@ -1076,7 +1083,7 @@ The following HTML source:
10761083IMG element and that the vertical margins do not collapse.
10771084</div>
10781085
1079- <H4 >Controlling boxes adjacent to floating boxes</H4 >
1086+ <H3 >Controlling flow next to floats</H3 >
10801087
10811088<!-- #include src=properties/clear.srb -->
10821089
@@ -1131,7 +1138,7 @@ href="visudet.html#floating-constraints">floating constraints</a> for
11311138additional constraints.
11321139
11331140
1134- <H3 ><a name="absolute-positioning">Absolute positioning</a></H3 >
1141+ <H2 ><a name="absolute-positioning">Absolute positioning</a></H2 >
11351142
11361143<!--
11371144<p>Absolutely positioned boxes act like block-level boxes, but
@@ -1151,7 +1158,7 @@ around any other boxes. They may or may not obscure the contents of
11511158another box, depending on the <a href="#z-order">z-order</a> of the
11521159overlapping boxes.
11531160
1154- <H4 ><a name="fixed-positioning">Fixed positioning</a></H4 >
1161+ <H3 ><a name="fixed-positioning">Fixed positioning</a></H3 >
11551162
11561163<P>Fixed positioning is a variant of absolute positioning. The only
11571164difference is that for a fixed positioned box, the containing block is
@@ -1230,7 +1237,7 @@ style rules:</P>
12301237</PRE>
12311238</DIV>
12321239
1233- <h3 >Relationships between 'display', 'position', and 'float'</h3 >
1240+ <h2 >Relationships between 'display', 'position', and 'float'</h2 >
12341241
12351242<P>When specified for the same elements, the three properties that
12361243affect box generation and layout -- <span
@@ -1277,7 +1284,7 @@ implementations of CSS2.
12771284</em>
12781285</div>
12791286
1280- <H3 ><a name="comparison">Comparison of normal, relative, floating, absolute positioning</a></H3 >
1287+ <H2 ><a name="comparison">Comparison of normal, relative, floating, absolute positioning</a></H2 >
12811288<P>To illustrate the relationship between normal flow, relative
12821289positioning, floats, and absolute positioning, we provide a series of
12831290examples based on the following HTML fragment:
@@ -1305,7 +1312,7 @@ href="#normal-flow">normal flow</a> position of the double-spaced (for
13051312clarity) lines.</p>
13061313
13071314<P> </P>
1308- <H4 >Normal flow</H4 >
1315+ <H3 >Normal flow</H3 >
13091316
13101317<p>Consider the following CSS declarations for <em>outer</em> and
13111318<em>inner</em> that don't alter the <a href="#normal-flow">normal
@@ -1321,7 +1328,7 @@ flow</a> of boxes:</p>
13211328<P><img src="./images/flow-generic.gif"
13221329 alt="Image illustrating the normal flow of text between parent and sibling boxes."></p>
13231330
1324- <H4 >Relative positioning</H4 >
1331+ <H3 >Relative positioning</H3 >
13251332
13261333<P>To see the effect of <a href="#relative-positioning">relative
13271334positioning</a>, consider the following CSS rules:
@@ -1351,7 +1358,7 @@ relative positioning of <em>outer</em>.</P>
13511358<P>Note also that if the relative positioning of <em>outer</em> were -24px, the
13521359text of <em>outer</em> and the body text would have overlapped.
13531360
1354- <H4 >Floating a box</H4 >
1361+ <H3 >Floating a box</H3 >
13551362
13561363<P>Now consider the effect of <a href="#floats">floating</a> the
13571364<em>inner</em> element's text to the right by means of the following
@@ -1419,7 +1426,7 @@ moved below the float:
14191426<P><img src="./images/flow-clear2.gif"
14201427alt="Image illustrating the effects of floating an element with setting the clear property to control the flow of text around the element."></p>
14211428
1422- <H4 >Absolute positioning</H4 >
1429+ <H3 >Absolute positioning</H3 >
14231430
14241431<p>Finally, we consider the effect of <a
14251432href="#absolute-positioning">absolute positioning</a>.
0 commit comments