📄 rfc1942.txt
字号:
Network Working Group D. RaggettRequest for Comments: 1942 W3CCategory: Experimental May 1996 HTML TablesStatus of this Memo This memo defines an Experimental Protocol for the Internet community. This memo does not specify an Internet standard of any kind. Discussion and suggestions for improvement are requested. Distribution of this memo is unlimited.Abstract The HyperText Markup Language (HTML) is a simple markup language used to create hypertext documents that are portable from one platform to another. HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of applications. This specification extends HTML to support a wide variety of tables. The model is designed to work well with associated style sheets, but does not require them. It also supports rendering to braille, or speech, and exchange of tabular data with databases and spreadsheets. The HTML table model embodies certain aspects of the CALS table model, e.g. the ability to group table rows into thead, tbody and tfoot sections, plus the ability to specify cell alignment compactly for sets of cells according to the context.Table of Contents Recent Changes ................................................. 1 Brief Introduction ............................................. 2 Design Rationale ............................................... 5 Walkthrough of the Table DTD ................................... 8 Recommended Layout Algorithms ................................. 23 HTML Table DTD ................................................ 26 References .................................................... 29 Security Considerations ....................................... 30 Author's Address .............................................. 30Recent Changes This specification extends HTML to support tables. The table model has grown out of early work on HTML+ and the initial draft of HTML3. The earlier model has been been extended in response to requests from information providers for improved control over the presentation of tabular information:Raggett Experimental [Page 1]RFC 1942 HTML Tables May 1996 * alignment on designated characters such as "." and ":" e.g. aligning a column of numbers on the decimal point * more flexibility in specifying table frames and rules * incremental display for large tables as data is received * the ability to support scrollable tables with fixed headers plus better support for breaking tables across pages for printing * optional column based defaults for alignment properties In addition, a major goal has been to provide backwards compatibility with the widely deployed Netscape implementation of tables. A subsidiary goal has been to simplify importing tables conforming to the SGML CALS model. The latest draft makes the ALIGN attribute compatible with the latest Netscape and Microsoft browsers. Some clarifications have been made to the role of the DIR attribute and recommended behaviour when absolute and relative column widths are mixed. A new element COLGROUP has been introduced to allow sets of columns be grouped with different width and alignment properties specified by one or more COL elements. The semantics of COLGROUP have been clarified over previous drafts, and RULES=BASIC replaced by RULES=GROUPS. The FRAME and RULES attributes have been modified to avoid SGML name clashes with each other, and to avoid clashes with the ALIGN and VALIGN attributes. These changes were additionally motivated by the desire to avoid future problems if this specification is extended to allow FRAME and RULES attributes with other table elements.A Brief Introduction to HTML Tables Tables start with an optional caption followed by one or more rows. Each row is formed by one or more cells, which are differentiated into header and data cells. Cells can be merged across rows and columns, and include attributes assisting rendering to speech and braille, or for exporting table data into databases. The model provides limited support for control over appearence, for example horizontal and vertical alignment of cell contents, border styles and cell margins. You can further affect this by grouping rows and columns together. Tables can contain a wide range of content, such as headers, lists, paragraphs, forms, figures, preformatted text and even nested tables.Raggett Experimental [Page 2]RFC 1942 HTML Tables May 1996Example <TABLE BORDER> <CAPTION>A test table with merged cells</CAPTION> <TR><TH ROWSPAN=2><TH COLSPAN=2>Average <TH ROWSPAN=2>other<BR>category<TH>Misc <TR><TH>height<TH>weight <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003 <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002 </TABLE> On a dumb terminal, this would be rendered something like: A test table with merged cells /--------------------------------------------------\ | | Average | other | Misc | | |-------------------| category |--------| | | height | weight | | | |-----------------------------------------|--------| | males | 1.9 | 0.003 | | | |-----------------------------------------|--------| | females | 1.7 | 0.002 | | | \--------------------------------------------------/Raggett Experimental [Page 3]RFC 1942 HTML Tables May 1996 Next, a richer example with grouped rows and columns (adapted from "Developing International Software" by Nadine Kano). First here is what the table looks like on paper: CODE-PAGE SUPPORT IN MICROSOFT WINDOWS========================================================================Code-Page| Name |ACP OEMCP| Windows Windows Windows ID | | | NT 3.1 NT 3.51 95------------------------------------------------------------------------ 1200 |Unicode (BMP of ISO 10646) | | X X * 1250 |Windows 3.1 East. Europe | X | X X X 1251 |Windows 3.1 Cyrillic | X | X X X 1252 |Windows 3.1 US (ANSI) | X | X X X 1253 |Windows 3.1 Greek | X | X X X 1254 |Windows 3.1 Turkish | X | X X X 1255 |Hebrew | X | X 1256 |Arabic | X | X 1257 |Baltic | X | X 1361 |Korean (Johab) | X | ** X------------------------------------------------------------------------ 437 |MS-DOS United States | X | X X X 708 |Arabic (ASMO 708) | X | X 709 |Arabic (ASMO 449+, BCON V4)| X | X 710 |Arabic (Transparent Arabic)| X | X 720 |Arabic (Transparent ASMO) | X | X======================================================================== The markup for this uses COLGROUP elements to group columns and to set default column alignment. TBODY elements are used to group rows. The FRAME and RULES attributes are used to select which borders to render. <table border=2 frame=hsides rules=groups> <caption>CODE-PAGE SUPPORT IN MICROSOFT WINDOWS</caption> <colgroup align=center> <colgroup align=left> <colgroup align=center span=2> <colgroup align=center span=3> <thead valign=top> <tr> <th>Code-Page<br>ID <th>Name <th>ACP <th>OEMCP <th>Windows<br>NT 3.1 <th>Windows<br>NT 3.51 <th>Windows<br>95 <tbody>Raggett Experimental [Page 4]RFC 1942 HTML Tables May 1996 <tr><td>1200<td>Unicode (BMP of ISO 10646)<td><td><td>X<td>X<TD>* <tr><td>1250<td>Windows 3.1 Eastern European<td>X<td><td>X<td>X<TD>X <tr><td>1251<td>Windows 3.1 Cyrillic<td>X<td><td>X<td>X<TD>X <tr><td>1252<td>Windows 3.1 US (ANSI)<td>X<td><td>X<td>X<TD>X <tr><td>1253<td>Windows 3.1 Greek<td>X<td><td>X<td>X<TD>X <tr><td>1254<td>Windows 3.1 Turkish<td>X<td><td>X<td>X<TD>X <tr><td>1255<td>Hebrew<td>X<td><td><td><td>X <tr><td>1256<td>Arabic<td>X<td><td><td><td>X <tr><td>1257<td>Baltic<td>X<td><td><td><td>X <tr><td>1361<td>Korean (Johab)<td>X<td><td><td>**<td>X <tbody> <tr><td>437<td>MS-DOS United States<td><td>X<td>X<td>X<TD>X <tr><td>708<td>Arabic (ASMO 708)<td><td>X<td><td><td>X <tr><td>709<td>Arabic (ASMO 449+, BCON V4)<td><td>X<td><td><td>X <tr><td>710<td>Arabic (Transparent Arabic)<td><td>X<td><td><td>X <tr><td>720<td>Arabic (Transparent ASMO)<td><td>X<td><td><td>X </table>Design Rationale The HTML table model has evolved from studies of existing SGML tables models, the treatment of tables in common word processing packages, and looking at a wide range of tabular layout in magazines, books and other paper-based documents. The model was chosen to allow simple tables to be expressed simply with extra complexity only when needed. This makes it practical to create the markup for HTML tables with everyday text editors and reduces the learning curve for getting started. This feature has been very important to the success of HTML to date. Increasingly people are using filters from other document formats or direct wysiwyg editors for HTML. It is important that the HTML table model fits well with these routes for authoring HTML. This affects how the representation handles cells which span multiple rows or columns, and how alignment and other presentation properties are associated with groups of cells. A major consideration for the HTML table model is that the fonts and window sizes etc. in use with browsers are not under the author's control. This makes it risky to rely on column widths specified in terms of absolute units such as picas or pixels. Instead, tables can be dynamically sized to match the current window size and fonts. Authors can provide guidance as to the relative widths of columns, but user agents should to ensure that columns are wide enough to render the width of the largest single element of the cell's content. If the author's specification must be overridden, it is preferred that the relative widths of individual columns are not changed drastically.Raggett Experimental [Page 5]RFC 1942 HTML Tables May 1996 For large tables or slow network connections, it is desirable to be able to start displaying the table before all of the data has been received. The default window width for most user agents shows about 80 characters, and the graphics for many HTML pages are designed with these defaults in mind. Authors can provide a hint to user agents to activate incremental display of table contents. This feature requires the author to specify the number of columns, and includes provision for control of table width and the widths of different columns in relative or absolute terms. For incremental display, the browser needs the number of columns and their widths. The default width of the table is the current window size (width="100%"). This can be altered by including a WIDTH attribute in the TABLE start tag. By default all columns have the same width, but you can specify column widths with one or more COL elements before the table data starts. The remaining issue is the number of columns. Some people have suggested waiting until the first row of the table has been received, but this could take a long time if the cells have a lot of content. On the whole it makes more sense, when incremental display is desired, to get authors to explicitly specify the number of columns in the TABLE start tag. Authors still need a way of informing the browser whether to use incremental display or to automatically size the table to match the cell contents. For the two pass auto sizing mode, the number of columns is determined by the first pass, while for the incremental mode, the number of columns needs to be stated up front. So it seems to that COLS=_nn_ would be better for this purpose than a LAYOUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -