/[suikacvs]/webroot/www/2004/id/draft-ietf-html-tables-03.txt
Suika

Contents of /webroot/www/2004/id/draft-ietf-html-tables-03.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Tue Jun 15 08:04:04 2004 UTC (19 years, 11 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1
2
3
4 HTML Tables 27-Oct-1995
5
6 INTERNET DRAFT Dave Raggett, W3C
7 Expires in six months email: <dsr@w3.org>
8
9 HTML Tables
10
11 <draft-ietf-html-tables-03.txt>
12
13 Status of this Memo
14
15 This document is an Internet draft. Internet drafts are working
16 documents of the Internet Engineering Task Force (IETF), its areas
17 and its working groups. Note that other groups may also distribute
18 working information as Internet drafts.
19
20 Internet Drafts are draft documents valid for a maximum of six
21 months and can be updated, replaced or obsoleted by other documents
22 at any time. It is inappropriate to use Internet drafts as reference
23 material or to cite them as other than as "work in progress".
24
25 To learn the current status of any Internet draft please check the
26 "lid-abstracts.txt" listing contained in the Internet drafts shadow
27 directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
28 munnari.oz.au (Pacific Rim), ds.internic.net (US East coast) or
29 ftp.isi.edu (US West coast). Further information about the IETF can
30 be found at URL: http://www.ietf.org/
31
32 Distribution of this document is unlimited. Please send comments to
33 the HTML working group (HTML-WG) of the Internet Engineering Task
34 Force (IETF) at <html-wg@oclc.org>. Discussions of this group are
35 archived at URL: http://www.acl.lanl.gov/HTML-WG/archives.html.
36
37 This specification is also available via the Web in hypertext form
38 as a Working Draft of the World Wide Web Consortium, see:
39 http://www.w3.org/pub/WWW/TR/Overview.html
40
41 Abstract
42
43 The HyperText Markup Language (HTML) is a simple markup language
44 used to create hypertext documents that are portable from one
45 platform to another. HTML documents are SGML documents with generic
46 semantics that are appropriate for representing information from a
47 wide range of applications. This specification extends HTML to
48 support a wide variety of tables. The model is designed to work well
49 with associated style sheets, but does not require them. It also
50 supports rendering to braille, or speech, and exchange of tabular
51 data with databases and spreadsheets. The HTML table model embodies
52 certain aspects of the CALS table model, e.g. the ability to group
53 table rows into thead, tbody and tfoot sections, plus the ability to
54 specify cell alignment compactly for sets of cells according to the
55 context.
56
57 ------------------------------------------------------------------------------
58
59
60 Dave Raggett Page 1
61
62
63
64 HTML Tables 27-Oct-1995
65
66 Contents
67
68 * Recent Changes .................................................... 2
69
70 * Brief Introduction ................................................ 3
71
72 * Design Rationale .................................................. 5
73
74 * Walkthrough of the Table DTD ...................................... 7
75
76 * Recommended Layout Algorithms .................................... 20
77
78 * The Table DTD .................................................... 23
79
80 * References ....................................................... 26
81
82 Recent Changes
83
84 This specification extends HTML to support tables. The table model
85 has grown out of early work on HTML+ and the initial draft of HTML3.
86 The earlier model has been been extended in response to requests
87 from information providers for improved control over the
88 presentation of tabular information:
89
90 * alignment on designated characters such as "." and ":"
91 e.g. aligning a column of numbers on the decimal point
92
93 * more flexibility in specifying table frames and rules
94
95 * incremental display for large tables as data is received
96
97 * the ability to support scrollable tables with fixed headers plus
98 better support for breaking tables across pages for printing
99
100 * optional column based defaults for alignment properties
101
102 In addition, a major goal has been to provide backwards
103 compatibility with the widely deployed Netscape implementation of
104 tables. A subsidiary goal has been to simplify importing tables
105 conforming to the SGML CALS model. The latest draft makes the ALIGN
106 attribute compatible with the latest Netscape and Microsoft
107 browsers. Some clarifications have been made to the role of the DIR
108 attribute and recommended behaviour when absolute and relative
109 column widths are mixed.
110
111 A new element COLGROUP has been introduced to allow sets of columns
112 be grouped with different width and alignment properties specified
113 by one or more COL elements. The STYLE attribute is defined as a
114 means for extending the properties associated with edges and
115 interiors of groups of cells. For instance, the line style: dotted,
116 double, thin/thick etc; the colour/pattern fill for the interior;
117 cell margins and font info. This will be the subject for a companion
118 specification on style sheets.
119
120 Dave Raggett Page 2
121
122
123
124 HTML Tables 27-Oct-1995
125
126 The FRAME and RULES attributes have been modified to avoid SGML name
127 clashes with each other, and to avoid clashes with the ALIGN and
128 VALIGN attributes. These changes are chosen to avoid future problems
129 if this specification is extended to allow FRAME and RULES
130 attributes with other table elements.
131
132 ------------------------------------------------------------------------------
133 A Brief Introduction to HTML Tables
134
135 Tables start with an optional caption followed by one or more rows.
136 Each row is formed by one or more cells, which are differentiated
137 into header and data cells. Cells can be merged across rows and
138 columns, and include attributes assisting rendering to speech and
139 braille, or for exporting table data into databases. The model
140 provides limited support for control over appearence, for example
141 horizontal and vertical alignment of cell contents, border styles
142 and cell margins. You can further affect this by grouping rows and
143 columns together. Tables can contain a wide range of content, such
144 as headers, lists, paragraphs, forms, figures, preformatted text and
145 even nested tables.
146
147 Example
148
149 <TABLE BORDER>
150 <CAPTION>A test table with merged cells</CAPTION>
151 <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
152 <TH ROWSPAN=2>other<BR>category<TH>Misc
153 <TR><TH>height<TH>weight
154 <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
155 <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
156 </TABLE>
157
158 On a dumb terminal, this would be rendered something like:
159
160 A test table with merged cells
161 /--------------------------------------------------\
162 | | Average | other | Misc |
163 | |-------------------| category |--------|
164 | | height | weight | | |
165 |-----------------------------------------|--------|
166 | males | 1.9 | 0.003 | | |
167 |-----------------------------------------|--------|
168 | females | 1.7 | 0.002 | | |
169 \--------------------------------------------------/
170
171
172 Next, a richer example with grouped rows and columns (adapted from
173 "Developing International Software" by Nadine Kano). First here is
174 what the table looks like on paper:
175
176
177
178
179
180 Dave Raggett Page 3
181
182
183
184 HTML Tables 27-Oct-1995
185
186
187 CODE-PAGE SUPPORT IN MICROSOFT WINDOWS
188 ===============================================================================
189 Code-Page | Name | ACP OEMCP | Windows Windows Windows
190 ID | | | NT 3.1 NT 3.51 95
191 -------------------------------------------------------------------------------
192 1200 | Unicode (BMP of ISO 10646) | | X X *
193 1250 | Windows 3.1 Eastern European | X | X X X
194 1251 | Windows 3.1 Cyrillic | X | X X X
195 1252 | Windows 3.1 US (ANSI) | X | X X X
196 1253 | Windows 3.1 Greek | X | X X X
197 1254 | Windows 3.1 Turkish | X | X X X
198 1255 | Hebrew | X | X
199 1256 | Arabic | X | X
200 1257 | Baltic | X | X
201 1361 | Korean (Johab) | X | ** X
202 -------------------------------------------------------------------------------
203 437 | MS-DOS United States | X | X X X
204 708 | Arabic (ASMO 708) | X | X
205 709 | Arabic (ASMO 449+, BCON V4) | X | X
206 710 | Arabic (Transparent Arabic) | X | X
207 720 | Arabic (Transparent ASMO) | X | X
208 ===============================================================================
209
210
211 The markup for this uses COL elements to group columns and set
212 column alignment. TBODY elements are used to group rows. The FRAME
213 and RULES attributes are used to select which borders to render.
214
215
216 <table border=2 frame=hsides rules=cols>
217 <caption>CODE-PAGE SUPPORT IN MICROSOFT WINDOWS</caption>
218 <col align=center>
219 <col align=left>
220 <col align=center span=2>
221 <col align=center span=3>
222 <thead valign=top>
223 <tr>
224 <th>Code-Page<br>ID
225 <th>Name
226 <th>ACP
227 <th>OEMCP
228 <th>Windows<br>NT 3.1
229 <th>Windows<br>NT 3.51
230 <th>Windows<br>95
231 <tbody>
232 <tr><td>1200<td>Unicode (BMP of ISO 10646)<td><td><td>X<td>X<TD>*
233 <tr><td>1250<td>Windows 3.1 Eastern European<td>X<td><td>X<td>X<TD>X
234 <tr><td>1251<td>Windows 3.1 Cyrillic<td>X<td><td>X<td>X<TD>X
235 <tr><td>1252<td>Windows 3.1 US (ANSI)<td>X<td><td>X<td>X<TD>X
236 <tr><td>1253<td>Windows 3.1 Greek<td>X<td><td>X<td>X<TD>X
237 <tr><td>1254<td>Windows 3.1 Turkish<td>X<td><td>X<td>X<TD>X
238 <tr><td>1255<td>Hebrew<td>X<td><td><td><td>X
239
240 Dave Raggett Page 4
241
242
243
244 HTML Tables 27-Oct-1995
245
246 <tr><td>1256<td>Arabic<td>X<td><td><td><td>X
247 <tr><td>1257<td>Baltic<td>X<td><td><td><td>X
248 <tr><td>1361<td>Korean (Johab)<td>X<td><td><td>**<td>X
249 <tbody>
250 <tr><td>437<td>MS-DOS United States<td><td>X<td>X<td>X<TD>X
251 <tr><td>708<td>Arabic (ASMO 708)<td><td>X<td><td><td>X
252 <tr><td>709<td>Arabic (ASMO 449+, BCON V4)<td><td>X<td><td><td>X
253 <tr><td>710<td>Arabic (Transparent Arabic)<td><td>X<td><td><td>X
254 <tr><td>720<td>Arabic (Transparent ASMO)<td><td>X<td><td><td>X
255 </table>
256
257
258 ------------------------------------------------------------------------------
259 Design Rationale
260
261 The HTML table model has evolved from studies of existing SGML
262 tables models, the treatment of tables in common word processing
263 packages, and looking at a wide range of tabular layout in
264 magazines, books and other paper-based documents. The model was
265 chosen to allow simple tables to be expressed simply with extra
266 complexity only when needed. This makes it practical to create the
267 markup for HTML tables with everyday text editors and reduces the
268 learning curve for getting started. This feature has been very
269 important to the success of HTML to date.
270
271 Increasingly people are using filters from other document formats or
272 direct wysiwyg editors for HTML. It is important that the HTML table
273 model fits well with these routes for authoring HTML. This affects
274 how the representation handles cells which span multiple rows or
275 columns, and how alignment and other presentation properties are
276 associated with groups of cells.
277
278 A major consideration for the HTML table model is that the fonts and
279 window sizes etc. in use with browsers are not under the author's
280 control. This makes it risky to rely on column widths specified in
281 terms of absolute units such as picas or pixels. Instead, tables can
282 be dynamically sized to match the current window size and fonts.
283 Authors can provide guidance as to the relative widths of columns,
284 but user agents should to ensure that columns are wide enough to
285 avoid clipping cell contents.
286
287 For large tables or slow network connections, it is desirable to be
288 able to start displaying the table before all of the data has been
289 received. The default window width for most user agents shows about
290 80 characters, and the graphics for many HTML pages are designed
291 with these defaults in mind. Authors can provide a hint to user
292 agents to activate incremental display of table contents. This
293 feature requires the author to specify the number of columns, and
294 includes provision for control of table width and the relative
295 widths of different columns.
296
297
298
299
300 Dave Raggett Page 5
301
302
303
304 HTML Tables 27-Oct-1995
305
306 For incremental display, the browser needs the number of columns and
307 their widths. The default width of the table is the current window
308 size (width="100%"). This can be altered by including a WIDTH
309 attribute in the TABLE start tag. By default all columns have the
310 same width, but you can specify column widths with one or more COL
311 elements before the table data starts.
312
313 The remaining issue is the number of columns. Some people have
314 suggested waiting until the first row of the table has been
315 received, but this could take a long time if the cells have a lot of
316 content. On the whole it makes more sense, when incremental display
317 is desired, to get authors to explicitly specify the number of
318 columns in the TABLE start tag.
319
320 Authors still need a way of informing the browser whether to use
321 incremental display or to automatically size the table to match the
322 cell contents. For the two pass auto sizing mode, the number of
323 columns is determined by the first pass, while for the incremental
324 mode, the number of columns needs to be stated up front. So it seems
325 to that COLS=_nn_ would be better for this purpose than a LAYOUT
326 attribute such as LAYOUT=FIXED or LAYOUT=AUTO.
327
328 It is generally held useful to consider documents from two
329 perspectives: Structural idioms such as headers, paragraphs, lists,
330 tables, and figures; and rendering idioms such as margins, leading,
331 font names and sizes. The wisdom of past experience encourages us to
332 separate the structural information in documents from rendering
333 information. Mixing them together ends up causing increased cost of
334 ownership for maintaining documents, and reduced portability between
335 applications and media.
336
337 For tables, the alignment of text within table cells, and the
338 borders between cells are, from the purist's point of view,
339 rendering information. In practice, though, it is useful to group
340 these with the structural information, as these features are highly
341 portable from one application to the next. The HTML table model
342 leaves most rendering information to associated style sheets. The
343 model is designed to take advantage of such style sheets but not to
344 require them.
345
346 This specification provides a superset of the simpler model
347 presented in earlier work on HTML+. Tables are considered as being
348 formed from an optional caption together with a sequence of rows,
349 which in turn consist of a sequence of table cells. The model
350 further differentiates header and data cells, and allows cells to
351 span multiple rows and columns.
352
353 Following the CALS table model, this specification allows table rows
354 to be grouped into head and body and foot sections. This simplifies
355 the representation of rendering information and can be used to
356 repeat table head and foot rows when breaking tables across page
357 boundaries, or to provide fixed headers above a scrollable body
358 panel. In the markup, the foot section is placed before the body
359
360 Dave Raggett Page 6
361
362
363
364 HTML Tables 27-Oct-1995
365
366 sections. This is an optimization shared with CALS for dealing with
367 very long tables. It allows the foot to be rendered without having
368 to wait for the entire table to be processed.
369
370 For the visually impaired, HTML offers the hope of setting to rights
371 the damage caused by the adoption of windows based graphical user
372 interfaces. The HTML table model includes attributes for labeling
373 each cell, to support high quality text to speech conversion. The
374 same attributes can also be used to support automated import and
375 export of table data to databases or spreadsheets.
376
377 Current desktop publishing packages provide very rich control over
378 the rendering of tables, and it would be impractical to reproduce
379 this in HTML, without making HTML into a bulky rich text format like
380 RTF or MIF. This specification does, however, offer authors the
381 ability to choose from a set of commonly used classes of border
382 styles. The FRAME attribute controls the appearence of the border
383 frame around the table while the RULES attribute determines the
384 choice of rulings within the table. A finer level of control will be
385 supported via rendering annotations. The STYLE attribute can be used
386 for including rendering information with individual elements.
387 Further rendering information can be given with the STYLE element in
388 the document head or via linked style sheets.
389
390 During the development of this specification, a number of avenues
391 were investigated for specifying the ruling patterns for tables. One
392 issue concerns the kinds of statements that can be made. Including
393 support for edge subtraction as well as edge addition leads to
394 relatively complex algorithms. For instance work on allowing the
395 full set of table elements to include the FRAME and RULES attributes
396 led to an algorithm involving some 24 steps to determine whether a
397 particular edge of a cell should be ruled or not. Even this
398 additional complexity doesn't provide enough rendering control to
399 meet the full range of needs for tables. The current specification
400 deliberately sticks to a simple intuitive model, sufficient for most
401 purposes. Further experimental work is needed before a more complex
402 approach is standardized.
403
404 ------------------------------------------------------------------------------
405 A walk through the table DTD
406
407 The table document type definition provides the formal definition of
408 the allowed syntax for html tables. The following is an annotated
409 listing of the DTD. The complete listing appears at the end of this
410 document.
411
412 Note that the TABLE element is a block-like element rather a
413 character-level element. As such it is a peer of other HTML
414 block-like elements such as paragraphs, lists and headers.
415
416
417
418
419
420 Dave Raggett Page 7
421
422
423
424 HTML Tables 27-Oct-1995
425
426 Common Attributes
427
428 The following attributes occur in several of the elements and are
429 defined here for brevity. In general, all attribute names and values
430 in this specification are case insensitive, except where noted
431 otherwise.
432
433
434 <!ENTITY % attrs
435 "id ID #IMPLIED -- element identifier --
436 class NAMES #IMPLIED -- for subclassing elements --
437 style CDATA #IMPLIED -- rendering annotation --
438 lang NAME #IMPLIED -- as per RFC 1766 --
439 dir (ltr|rtl) #IMPLIED -- I18N text direction --">
440
441
442 ID
443 Used to define a document-wide identifier. This can be used for
444 naming positions within documents as the destination of a
445 hypertext link. It may also be used by style sheets for
446 rendering an element in a unique style. An ID attribute value is
447 an SGML NAME token. NAME tokens are formed by an initial letter
448 followed by letters, digits, "-" and "." characters. The letters
449 are restricted to A-Z and a-z.
450
451 CLASS
452 A space separated list of SGML NAME tokens. CLASS names specify
453 that the element belongs to the corresponding named classes.
454 These may be used by style sheets to provide class dependent
455 renderings.
456
457 STYLE
458 A text string providing rendering information specific to this
459 element. The notation is specified with the STYLE element in the
460 document head. The user agent can select an appropriate
461 rendering style based on rendering annotations using the STYLE
462 attribute of the current element, rendering information in the
463 STYLE element in the document head, and linked style sheets. The
464 specification of the syntax and semantics for style notations is
465 outside the scope of this document.
466
467 LANG
468 A LANG attribute identifies the natural language used by the
469 content of the associated element.The syntax and registry of
470 language values are defined by RFC 1766. In summary the language
471 is given as a primary tag followed by zero or more subtags,
472 separated by "-". White space is not allowed and all tags are
473 case insensitive. The name space of tags is administered by
474 IANA. The two letter primary tag is an ISO 639 language
475 abbreviation, while the initial subtag is a two letter ISO 3166
476 country code. Example values for LANG include:
477
478 en, en-US, en-uk, i-cherokee, x-pig-latin.
479
480 Dave Raggett Page 8
481
482
483
484 HTML Tables 27-Oct-1995
485
486 DIR
487 Human writing systems are grouped into scripts, which determine
488 amongst other things, the direction the characters are written.
489 Elements of the Latin script are nominally left to right, while
490 those of the Arabic script are nominally right to left. These
491 characters have what is called strong directionality. Other
492 characters can be directionally neutral (spaces) or weak
493 (punctuation).
494
495 The DIR attribute specifies an encapsulation boundary which
496 governs the interpretation of neutral and weakly directional
497 characters. It does not override the directionality of strongly
498 directional characters. The DIR attribute value is one of LTR
499 for left to right, or RTL for right to left, e.g. DIR=RTL.
500
501 When applied to TABLE, it indicates the geometric layout of rows
502 (i.e. row 1 is on right if DIR=RTL, but on the left if DIR=LTR)
503 and it indicates a default base directionality for any text in
504 the table's content if no other DIR attribute applies to that
505 text.
506
507 ------------------------------------------------------------------------------
508 Horizontal and Vertical Alignment Attributes
509
510 The alignment of cell contents can be specified on a cell by cell
511 basis, or inherited from enclosing elements, such as the row, column
512 or the table element itself.
513
514 ALIGN
515 This specifies the horizontal alignment of cell contents.
516
517 <!-- horizontal alignment attributes for cell contents -->
518 <!ENTITY % cell.halign
519 "align (left|center|right|justify|char) #IMPLIED
520 char CDATA #IMPLIED -- alignment char, e.g. char=':' --
521 charoff CDATA #IMPLIED -- offset for alignment char --"
522 >
523
524 The attribute value should be one of LEFT, CENTER, RIGHT,
525 JUSTIFY and CHAR. User agents may treat JUSTIFY as left
526 alignment if they lack support for text justification.
527 ALIGN=CHAR is used for aligning cell contents on a particular
528 character.
529
530 For cells spanning multiple rows or columns, where the alignment
531 property is inherited from the row or column, the initial row
532 and column for the cell determines the appropriate alignment
533 property to use.
534
535 Note that an alignment attribute on elements within the cell,
536 e.g. on a P element, overrides the normal alignment value for
537 the cell.
538
539
540 Dave Raggett Page 9
541
542
543
544 HTML Tables 27-Oct-1995
545
546 CHAR
547 This is used to specify an alignment character for use with
548 align=char, e.g. char=":". The default character is the decimal
549 point for the current language, as set by the LANG attribute.
550 The CHAR attribute value is case sensitive.
551
552 CHAROFF
553 Specifies the offset to the first occurrence of the alignment
554 character on each line. If a line doesn't include the alignment
555 character, it should be horizontally shifted to end at the
556 alignment position. The resolved direction of the cell, as
557 determined by the inheritance of the DIR attribute, is used to
558 set whether the offset is from the left or right margin of the
559 cell. For Latin scripts, the offset will be from the left
560 margin, while for Arabic scripts, it will be from the right
561 margin. In addition to standard units, the "%" sign may be used
562 to indicate that the value specifies the alignment position as a
563 percentage offset of the current cell, e.g. CHAROFF="30%"
564 indicates the alignment character should be positioned 30%
565 through the cell.
566
567 In the absence of an explicit or inherited CHAROFF attribute,
568 the default alignment position when using the two pass layout
569 algorithm can be determined by choosing the position that would
570 center lines for which the width before and after the alignment
571 character are at the maximum values for any of the lines in the
572 column for which ALIGN=CHAR. For incremental table layout the
573 suggested default is CHAROFF="50%". If several cells in
574 different rows for the same column use character alignment, then
575 by default, all such cells should line up, regardless of which
576 character is used for alignment.
577
578 VALIGN
579 Defines whether the cell contents are aligned with the top,
580 middle or bottom of the cell.
581
582 <!-- vertical alignment attributes for cell contents -->
583 <!ENTITY % cell.valign
584 "valign (top|middle|bottom|baseline) #IMPLIED"
585 >
586
587 If present, the value of the attribute should be one of: TOP,
588 MIDDLE, BOTTOM or BASELINE. All cells in the same row with
589 valign=baseline should be vertically positioned so that the
590 first text line in each such cell occur on a common baseline.
591 This constraint does not apply to subsequent text lines in these
592 cells.
593
594
595
596
597
598
599
600 Dave Raggett Page 10
601
602
603
604 HTML Tables 27-Oct-1995
605
606 Inheritance Order
607
608 Alignment properties can be included with most of the table
609 elements: COL, THEAD, TBODY, TFOOT, TR, TH and TD. When rendering
610 cells, horizontal alignment is determined by columns in preference
611 to rows, while for vertical alignment, the rows are more important
612 than the columns. The following table gives the detailed precedence
613 order for each attribute:
614
615 ALIGN, CHAR and CHAROFF:
616
617 cells < columns < column groups < rows < row groups < default
618
619 VALIGN, LANG, DIR and STYLE:
620
621 cells < rows < row groups < columns < column groups < table < default
622
623 Where cells are defined by TH and TD elements; rows by TR elements;
624 row groups by THEAD, TBODY and TFOOT elements, columns by COL
625 elements; and column groups by COLGROUP and COL elements. Note that
626 there is no inheritance mechanism for the CLASS attribute.
627
628 Properties defined on cells take precedence over inherited
629 properties, but are in turn over-ridden by alignment properties on
630 elements within cells. In the absence of an ALIGN attribute along
631 the inheritance path, the recommended default alignment for table
632 cell contents is ALIGN=LEFT for table data and ALIGN=CENTER for
633 table headers. The recommended default for vertical alignment is
634 VALIGN=MIDDLE. These defaults are chosen to match the behaviour of
635 the widely deployed Netscape implementation.
636
637 ------------------------------------------------------------------------------
638 Standard Units for Widths
639
640 Several attributes specify widths as a number followed by an
641 optional suffix. The units for widths are specified by the suffix:
642 pt denotes points, pi denotes picas, in denotes inches, cm denotes
643 centimeters, mm denotes millimeters, em denotes em units (equal to
644 the height of the default font), and px denotes screen pixels. The
645 default units are screen pixels (chosen for backwards
646 compatibility). The number is an integer value or a real valued
647 number such as "2.5". Exponents, as in "1.2e2", are not allowed.
648 White space is not allowed between the number and the suffix.
649
650 The above set of suffices is augmented for certain elements: "%" is
651 used for the WIDTH attribute for the TABLE element. It indicates
652 that the attribute specifies the percentage width of the space
653 between the current left and right margins, e.g. width="50%". For
654 the COL element, "*" is used with the the WIDTH attribute to specify
655 relative column widths, e.g. width="3*", using the same
656 representation as the CALS table model.
657
658 ------------------------------------------------------------------------------
659
660 Dave Raggett Page 11
661
662
663
664 HTML Tables 27-Oct-1995
665
666 The TABLE element
667
668
669 <!ENTITY % Where "(left|center|right)">
670
671 <!ELEMENT table - - (caption?, (col|colgroup)*, thead?, tfoot?, tbody+)>
672
673 <!ATTLIST table -- table element --
674 %attrs; -- id, lang, style, dir and class --
675 align %Where; #IMPLIED -- table position relative to window --
676 width CDATA #IMPLIED -- table width relative to window --
677 cols NUMBER #IMPLIED -- used for immediate display mode --
678 border CDATA #IMPLIED -- controls frame width around table --
679 frame %Frame; #IMPLIED -- which parts of table frame to include --
680 rules %Rules; #IMPLIED -- controls rules between cells --
681 cellspacing CDATA #IMPLIED -- spacing between cells --
682 cellpadding CDATA #IMPLIED -- spacing within cells --
683 >
684
685 The TABLE element requires both start and end tags. Table elements
686 start with an optional CAPTION element, optionally followed by one
687 or more COL or COLGROUP elements, then an optional THEAD, an
688 optional TFOOT, and finally one or more TBODY elements.
689
690 ------------------------------------------------------------------------------
691 ID, CLASS, STYLE, LANG and DIR
692 See earlier description of common attributes.
693
694 ALIGN
695 Defines the horizontal position of the table relative to the
696 current left and right margins. ALIGN=CENTER centers the table
697 midway between the left and right margins. To allow text to flow
698 around the table, use ALIGN=LEFT to position the table at the
699 left margin, with text flowing around its right handside, or use
700 ALIGN=RIGHT to position the table at the right margin, with text
701 flowing around its left handside.
702
703 Note use <BR CLEAR=LEFT> after the table element if you want to
704 avoid text flowing along side the table when you have specified
705 ALIGN=LEFT, or <BR CLEAR=RIGHT> for a right aligned table.
706
707 WIDTH
708 Specifies the desired width of the table. In addition to the
709 standard units, the "%" sign may used to indicate that the width
710 specifies the percentage width of the space between the current
711 left and right margins, e.g. width="50%".
712
713 It is recommended that the table width be increased beyond the
714 value indicated by the WIDTH attribute as needed to avoid
715 clipping of cell contents. In the absence of this attribute, the
716 table width can be determined by the layout algorithm given
717 later on.
718
719
720 Dave Raggett Page 12
721
722
723
724 HTML Tables 27-Oct-1995
725
726 COLS
727 Specifies the number of columns for the table. If present the
728 user agent may render the table dynamically as data is received
729 from the network without waiting for the complete table to be
730 received. If the WIDTH attribute is missing, a default of "100%"
731 may be assumed for this purpose. If the COLS attribute is
732 absent, a prepass through the table's contents is needed to
733 determine the number of columns together with suitable values
734 for the widths of each column.
735
736 BORDER
737 Specifies the width of the border framing the table, see
738 standard units.
739
740 FRAME
741 Specifies which sides of the frame to render.
742
743 <!ENTITY % Frame
744 "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
745
746 VOID
747 Don't render any sides of the frame.
748
749 ABOVE
750 The top side of the frame
751
752 BELOW
753 The bottom side of the frame
754
755 HSIDES
756 The top and bottom sides of the frame
757
758 LHS
759 The left hand side of the frame
760
761 RHS
762 The right hand side of the frame
763
764 VSIDES
765 The left and right sides of the frame
766
767 BOX
768 All four sides of the frame
769
770 BORDER
771 All four sides of the frame
772
773 The value "Border" is included for backwards compatibility with
774 deployed browsers. If a document includes <TABLE BORDER> the
775 user agent will see FRAME=BORDER and BORDER=_implied_. If the
776 document includes <TABLE BORDER=_n_> then the user agent should
777 treat this as FRAME=BORDER except if _n=0_ for which FRAME=VOID
778 is appropriate.
779
780 Dave Raggett Page 13
781
782
783
784 HTML Tables 27-Oct-1995
785
786 RULES
787 Specifies where to draw rules within the table interior. The
788 values have been chosen to avoid an SGML NAME clash with the
789 FRAME attribute.
790
791 <!ENTITY % Rules "(none | basic | rows | cols | all)">
792
793 NONE
794 Suppresses internal rulings.
795
796 BASIC
797 The THEAD, TFOOT and TBODY elements divide the table into
798 groups of rows. This choice places a horizontal rule between
799 each such group.
800
801 ROWS
802 Place horizontal rules between all rows. User agents may
803 choose to use a heavier rule between groups of rows for
804 emphasis.
805
806 COLS
807 Place vertical rules between groups of columns as defined by
808 COLSET and COL elements, plus horizontal rules between row
809 groups (see rules=basic).
810
811 ALL
812 Place rules between all rows and all columns. User agents
813 may choose to use a heavier rule between groups of rows and
814 columns for emphasis.
815
816 If a document includes <TABLE BORDER> or <TABLE BORDER=_n_> then
817 the default for the table element is RULES=ALL, except if _n=0_
818 for which RULES=NONE is appropriate.
819
820 CELLSPACING
821 Specifies the space between individual cells in a table. See
822 standard units.
823
824 CELLPADDING
825 Specifies the amount of space between the border of the cell and
826 its contents. See standard units.
827
828 ------------------------------------------------------------------------------
829 Table Captions
830
831 <!ELEMENT caption - - (%text;)+>
832
833 <!ENTITY % Caption "(top|bottom|left|right)">
834
835 <!ATTLIST caption -- table caption --
836 %attrs; -- id, lang, style, dir and class --
837 align %Caption; #IMPLIED -- relative to table --
838 >
839
840 Dave Raggett Page 14
841
842
843
844 HTML Tables 27-Oct-1995
845
846 The optional CAPTION element is used to provide a caption for the
847 table. Both start and end tags are required.
848
849 ID, CLASS, STYLE, LANG and DIR
850 See earlier description of common attributes.
851
852 ALIGN
853 This may be used to control the placement of captions relative
854 to the table. When present, the ALIGN attribute should have one
855 of the values: TOP, BOTTOM, LEFT and RIGHT. It is recommended
856 that the caption is made to fit within the width or height of
857 the table as appropriate. The default position of the caption is
858 deliberately unspecified.
859
860 _The ALIGN attribute is overused in HTML, but is retained here
861 for compatibility with currently deployed browsers._
862
863 ------------------------------------------------------------------------------
864 The COLGROUP Element
865
866 <!ELEMENT colgroup - O (col+)>
867
868 <!ATTLIST colgroup
869 %attrs; -- id, lang, style, dir and class --
870 %cell.halign; -- horizontal alignment in cells --
871 %cell.valign; -- vertical alignment in cells --
872 >
873
874 Normally, the COL element defines a group of one or more columns.
875 The number of columns in the group is specified by the SPAN
876 attribute. If you also want to specify the width for each of the
877 columns using the WIDTH attribute, then each of the columns must
878 have the same width.
879
880 The COLGROUP element allows you to escape this limitation. It acts
881 as a container for one or more COL elements, so you can give each of
882 the columns in the group different widths and alignment properties.
883 COLGROUP suppresses the normal interpretation of COL elements as
884 column groups for any COL elements contained within it.
885
886 COLGROUP requires a start tag, but the end tag may be omitted. This
887 is useful when defining a sequence of COLGROUP elements, e.g.
888
889 <TABLE FRAME=ALL RULES=COLS>
890 <COLGROUP>
891 <COL WIDTH="1*">
892 <COL WIDTH="2*">
893 <COLGROUP>
894 <COL WIDTH="1*">
895 <COL WIDTH="3*">
896 <THEAD>
897 <TR> ...
898 </TABLE>
899
900 Dave Raggett Page 15
901
902
903
904 HTML Tables 27-Oct-1995
905
906 COLGROUP elements can be used with the following attributes:
907
908 ID, CLASS, STYLE, LANG and DIR
909 See earlier description of common attributes.
910
911 ALIGN, CHAR, CHAROFF and VALIGN
912 Specify values for horizontal and vertical alignment within
913 table cells. See inheritance order of alignment properties.
914
915 ------------------------------------------------------------------------------
916 The COL Element
917
918 <!ELEMENT col - O EMPTY>
919
920 <!ATTLIST col -- column groups and properties --
921 %attrs; -- id, lang, style, dir and class --
922 span NUMBER 1 -- number of columns spanned by group --
923 width CDATA #IMPLIED -- relative width e.g. width="2.5*" --
924 %cell.halign; -- horizontal alignment in cells --
925 %cell.valign; -- vertical alignment in cells --
926 >
927
928 This optional element is used to specify column based defaults for
929 table properties. It is an empty element, and as such has no
930 content, and shouldn't be given an end tag. Several COL elements may
931 be given in succession.
932
933 ID, CLASS, STYLE, LANG and DIR
934 See earlier description of common attributes.
935
936 SPAN
937 A positive integer value that specifies how many columns this
938 element applies to, defaulting to one. In the absence of SPAN
939 attributes the first COL element applies to the first column,
940 the second COL element to the second column and so on. If the
941 second COL element had SPAN=2, it would apply to the second and
942 third column. The next COL element would then apply to the
943 fourth column and so on. SPAN=0 has a special significance and
944 implies that the COL element spans all columns from the current
945 column up to and including the last column.
946
947 WIDTH
948 Specifies the width of the columns, see standard units. If the
949 element spans several columns then the WIDTH attribute specifies
950 the width for each of the individual columns - not the width of
951 the group. In addition, the "*" suffix denotes relative widths,
952 e.g.
953
954 width=64 width in screen pixels
955 width=0.5* a relative width of 0.5
956
957 Relative widths act as constraints on the relative widths of
958 different columns. If a COL element specifies a relative width
959
960 Dave Raggett Page 16
961
962
963
964 HTML Tables 27-Oct-1995
965
966 of zero, the column should always be set to its minimum width.
967 When widths are given in absolute units, the user agent can use
968 these to constrain the width of the table. The "*" suffix is
969 used to simplify importing tables from the CALS representation.
970
971 ALIGN, CHAR, CHAROFF and VALIGN
972 Specify values for horizontal and vertical alignment within
973 table cells. See inheritance order of alignment properties.
974
975 ------------------------------------------------------------------------------
976 Table Head, Foot and Body Elements
977
978 <!ELEMENT thead - O tr+>
979 <!ELEMENT tfoot - O tr+>
980 <!ELEMENT tbody O O tr+>
981
982 <!ATTLIST (thead|tbody|tfoot) -- table section --
983 %attrs; -- id, lang, style, dir and class --
984 %cell.halign; -- horizontal alignment in cells --
985 %cell.valign; -- vertical alignment in cells --
986 >
987
988 Tables may be divided up into head and body sections. The THEAD and
989 TFOOT elements are optional, but one or more TBODY elements are
990 always required. If the table only consists of a TBODY section, the
991 TBODY start and end tags may be omitted, as the parser can infer
992 them. If a THEAD element is present, the THEAD start tag is
993 required, but the end tag can be omitted, provided a TFOOT or TBODY
994 start tag follows. The same applies to TFOOT. _This definition
995 provides compatibility with tables created for the older model, as
996 well as allowing the end tags for THEAD, TFOOT and TBODY to be
997 omitted._
998
999 The THEAD, TFOOT and TBODY elements provide a convenient means for
1000 controlling rendering. If the table has a large number of rows in
1001 the body, user agents may choose to use a scrolling region for the
1002 table body sections. When rendering to a paged device, tables will
1003 often have to be broken across page boundaries. The THEAD, TFOOT and
1004 TBODY elements allow the user agent to repeat the table foot at the
1005 bottom of the current page, and then the table head at the top of
1006 the new page before continuing on with the table body.
1007
1008 TFOOT is placed before the TBODY in the markup sequence, so that
1009 browsers can render the foot before receiving all of the table data.
1010 This is useful when very long tables are rendered with scrolling
1011 body sections, or for paged output, involving breaking the table
1012 over many pages.
1013
1014 Each THEAD, TFOOT and TBODY element must contain one or more TR
1015 elements.
1016
1017 ID, CLASS, STYLE, LANG and DIR
1018 See earlier description of common attributes.
1019
1020 Dave Raggett Page 17
1021
1022
1023
1024 HTML Tables 27-Oct-1995
1025
1026 ALIGN, CHAR, CHAROFF and VALIGN
1027 Specify values for horizontal and vertical alignment within
1028 table cells. See inheritance order of alignment properties.
1029
1030 ------------------------------------------------------------------------------
1031 Table Row (TR) elements
1032
1033 <!ELEMENT tr - O (th|td)+>
1034
1035 <!ATTLIST tr -- table row --
1036 %attrs; -- id, lang, style, dir and class --
1037 %cell.halign; -- horizontal alignment in cells --
1038 %cell.valign; -- vertical alignment in cells --
1039 >
1040
1041 The TR or table row element acts as a container for a row of table
1042 cells. The end tag may be omitted.
1043
1044 ID, CLASS, STYLE, LANG and DIR
1045 See earlier description of common attributes.
1046
1047 ALIGN, CHAR, CHAROFF and VALIGN
1048 Specify values for horizontal and vertical alignment within
1049 table cells. See inheritance order of alignment properties.
1050
1051 ------------------------------------------------------------------------------
1052 Table Cells: TH and TD
1053
1054 <!ELEMENT (th|td) - O %body.content>
1055
1056 <!ATTLIST (th|td) -- header or data cell --
1057 %attrs; -- id, lang, style, dir and class --
1058 axis CDATA #IMPLIED -- defaults to cell content --
1059 axes CDATA #IMPLIED -- list of axis names --
1060 nowrap (nowrap) #IMPLIED -- suppress word wrap --
1061 rowspan NUMBER 1 -- number of rows spanned by cell --
1062 colspan NUMBER 1 -- number of cols spanned by cell --
1063 %cell.halign; -- horizontal alignment in cells --
1064 %cell.valign; -- vertical alignment in cells --
1065 >
1066
1067 TH elements are used to represent header cells, while TD elements
1068 are used to represent data cells. This allows user agents to render
1069 header and data cells distinctly, even in the absence of style
1070 sheets.
1071
1072 Cells can span multiple rows and columns, and may be empty. Cells
1073 spanning rows contribute to the column count on each of the spanned
1074 rows, but only appear in the markup once (in the first row spanned).
1075 The row count is determined by the number of TR elements. Any rows
1076 implied by cells spanning rows beyond this should be ignored.
1077
1078
1079
1080 Dave Raggett Page 18
1081
1082
1083
1084 HTML Tables 27-Oct-1995
1085
1086 If the column count for the table is greater than the number of
1087 cells for a given row (after including cells for spanned rows), the
1088 missing cells are treated as occurring on the right hand side of the
1089 table and rendered as empty cells. If the language context indicates
1090 a right to left writing order, then the missing cells should be
1091 placed on the left hand side.
1092
1093 It is possible to create tables with overlapping cells, for
1094 instance:
1095
1096 <table border>
1097 <tr><td rowspan=2>1<td>2<td>3
1098 <tr><td rowspan=2>4
1099 <tr><td colspan=2>5<td>6
1100 </table>
1101
1102 which might look something like:
1103
1104 /-----------\
1105 | 1 | 2 | 3 |
1106 | |-------|
1107 | | 4 | |
1108 |---|...|---|
1109 | 5 : | 6 |
1110 \-----------/
1111
1112 In this example, the cells labelled 4 and 5 overlap. In such cases,
1113 the rendering is implementation dependent.
1114
1115 The AXIS and AXES attributes for cells provide a means for defining
1116 concise labels for cells. When rendering to speech, these attributes
1117 may be used to provide abbreviated names for the headers relevant to
1118 each cell. Another application is when you want to be able to later
1119 process table contents to enter them into a database. These
1120 attributes are then used to give database field names. The table's
1121 class attribute should be used to let the software recognize which
1122 tables can be treated in this way.
1123
1124 ID, CLASS, STYLE, LANG and DIR
1125 See earlier description of common attributes.
1126
1127 AXIS
1128 This defines an abbreviated name for a header cell, e.g. which
1129 can be used when rendering to speech. It defaults to the cell's
1130 content.
1131
1132 AXES
1133 This is a comma separated list of axis names which together
1134 identify the row and column headers that pertain to this cell.
1135 It is used for example when rendering to speech to identify the
1136 cell's position in the table. If missing the user agent can try
1137 to follow up columns and left along rows (right for some
1138 languages) to find the corresponding header cells.
1139
1140 Dave Raggett Page 19
1141
1142
1143
1144 HTML Tables 27-Oct-1995
1145
1146 NOWRAP, e.g. <TD NOWRAP>
1147 The presence of this attribute disables automatic wrapping of
1148 text lines for this cell. If used uncautiously, it may result in
1149 excessively wide cells.
1150
1151 ROWSPAN, e.g. <TD ROWSPAN=2>
1152 A positive integer value that defines how may rows this cell
1153 spans. The default ROWSPAN is 1. ROWSPAN=0 has a special
1154 significance and implies that the cell spans all rows from the
1155 current row up to the last row of the table.
1156
1157 COLSPAN, e.g. <TD COLSPAN=2>
1158 A positive integer value that defines how may columns this cell
1159 spans. The default COLSPAN is 1. COLSPAN=0 has a special
1160 significance and implies that the cell spans all columns from
1161 the current column up to the last column of the table.
1162
1163 ALIGN, CHAR, CHAROFF and VALIGN
1164 Specify values for horizontal and vertical alignment within
1165 table cells. See inheritance order of alignment properties.
1166
1167 Note: It is recommended that implementors provide support for the
1168 Netscape 1.1 WIDTH attribute for TH and TD, although this isn't part
1169 of the current specification. Document authors are advised to use
1170 the width attribute for the COL element instead.
1171
1172 ------------------------------------------------------------------------------
1173 Recommended Layout Algorithms
1174
1175 If the COLS attribute on the TABLE element specifies the number of
1176 columns, then the table may be rendered using a fixed layout,
1177 otherwise the autolayout algorithm described below should be used.
1178
1179 Fixed Layout Algorithm
1180
1181 For this algorithm, it is assumed that the number of columns is
1182 known. The column widths by default should be set to the same size.
1183 Authors may override this by specifying relative or absolute column
1184 widths, using the COL element. The default table width is the space
1185 between the current left and right margins, but may be overridden by
1186 the WIDTH attribute on the TABLE element, or determined from
1187 absolute column widths. To deal with mixtures of absolute and
1188 relative column widths, the first step is to allocate space from the
1189 table width to columns with absolute widths. After this, the space
1190 remaining is divided up between the columns with relative widths.
1191
1192 The table syntax alone is insufficient to guarantee the consistency
1193 of attribute values. For instance, the number of columns specified
1194 by the COLS attribute may be inconsistent with the number of columns
1195 implied by the COL elements. This in turn, may be inconsistent with
1196 the number of columns implied by the table cells. A further problem
1197 occurs when the columns are too narrow to avoid clipping cell
1198 contents. The width of the table as specified by the TABLE element
1199
1200 Dave Raggett Page 20
1201
1202
1203
1204 HTML Tables 27-Oct-1995
1205
1206 or COL elements may result in clipping of cell contents. It is
1207 recommended that user agents attempt to recover gracefully from
1208 these situations, e.g. by hyphenating words and resorting to
1209 splitting words if hyphenation points are unknown.
1210
1211 Autolayout Algorithm
1212
1213 If the COLS attribute is missing from the table start tag, then the
1214 user agent should use the following autolayout algorithm. It uses
1215 two passes through the table data and scales linearly with the size
1216 of the table.
1217
1218 In the first pass, line wrapping is disabled, and the user agent
1219 keeps track of the minimum and maximum width of each cell. The
1220 maximum width is given by the widest line. As line wrap has been
1221 disabled, paragraphs are treated as long lines unless broken by <BR>
1222 elements. The minimum width is given by the widest word or image
1223 etc. taking into account leading indents and list bullets etc. In
1224 other words, if you were to format the cell's content in a window of
1225 its own, determine the minimum width you could make the window
1226 before things begin to be clipped.
1227
1228 To cope with character alignment of cell contents, the algorithm
1229 keeps three running min/max totals for each column: Left of align
1230 char, right of align char and un-aligned. The minimum width for a
1231 column is then: max(min_left + min_right, min_non-aligned).
1232
1233 The minimum and maximum cell widths are then used to determine the
1234 corresponding minimum and maximum widths for the columns. These in
1235 turn, are used to find the minimum and maximum width for the table.
1236 Note that cells can contain nested tables, but this doesn't
1237 complicate the code significantly. The next step is to assign column
1238 widths according to the current window size (more accurately - the
1239 width between the left and right margins).
1240
1241 For cells which span multiple columns, a simple approach, as used by
1242 Arena, is to evenly apportion the min/max widths to each of the
1243 constituent columns. A slightly more complex approach is to use the
1244 min/max widths of unspanned cells to weight how spanned widths are
1245 apportioned. Experimental study suggests a blend of the two
1246 approaches will give good results for a wide range of tables.
1247
1248 The table borders and intercell margins need to be included in
1249 assigning column widths. There are three cases:
1250
1251 1. The minimum table width is equal to or wider than the available
1252 space. In this case, assign the minimum widths and allow the
1253 user to scroll horizontally. For conversion to braille, it will
1254 be necessary to replace the cells by references to notes
1255 containing their full content. By convention these appear before
1256 the table.
1257
1258 2. The maximum table width fits within the available space. In this
1259
1260 Dave Raggett Page 21
1261
1262
1263
1264 HTML Tables 27-Oct-1995
1265
1266 case, set the columns to their maximum widths.
1267
1268 3. The maximum width of the table is greater than the available
1269 space, but the minimum table width is smaller. In this case,
1270 find the difference between the available space and the minimum
1271 table width, lets call it W. Lets also call D the difference
1272 between maximum and minimum width of the table.
1273
1274 For each column, let d be the the difference between maximum and
1275 minimum width of that column. Now set the column's width to the
1276 minimum width plus d times W over D. This makes columns with
1277 lots of text wider than columns with smaller amounts.
1278
1279 This assignment step is then repeated for nested tables. In this
1280 case, the width of the enclosing table's cell plays the role of the
1281 current window size in the above description. This process is
1282 repeated recursively for all nested tables.
1283
1284 If the table width is specified with the WIDTH attribute, the user
1285 agent attempts to set column widths to match. The WIDTH attribute is
1286 not binding if this results in columns having less than their
1287 minimum widths.
1288
1289 If relative widths are specified with the COL element, the algorithm
1290 is modified to increase column widths over the minimum width to meet
1291 the relative width constraints. The COL elements should be taken as
1292 hints only, so columns shouldn't be set to less than their minimum
1293 width. Similarly, columns shouldn't be made so wide that the table
1294 stretches well beyond the extent of the window. If a COL element
1295 specifies a relative width of zero, the column should always be set
1296 to its minimum width.
1297
1298 ------------------------------------------------------------------------------
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320 Dave Raggett Page 22
1321
1322
1323
1324 HTML Tables 27-Oct-1995
1325
1326 HTML Table DTD
1327
1328 The DTD or document type definition provides the formal definition
1329 of the allowed syntax for HTML tables.
1330
1331 <!-- Content model entities imported from parent DTD:
1332
1333 %body.content; allows table cells to contain headers, paras,
1334 lists, form elements and even arbitrarily nested tables.
1335
1336 %text; is text characters, including character entities and
1337 character emphasis elements, IMG and anchors
1338 -->
1339
1340 <!ENTITY % attrs
1341 "id ID #IMPLIED -- element identifier --
1342 class NAMES #IMPLIED -- for subclassing elements --
1343 style CDATA #IMPLIED -- rendering annotation --
1344 lang NAME #IMPLIED -- as per RFC 1766 --
1345 dir (ltr|rtl) #IMPLIED -- I18N text direction --">
1346
1347 <!--
1348 The BORDER attribute sets the thickness of the frame around the
1349 table. The default units are screen pixels.
1350
1351 The FRAME attribute specifies which parts of the frame around
1352 the table should be rendered. The values are not the same as
1353 CALS to avoid a name clash with the VALIGN attribute.
1354
1355 The value "border" is included for backwards compatibility with
1356 <TABLE BORDER> which yields frame=border and border=implied
1357 For <TABLE BORDER=1> you get border=1 and frame=implied. In this
1358 case, its appropriate to treat this as frame=border for backwards
1359 compatibility with deployed browsers.
1360 -->
1361
1362 <!ENTITY % Frame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
1363
1364 <!--
1365 The RULES attribute defines which rules to draw between cells:
1366
1367 If RULES is absent then assume:
1368 "none" if BORDER is absent or BORDER=0 otherwise "all"
1369 -->
1370
1371 <!ENTITY % Rules "(none | basic | rows | cols | all)">
1372
1373 <!-- horizontal placement of table relative to window -->
1374 <!ENTITY % Where "(left|center|right)">
1375
1376
1377
1378
1379
1380 Dave Raggett Page 23
1381
1382
1383
1384 HTML Tables 27-Oct-1995
1385
1386 <!-- horizontal alignment attributes for cell contents -->
1387 <!ENTITY % cell.halign
1388 "align (left|center|right|justify|char) #IMPLIED
1389 char CDATA #IMPLIED -- alignment char, e.g. char=':' --
1390 charoff CDATA #IMPLIED -- offset for alignment char --"
1391 >
1392
1393 <!-- vertical alignment attributes for cell contents -->
1394 <!ENTITY % cell.valign
1395 "valign (top|middle|bottom|baseline) #IMPLIED"
1396 >
1397
1398 <!ELEMENT table - - (caption?, (col|colgroup)*, thead?, tfoot?, tbody+)>
1399 <!ELEMENT caption - - (%text;)+>
1400 <!ELEMENT thead - O (tr+)>
1401 <!ELEMENT tfoot - O (tr+)>
1402 <!ELEMENT tbody O O (tr+)>
1403 <!ELEMENT col - O EMPTY>
1404 <!ELEMENT tr - O (th|td)+>
1405 <!ELEMENT (th|td) - O %body.content>
1406
1407 <!ATTLIST table -- table element --
1408 %attrs; -- id, lang, style, dir and class --
1409 align %Where; #IMPLIED -- table position relative to window --
1410 width CDATA #IMPLIED -- table width relative to window --
1411 cols NUMBER #IMPLIED -- used for immediate display mode --
1412 border CDATA #IMPLIED -- controls frame width around table --
1413 frame %Frame; #IMPLIED -- which parts of table frame to include --
1414 rules %Rules; #IMPLIED -- rulings between rows and cols --
1415 cellspacing CDATA #IMPLIED -- spacing between cells --
1416 cellpadding CDATA #IMPLIED -- spacing within cells --
1417 >
1418
1419 <!-- ALIGN is used here for compatibility with deployed browsers -->
1420 <!ENTITY % Caption "(top|bottom|left|right)">
1421
1422 <!ATTLIST caption -- table caption --
1423 %attrs; -- id, lang, style, dir and class --
1424 align %Caption; #IMPLIED -- relative to table --
1425 >
1426
1427 <!--
1428 COLGROUP groups a set of COL elements. It allows you to group
1429 several columns together. COL elements contained within a COLGROUP
1430 element do not themselves define column groups.
1431 -->
1432
1433 <!ELEMENT colgroup - O (col+)>
1434 <!ATTLIST colgroup
1435 %attrs; -- id, lang, style, dir and class --
1436 %cell.halign; -- horizontal alignment in cells --
1437 %cell.valign; -- vertical alignment in cells --
1438 >
1439
1440 Dave Raggett Page 24
1441
1442
1443
1444 HTML Tables 27-Oct-1995
1445
1446
1447 <!--
1448 COL elements define the alignment properties for cells in a given
1449 column or spanned columns. The WIDTH attribute specifies the
1450 width of the columns, e.g.
1451
1452 width=64 width in screen pixels
1453 width=0.5* relative width of 0.5
1454 -->
1455
1456 <!ATTLIST col -- column groups and properties --
1457 %attrs; -- id, lang, style, dir and class --
1458 span NUMBER 1 -- number of columns spanned by group --
1459 width CDATA #IMPLIED -- relative width e.g. 2.5 --
1460 %cell.halign; -- horizontal alignment in cells --
1461 %cell.valign; -- vertical alignment in cells --
1462 >
1463
1464 <!--
1465 Use THEAD to duplicate headers when breaking table
1466 across page boundaries, or for static headers when
1467 body sections are rendered in scrolling panel.
1468
1469 Use TFOOT to duplicate footers when breaking table
1470 across page boundaries, or for static footers when
1471 body sections are rendered in scrolling panel.
1472
1473 Use multiple TBODY sections when rules are needed
1474 between groups of table rows.
1475 -->
1476 <!ATTLIST (thead|tbody|tfoot) -- table section --
1477 %attrs; -- id, lang, style, dir and class --
1478 %cell.halign; -- horizontal alignment in cells --
1479 %cell.valign; -- vertical alignment in cells --
1480 >
1481
1482 <!ATTLIST tr -- table row --
1483 %attrs; -- id, lang, style, dir and class --
1484 %cell.halign; -- horizontal alignment in cells --
1485 %cell.valign; -- vertical alignment in cells --
1486 >
1487
1488 <!ATTLIST (th|td) -- header or data cell --
1489 %attrs; -- id, lang, style, dir and class --
1490 axis CDATA #IMPLIED -- defaults to cell content --
1491 axes CDATA #IMPLIED -- list of axis names --
1492 nowrap (nowrap) #IMPLIED -- suppress word wrap --
1493 rowspan NUMBER 1 -- number of rows spanned by cell --
1494 colspan NUMBER 1 -- number of cols spanned by cell --
1495 %cell.halign; -- horizontal alignment in cells --
1496 %cell.valign; -- vertical alignment in cells --
1497 >
1498
1499
1500 Dave Raggett Page 25
1501
1502
1503
1504 HTML Tables 27-Oct-1995
1505
1506 ------------------------------------------------------------------------------
1507 References
1508
1509 Arena
1510 W3C's HTML3 browser, see "http://www.w3.org/pub/WWW/Arena/".
1511 Arena was originally created as a proof of concept demo for
1512 ideas in the HTML+ specification that preceded HTML3. The
1513 browser is now being re-implemented to provide a reference
1514 implementation of HTML3 along with support for style sheets and
1515 client-side scripting.
1516
1517 CALS
1518 Continuous Acquisition and Life-Cycle Support (formerly
1519 Computer-aided Acquisition and Logistics Support) (CALS) is a
1520 Department of Defense (DoD) strategy for achieving effective
1521 creation, exchange, and use of digital data for weapon systems
1522 and equipment. More information can be found from the US Navy
1523 CALS home page at http://navysgml.dt.navy.mil/cals.html
1524
1525
1526 HTML 3.0
1527 HyperText Markup Language Specification Version 3.0. This is the
1528 initial draft specification as published in March 1995. Work on
1529 refining HTML3 is proceeding piecemeal with the new table
1530 specification as one of the pieces. For W3C related work on
1531 HTML, see "http://www.w3.org/pub/WWW/MarkUp/".
1532
1533 RFC 1766
1534 "Tags for the Identification of Languages", by H. Alvestrand,
1535 UNINETT, March 1995. This document can be downloaded from
1536 "ftp://ds.internic.net/rfc/rfc1766.txt".
1537
1538 ------------------------------------------------------------------------------
1539 The World Wide Web Consortium:
1540 http://www.w3.org/pub/WWW/Consortium/
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560 Dave Raggett Page 26
1561

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24