- From: James Elmore <James.Elmore@cox.net>
- Date: Wed, 04 Jul 2007 14:29:31 -0700
- To: www-style@w3.org
Just so that things don't get too dull, here is some possible text defining the
inclusion of <caption> elements in all 'block' elements. This is based on CSS
2.1 (because I don't have access to the CSS 3 Table specification. I checked the
HTML 5 specification and prefer my solution to the one proposed there (<figure>
with contained <legend>), because that forces an additional layer of nesting.)
<caption> elements
The user may specify that any block will have a caption. The <caption> element,
if specified, must be the first element inside the block element. If more than
one caption element exists inside a single block, only the first one is used and
the rest are ignored.
A block which contains a caption is drawn with the block margin moved out on one
side enough to place the caption between the border and the margin. If no margin
is present, the caption (and its defined bounding box, including margins) are
treated as the margin on the caption side of the block. If no border is present,
the caption is drawn between the padding and the margin. Boxes which have no
borders or padding will have the caption drawn between the content and the margin.
Normal rules for margin-collapse apply to captions. The usual case will have the
caption margin closest to the rest of the block remain and the caption margin
farthest from the block collapse into the block’s margin. [If ‘margin-collapse’
styles are approved, this will be controllable.]
The ‘caption-side’ property specifies where the caption will be drawn. [In CSS
2.1, the values for ‘caption-side’ were ‘top’, ‘bottom’, or ‘inherit.’ I prefer
to use ‘before’, ‘after’, and ‘inherit’ to include captions in blocks when text
flow is (for example) top-to-bottom. If text flow is top-to-bottom and lines
stack right-to-left (as in some Chinese texts), ‘before’ will be on the right of
the block and the caption will be displayed top-to-bottom.]
'caption-side'
Value: before | after | inherit
Initial: before
Applies to: 'block-caption' elements
Inherited: yes
Percentages: N/A
Media: visual
Computed value: as specified
This property specifies the position of the caption box with respect to the
containing block. Values have the following meanings:
before
Positions the caption box before the containing box, in the direction of
line-stacking.
bottom
Positions the caption box after the containing box, in the direction of
line-stacking.
To align caption content horizontally within the caption box, use the
'text-align' property.
In this example, assuming standard English text, the 'caption-side' property
places captions after (below) blocks. The caption will be as wide as the block
parent, and caption text will be left-justified.
caption { caption-side: after; width: auto; text-align: left }
--
James Elmore
22162 Windward Way
Lake Forest, CA 92630
Home (949) 830-9534
Email James.Elmore@cox.net
Received on Wednesday, 4 July 2007 21:29:44 UTC