/[suikacvs]/webroot/www/2004/id/draft-ietf-html-specv3-00.txt
Suika

Contents of /webroot/www/2004/id/draft-ietf-html-specv3-00.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Sat Jul 3 04:21:12 2004 UTC (19 years, 10 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
*** empty log message ***

1 HTML 3.0 28th March 1995
2
3 INTERNET DRAFT Dave Raggett, W3C
4 Expires in six months email: <dsr@w3.org>
5
6 HyperText Markup Language Specification Version 3.0
7
8 <draft-ietf-html-specv3-00.txt>
9
10 Status of this Memo
11
12 This document is an Internet draft. Internet drafts are working
13 documents of the Internet Engineering Task Force (IETF), its areas
14 and its working groups. Note that other groups may also distribute
15 working information as Internet drafts.
16
17 Internet Drafts are draft documents valid for a maximum of six
18 months and can be updated, replaced or obsoleted by other documents
19 at any time. It is inappropriate to use Internet drafts as reference
20 material or to cite them as other than as "work in progress".
21
22 To learn the current status of any Internet draft please check the
23 "lid-abstracts.txt" listing contained in the Internet drafts shadow
24 directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
25 munnari.oz.au (Pacific Rim), ds.internic.net (US East coast) or
26 ftp.isi.edu (US West coast). Further information about the IETF can
27 be found at URL: http://www.ietf.org/
28
29 Distribution of this document is unlimited. Please send comments to
30 the HTML working group (HTML-WG) of the Internet Engineering Task
31 Force (IETF) at <html-wg@oclc.org>. Discussions of this group are
32 archived at URL: http://www.acl.lanl.gov/HTML-WG/archives.html.
33
34 Abstract
35
36 The HyperText Markup Language (HTML) is a simple markup language
37 used to create hypertext documents that are portable from one
38 platform to another. HTML documents are SGML documents with generic
39 semantics that are appropriate for representing information from a
40 wide range of applications. HTML markup can represent hypertext
41 news, mail, documentation, and hypermedia; menus of options;
42 database query results; simple structured documents with inlined
43 graphics and hypertext views of existing bodies of information.
44
45 This specification defines the capabilities of HTML version 3.0 and
46 provides additional capabilities over previous versions such as
47 tables, text flow around figures and math. It is backwards
48 compatible with HTML 2.0.
49
50 [Link to Table of Contents]--
51
52
53
54
55
56
57 Dave Raggett Page 1
58 HTML 3.0 28th March 1995
59
60 Table of Contents
61
62 1. Introduction ...................................................... 4
63
64 a) How to participate in refining HTML 3.0 ....................... 4
65
66 b) HTML 3.0 Overview ............................................. 4
67
68 c) Transition strategy from HTML 2.0 ............................. 5
69
70 d) Design Guidelines for HTML 3.0 ................................ 6
71
72 2. Understanding HTML and MIME ....................................... 9
73
74 3. Understanding HTML and SGML ...................................... 10
75
76 4. The Structure of HTML 3.0 Documents .............................. 15
77
78 5. The HEAD Element and Related Elements ............................ 17
79
80 6. The BODY Elements ................................................ 24
81
82 a) Banners ...................................................... 26
83
84 b) Divisions .................................................... 27
85
86 c) Heading Elements ............................................. 29
87
88 d) Paragraphs ................................................... 33
89
90 e) Line Breaks .................................................. 36
91
92 f) Horizontal Tabs .............................................. 38
93
94 g) Hypertext Links .............................................. 40
95
96 h) Overview of Character-Level Elements ......................... 44
97
98 - Information Type Elements ................................ 46
99
100 - Font Style Elements ...................................... 48
101
102 i) The IMG (Image) Element ...................................... 50
103
104 j) Unordered Lists .............................................. 53
105
106 k) Ordered Lists ................................................ 59
107
108 l) Definition Lists ............................................. 62
109
110 m) Figures ...................................................... 69
111
112 n) Tables ....................................................... 77
113
114 Dave Raggett Page 2
115 HTML 3.0 28th March 1995
116
117
118 o) Math -- missing entity names -- .............................. 92
119
120 p) Horizontal Rules ............................................ 111
121
122 q) Preformatted Text ........................................... 113
123
124 r) Admonishments ............................................... 116
125
126 s) Footnotes ................................................... 118
127
128 t) Block Quotes ................................................ 120
129
130 u) The ADDRESS Element ......................................... 122
131
132 v) Fill-out Forms .............................................. 124
133
134 7. Special Characters .............................................. 142
135
136 8. Security Considerations ......................................... 145
137
138 9. HTML 3.0 Document Type Definition
139
140 a) The SGML Declaration ........................................ 146
141
142 b) The Latin-1 Character Entities -- needs work ................ 148
143
144 c) Math and Greek Entities -- under construction ............... 154
145
146 d) HTML Icon Entities .......................................... 156
147
148 e) The HTML 3.0 DTD ............................................ 157
149
150 10. Terms -- needs work ............................................. 185
151
152 11. References -- needs work ........................................ 188
153
154 12. Acknowledgements -- needs work .................................. 189
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171 Dave Raggett Page 3
172 HTML 3.0 28th March 1995
173
174 Introduction to HTML 3.0
175
176 HyperText Markup Language (HTML) is a simple markup system used to
177 create hypertext documents that are portable from one platform to
178 another. HTML documents are SGML documents with generic semantics
179 that are appropriate for representing information from a wide range
180 of applications. HTML markup can represent hypertext news, mail,
181 documentation, and hypermedia; menus of options; database query
182 results; simple structured documents with in-lined graphics; and
183 hypertext views of existing bodies of information.
184
185 HTML has been in use by the World-Wide Web (WWW) global information
186 initiative since 1990. The HTML 3.0 specification provides a number
187 of new features, and is broadly backwards compatible with HTML 2.0.
188 It is defined as an application of International Standard ISO
189 ISO8879:1986 Standard Generalized Markup Language (SGML). This
190 specificiation will be proposed as the Internet Media Type (RFC
191 1590) and MIME Content Type (RFC 1521) called "text/html;
192 version=3.0".
193
194 How to participate in refining HTML 3.0
195
196 The process of refining HTML 3.0 into a formal standard will be
197 carried out by the IETF HTML working group. The World Wide Web
198 Organization is continuing to develop a freeware testbed browser for
199 HTML 3.0 ("Arena") to encourage people to try out the proposed
200 features. The discussion list for HTML 3.0 is www-html with html-wg
201 reserved for use by the IETF working group for detailed matters
202 relating to the formal specification. The process for developing
203 HTML 3.0 is open, and anyone who is interested and able to
204 contribute to this effort is welcome to join in.
205
206 --Note: make mailing list names into hypertext links to their
207 archives and add info on how to join these lists--
208
209 HTML 3.0 Overview
210
211 HTML 3.0 builds upon HTML 2.0 and provides full backwards
212 compatibility. Tables have been one of the most requested features,
213 with text flow around figures and math as runners up. Traditional
214 SGML table models, e.g. the CALS table model, are really complex.
215 The HTML 3.0 proposal for tables uses a lightweight style of markup
216 suitable for rendering on a very wide range of output devices,
217 including braille and speech synthesizers.
218
219 HTML 3.0 introduces a new element: FIG for inline figures. This
220 provides for client-side handling of hotzones while cleanly catering
221 for non-graphical browsers. Text can be flowed around figures and
222 you can control when to break the flow to begin a new element.
223
224 Including support for equations and formulae in HTML 3.0 adds
225 relatively little complexity to a browser. The proposed format is
226 strongly influenced by TeX. Like tables, the format uses a
227
228 Dave Raggett Page 4
229 HTML 3.0 28th March 1995
230
231 lightweight style of markup - simple enough to type in by hand,
232 although it will in most cases be easier to use a filter from a word
233 processing format or a direct HTML 3.0 wysiwyg editor. The level of
234 support is compatible with most word processing software, and avoids
235 the drawbacks from having to convert math to inline images.
236
237 The Web has acted as a huge exercise in user testing, and we have
238 been able to glean lots of information from the ways people abuse
239 HTML in trying to get a particular effect; as well as from explicit
240 demand for new features. HTML 3.0, as a result, includes support for
241 customised lists; fine positioning control with entities like
242 &emspace; horizontal tabs and horizontal alignment of headers and
243 paragraph text.
244
245 Additional features include a static banner area for corporate
246 logos, disclaimers and customized navigation/search controls. The
247 LINK element can be used to provide standard toolbar/menu items for
248 navigation, such as previous and next buttons. The NOTE element is
249 used for admonishments such as notes, cautions or warnings, and also
250 used for footnotes.
251
252 Forms have been extended to support graphical selection menus with
253 client-side handling of events similar to FIG. Other new form field
254 types include range controls, scribble on image, file upload and
255 audio input fields. Client-side scripting of forms is envisaged with
256 the script attribute of the FORM element. Forms and tables make for
257 a powerful combination offering rich opportunities for laying out
258 custom interfaces to remote information systems.
259
260 To counter the temptation to add yet more presentation features,
261 HTML 3.0 is designed (but doesn't require) to be used together with
262 style sheets which give rich control over document rendering, and
263 can take into account the user's preferences, the window size and
264 other resource limitations, such as which fonts are actually
265 available. This work will eventually lead to smart layout under the
266 author's control, with rich magazine style layouts for full screen
267 viewing, switching to simpler layouts when the window is shrunk.
268
269 The SGML Open consortium is promoting use of DSSSL Lite by James
270 Clark. This is a simplified subset of DSSSL - the document style
271 semantics specification language. DSSSL is a ISO standard for
272 representing presentation semantics for SGML documents, but is much
273 too complex in its entirety to be well suited to the World Wide Web.
274 Håkon Lie maintains a list of pointers to work on style sheets.
275
276 Transition Strategy from HTML 2.0
277
278 The use of the MIME content type: "text/html; version=3.0" is
279 recommended to prevent existing HTML 2.0 user agents screwing up by
280 attempting to show 3.0 documents. Tests have shown that the
281 suggested content type will safely cause existing user agents to
282 display the save to file dialog rather than incorrectly displaying
283 the document as if it were HTML 2.0.
284
285 Dave Raggett Page 5
286 HTML 3.0 28th March 1995
287
288
289 To make it easy for servers to distinguish 3.0 documents from 2.0
290 documents, it is suggested that 3.0 files are saved with the
291 extension ".html3" (or ".ht3" for PCs). Servers can also exploit the
292 accept headers in HTTP requests from HTML user agents, to
293 distinguish whether each client can or cannot support HTML 3.0. This
294 makes it practical for information providers to start providing HTML
295 3.0 versions of existing documents for newer user agents, without
296 impacting older user agents. It is envisaged that programs will be
297 made available for automatic down conversion of 3.0 to 2.0
298 documents. This conversion could be carried out in batch mode, or on
299 the fly (with caching for greater efficiency).
300
301 Design Guidelines
302
303 The HTML 3.0 draft specification has been written to the following
304 guidelines.
305
306 Lingua Franca for the Web
307
308 HTML is intended as a common medium for tying together information
309 from widely different sources. A means to rise above the
310 interoperability problems with existing document formats, and a
311 means to provide a truly open interface to proprietary information
312 systems.
313
314 Simplicity
315
316 The first version of HTML was designed to be extremely simple, both
317 to author and to write browsers for. This has played a major role in
318 the incredibly rapid growth of the World Wide Web. HTML 3.0 provides
319 a clean superset of HTML 2.0 adding high value features such as
320 tables, text flow around figures and math, while still remaining a
321 simple document format. The pressures to adopt the complexities of
322 traditional SGML applications has been resisted, for example the
323 Department of Defense's CALS table model or the ISO 12083 math DTD.
324
325 Scaleability
326
327 As time goes by, people's expectations change, and more will be
328 demanded of HTML. One manifestation of this is the pressure to add
329 yet more tags. HTML 3.0 introduces a means for subclassing elements
330 in an open-ended way. This can be used to distinguish the role of a
331 paragraph element as being a couplet in a stansa, or a mathematical
332 term as being a tensor. This ability to make fresh distinctions can
333 be exploited to impart distinct rendering styles or to support
334 richer search mechanisms, without further complicating the HTML
335 document format itself. Scaleability is also achieved via URI based
336 links for embedding information in other formats. Initially limited
337 to a few image formats, inline support is expected to rapidly evolve
338 to cover drawing formats, video, distributed virtual reality and a
339 general means for embedding other applications.
340
341
342 Dave Raggett Page 6
343 HTML 3.0 28th March 1995
344
345 Platform Independence
346
347 HTML is designed to allow rendering on a very wide range of devices,
348 from clunky teletypes, to terminals, DOS, Windows, Macs and high end
349 Workstations, as well as non-visual media such as speech and
350 braille. In this, it allows users to exploit the legacy of older
351 equipment as well as the latest and best of new machines. HTML 3.0
352 provides for improved support for non-graphical clients, allowing
353 for rich markup in place of the figures shown on graphical clients.
354 HTML can be rendered on a wide variety of screen sizes, using a
355 scrolling or paged model. The fonts and presentation can be adjusted
356 to suit the resources available in the host machine and the user's
357 preferences.
358
359 Content --not-- Presentation Markup
360
361 Information providers are used to tight control over the final
362 appearence of documents. The need for platform independence weighs
363 against this, but there is still a strong pressure to find
364 appropriate means for information providers to express their
365 intentions. The experience with proprietary document formats has
366 shown the dangers of mixing presentation markup with content (or
367 structural) markup. It becomes difficult to apply different
368 presentation styles. It becomes painful to incorporate material from
369 different sources (with different presentation styles). It becomes
370 difficult to be truly platform independent. As a result, HTML 3.0 is
371 designed for use with linked style information that defines the
372 intended presentation style for each element. Style sheets can be
373 expressed in a platform independent fashion or used to provide more
374 detailed control for particular classes of clients or output media.
375
376 Support for Cascaded Style Sheets
377
378 For the Web, it is valuable to allow for a cascading of style
379 preferences. The client has certain built-in preferences; the
380 publisher may require a particular house style, e.g. for brand
381 distinction; the author may feel the need to override the house
382 style for special cases; the end-user may feel strongly about
383 certain things, e.g. large fonts for easier visibility or avoiding
384 certain colors due to an inability to distinguish between them. HTML
385 3.0 supports style sheets via the use of the LINK element to
386 reference a style sheet with a URI. Authors can place overrides in
387 separate style sheets or include them in the document head within
388 the STYLE element. The effectiveness of caching mechanisms for
389 speeding up the retrieval of style sheets is enhanced by the
390 separation of style information into generic commonly used style
391 sheets, and overrides specific to this document.
392
393 Support for Non-Visual Media
394
395 HTML 3.0 is designed to cater for the needs of the visually
396 impaired. Markup for inline figures includes support for rich
397 descriptions, along with hypertext links that double up as defining
398
399 Dave Raggett Page 7
400 HTML 3.0 28th March 1995
401
402 geometric hotzones for graphical browsers, simplifying the author's
403 job in catering for the different groups of users. Table markup
404 includes provision for abbreviated row and column names for each
405 cell, which are essential for conversion to speech or braille. Math
406 markup treats formulae and equations as hierarchies of expressions.
407 This allows disambiguating pauses to be inserted in appropriate
408 places during conversion to speech.
409
410 Support for different ways of creating HTML
411
412 HTML 3.0 has been designed to be created in a variety of different
413 ways. It is deliberately simple enough to type in by hand. It can be
414 authored using wysiwyg editors for HTML, or it can be generated via
415 export filters from common word processing formats, or other SGML
416 applications.
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456 Dave Raggett Page 8
457 HTML 3.0 28th March 1995
458
459 Understanding HTML and MIME
460
461 --I have dropped the differentiation of HTML into a sequence of
462 conformance levels. Many people confused levels with versions. The
463 different levels also encourage interoperability problems! Lets
464 encourage full conformance with HTML 2.0 or HTML 3.0 rather than
465 perpetuating intermediate levels of support.--
466
467 HTML as an Internet Media Type
468
469 This (and upward compatible specifications) define the Internet
470 Media Type (RFC 1590) and MIME Content Type (RFC 1521) called
471 "text/html". The type "text/html" accepts the following parameters:
472
473 Version
474 To help avoid future compatibility problems, the version
475 parameter may be used to give the version number of the
476 specification to which the document conforms. The version number
477 appears at the front of this document and within the public
478 identifier for the SGML DTD. This specification defines version
479 3.0.
480
481 Character sets
482 The charset parameter (as defined in section 7.1.1 of RFC 1521)
483 may be used with the text/html content type to specify the
484 encoding used to represent the HTML document as a sequence of
485 bytes. Normally, text/* media types specify a default of
486 US-ASCII for the charset parameter. However, for text/html, if
487 the byte stream contains data that is not in the 7-bit US-ASCII
488 set, the HTML interpreting agent should assume a default charset
489 of ISO-8859-1.
490
491 When an HTML document is encoded using US-ASCII, the mechanisms
492 of numeric character references and character entity references
493 may be used to encode additional characters from ISO-8859-1.
494 Character entity references are needed for symbols such as math
495 and greek characters from other unspecified character sets.
496
497 Other values for the charset parameter are not defined in this
498 specification, but may be specified in future versions of HTML.
499 It is envisioned that HTML will use the charset parameter to
500 allow support for non-Latin characters such as Arabic, Hebrew,
501 Cyrillic and Japanese, rather than relying on any SGML mechanism
502 for doing so.
503
504 --What about Unicode and its assorted encodings? This section
505 would benefit from an explanation of the issues underlying
506 support for multiple character sets and the problems arising
507 from bidirectionality.--
508
509
510
511
512
513 Dave Raggett Page 9
514 HTML 3.0 28th March 1995
515
516 Understanding HTML and SGML
517
518 HTML is an application conforming to International Standard ISO 8879
519 -- Standard Generalized Markup Language (SGML). SGML is a system for
520 defining structured document types, and markup languages to
521 represent instances of those document types. The SGML declaration
522 for HTML is given in SGML Declaration for HTML. It is implicit among
523 WWW implementations.
524
525 In the event of any apparent conflict between HTML and SGML
526 standards, the SGML standard is definitive.
527
528 Every SGML document has three parts:
529
530 SGML declaration
531 Binds SGML processing quantities and syntax token names to
532 specific values. For example, the SGML declaration in the HTML
533 DTD specifies that the string that opens an end tag is </ and
534 the maximum length of a name is 72 characters.
535
536 Prologue
537 Includes one or more document type declarations (DTDs), which
538 specify the element types, element relationships and attributes.
539 The HTML 3.0 DTD provides a definitive specification of the
540 allowed syntax for HTML 3.0 documents.
541
542 References
543 Can be represented by markup. An instance, which contains the
544 data and markup of the document.
545
546 HTML refers to the document type as well as the markup language for
547 representing instances of that document type.
548
549 ------------------------------------------------------------------------------
550 Understanding HTML Elements
551
552 In HTML documents, tags define the start and end of headings,
553 paragraphs, lists, character highlighting and links. Most HTML
554 elements are identified in a document as a start tag, which gives
555 the element name and attributes, followed by the content, followed
556 by the end tag. Start tags are delimited by < and >, and end tags
557 are delimited by </ and >. For example:
558
559 <H1>This is a Heading</H1>
560 <P>This is a paragraph.
561
562 Some elements appear as just a start tag. For example, to create a
563 line break, you use <BR>. Additionally, the end tags of some other
564 elements (e.g. P, LI, DT, DD) can be omitted as the position of the
565 end tag is clearly implied by the context.
566
567 The content of an element is a sequence of characters and nested
568 elements. Some elements, such as anchors, cannot be nested. Anchors
569
570 Dave Raggett Page 10
571 HTML 3.0 28th March 1995
572
573 and character highlighting may be put inside other constructs. The
574 content model for a tag defines the syntax permitted for the
575 content.
576
577 Note: The SGML declaration for HTML specifies SHORTTAG YES, which
578 means that there are other valid syntaxes for tags, such as NET
579 tags, <EM/.../; empty start tags, <>; and empty end tags, </>. Until
580 support for these idioms is widely deployed, their use is strongly
581 discouraged.
582
583 ------------------------------------------------------------------------------
584 Names
585
586 The element name immediately follows the tag open delimiter. An
587 element name consist of a letter followed by up to 72 letters,
588 digits, periods, or hyphens. Names are not case sensitive. For
589 example, H1 is equivalent to h1. This limit of 72 characters is set
590 by the NAMELEN parameter in the SGML declaration for HTML 3.0.
591
592 ------------------------------------------------------------------------------
593 Attributes
594
595 In a start tag, white space and attributes are allowed between the
596 element name and the closing delimiter. An attribute typically
597 consists of an attribute name, an equal sign, and a value (although
598 some attributes may be just a value). White space is allowed around
599 the equal sign.
600
601 The value of the attribute may be either:
602
603 1. A string literal, delimited by single quotes or double quotes
604
605 2. A name token (a sequence of letters, digits, periods, or
606 hyphens)
607
608 In this example, a is the element name, href is the attribute name,
609 and http://host/dir/file.html is the attribute value:
610
611 <A HREF="http://host/dir/file.html">
612
613 Some implementations consider any occurrence of the > character to
614 signal the end of a tag. For compatibility with such
615 implementations, when > appears in an attribute value, you may want
616 to represent it with an entity or numeric character reference, such
617 as:
618
619 <IMG SRC="eq1.ps" alt="a &#62; b">
620
621 To put quotes inside of quotes, you can use single quotes if the
622 outer quotes are double or vice versa, as in:
623
624 <IMG SRC="image.ps" alt="First 'real' example">
625
626
627 Dave Raggett Page 11
628 HTML 3.0 28th March 1995
629
630 Alternatively, you use the character representation &quot; as in:
631
632 <IMG SRC="image.ps" alt="First &quot;real&quot; example">
633
634 The length of an attribute value (after replacing entity and numeric
635 character references) is limited to 1024 characters. This number is
636 defined by the LITLEN parameter in the SGML declaration for HTML
637 3.0.
638
639 Note: Some implementations allow any character except space or > in
640 a name token. Attributes values must be quoted only if they don't
641 satisfy the syntax for a name token.
642
643 Attributes with a declared value of NAME (e.g. ISMAP, COMPACT) may
644 be written using a minimized syntax. The markup:
645
646 <UL COMPACT="compact">
647
648 can be written as:
649
650 <UL COMPACT>
651
652 Note: Unless you use the minimized syntax, some implementations
653 won't understand.
654
655 ------------------------------------------------------------------------------
656 Undefined Tag and Attribute Names
657
658 It is an accepted networking principle to be conservative in that
659 which one produces, and liberal in that which one accepts. HTML
660 parsers should be liberal except when verifying code. HTML
661 generators should generate strictly conforming HTML. It is suggested
662 that where ever practical, parsers should at least flag the presence
663 of markup errors, as this will help to avoid bad markup being
664 produced inadvertently.
665
666 The behavior of WWW applications reading HTML documents and
667 discovering tag or attribute names which they do not understand
668 should be to behave as though, in the case of a tag, the whole tag
669 had not been there but its content had, or in the case of an
670 attribute, that the attribute had not been present.
671
672 ------------------------------------------------------------------------------
673 Special Characters
674
675 The characters between the tags represent text in the ISO-Latin-1
676 character set, which is a superset of ASCII. Because certain
677 characters will be interpreted as markup, they should be represented
678 by markup -- entity or numeric character references, for instance
679 the character "&" must be represented by the entity &amp;. See the
680 Special Characters section of this specification for more
681 information.
682
683
684 Dave Raggett Page 12
685 HTML 3.0 28th March 1995
686
687 ------------------------------------------------------------------------------
688 Comments
689
690 To include comments in an HTML document that will be ignored by the
691 parser, surround them with <!-- and -->. After the comment
692 delimiter, all text up to the next occurrence of --> is ignored.
693 Hence comments cannot be nested. White space is allowed between the
694 closing -- and >, but not between the opening <! and --.
695
696 For example:
697
698 <HEAD>
699 <TITLE>HTML Guide: Recommended Usage</TITLE>
700 <!-- Id: Text.html,v 1.6 1994/04/25 17:33:48 connolly Exp -->
701 </HEAD>
702
703 Note: Some historical implementations incorrectly consider a > sign
704 to terminate a comment.
705
706 ------------------------------------------------------------------------------
707 Formal Variants of HTML 3.0
708
709 The HTML 3.0 document type definition includes two flags for
710 controlling how prescriptive or how lax the language is. This makes
711 use of SGML marked sections in the DTD to enable or disable certain
712 features.
713
714 HTML.Recommended
715
716 Certain features of the language are necessary for compatibility
717 with widespread usage, but they may compromise the structural
718 integrity of a document. The HTML.Recommended entity should be
719 defined as INCLUDE in the DTD subset to enable a more prescriptive
720 version of HTML 3.0 that eliminates the above features. For example:
721
722 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"
723 [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
724
725 In particular, this prevents text from appearing except within block
726 elements.
727
728 HTML.Deprecated
729
730 By default, for backwards compatibility, the %HTML.Deprecated entity
731 is defined as INCLUDE, enabling certain features which are now
732 deprecated. These features can be eliminated by defining this entity
733 as IGNORE in the DTD subset. For example:
734
735 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" [
736 <!ENTITY % HTML.Deprecated "IGNORE"> ] >
737
738 Note: defining %HTML.Recommended as INCLUDE automatically sets
739 %HTML.Deprecated to IGNORE.
740
741 Dave Raggett Page 13
742 HTML 3.0 28th March 1995
743
744
745 In the spirit of being liberal in what you accept and strict in what
746 you generate, HTML user agents are recommended to accept syntax
747 corresponding to the specification with %HTML.Deprecated turned on,
748 while HTML user agents generating HTML are recommended to generate
749 documents that conform to the specification with %HTML.Recommended
750 turned on.
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798 Dave Raggett Page 14
799 HTML 3.0 28th March 1995
800
801 The Structure of HTML 3.0 Documents
802
803 In HTML documents, tags define the start and end of headings,
804 paragraphs, lists, character highlighting and links etc. Most HTML
805 elements are identified in a document as a start tag, which gives
806 the element name and attributes, followed by the content, followed
807 by the end tag. Start tags are delimited by < and >, while end tags
808 are delimited by </ and >. For example:
809
810 <title>This is a Title</title>
811 <h1>This is a Heading</h1>
812 <P>This is a paragraph.
813
814 Every HTML document as a minimum must have a title. To identify the
815 document as being HTML 3.0, it is recommended that documents start
816 with the prologue:
817
818 <!doctype HTML public "-//W3O//DTD W3 HTML 3.0//EN">
819
820 When absent, this prologue is implied by the MIME content type for
821 HTML 3.0 together with the associated version parameter.
822
823 ------------------------------------------------------------------------------
824 Document Structure
825
826 HTML 3.0 documents formally have the following structure:
827
828 <HTML>
829 <HEAD> --head elements ...--
830 <BODY> --body elements ...--
831 </HTML>
832
833 In most cases, the HTML, HEAD and BODY tags can be safely omitted.
834 Note that the formal syntax of HTML 3.0 is defined by the document
835 type definition, which is included as an appendix of this
836 specification. The details of the HEAD and BODY elements will be
837 described in subsequent sections.
838
839 The permitted syntax of HTML 3.0 compliant documents is specified by
840 the DTD. This includes the content model for each element, defining
841 what markup is permitted within each element. The DTD uses SGML
842 entities in content models to express regular features of HTML 3.0,
843 for example %body.content defines what markup is permitted within
844 the BODY element. A number of other elements also share this content
845 model, e.g. BQ, DIV, FORM, TH and TD.
846
847 The description of each tag includes the --content model-- and the
848 --permitted context-- (which elements can contain this tag). Where
849 practical, these properties are given with the same entity names as
850 used in the DTD, and should help the newcomer to get to grips with
851 understanding the DTD itself. For example, the description of the
852 NOTE element starts with:
853
854
855 Dave Raggett Page 15
856 HTML 3.0 28th March 1995
857
858 The NOTE element
859
860 Permitted context: %block
861 Content model: %flow
862
863 This says that the NOTE element (used for admonishments such as
864 notes, cautions and errors) can occur in any element which includes
865 %block in its content model. Similarly, any element with %flow as
866 part of its permitted context can occur within a NOTE element.
867
868 The HTML element
869
870 This has three attributes:
871
872 VERSION
873 This is fixed by the DTD as the string "-//W3O//DTD W3 HTML
874 3.0//EN"
875
876 URN
877 The universal resource name for the document (optional)
878
879 ROLE
880 An optional space separated list of SGML NAME tokens that define
881 the role this document plays, e.g. table of contents. The
882 conventions for these names are outside the scope of this
883 specification. --wouldn't it be better to leave this to a link
884 to a URC?--
885
886 Note that both the start and end tag for the HTML element can be
887 omitted.
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912 Dave Raggett Page 16
913 HTML 3.0 28th March 1995
914
915 The Head Element and Related Elements
916
917 HEAD
918
919 The HEAD element has no attributes and the start and end tag can
920 always be safely omitted as they can be readily inferred by the
921 parser. Information in the HEAD element corresponds to the top part
922 of a memo or mail message. It describes properties of the document
923 such as the title, the document toolbar, and additional
924 meta-information. There is no intended significance to the order of
925 elements in the document head. Note that the TITLE element is always
926 required. In fact, the minimal HTML 3.0 document consists of the
927 TITLE element alone!
928
929 Within the HEAD element, only certain elements are allowed.
930 Information in the HEAD element may include the following elements
931 (arranged alphabetically):
932
933 ------------------------------------------------------------------------------
934 BASE
935
936 The BASE element allows the URL of the document itself to be
937 recorded in situations in which the document may be read out of
938 context. URLs within the document may be in a "partial" form
939 relative to this base address. The default base address is the URL
940 used to retrieve the document.
941
942 For example:
943
944 <base href="http://acme.com/docs/mydoc.html">
945 ...
946 <img src="images/me.gif">
947
948 which resolves to "http://acme.com/docs/images/me.gif".
949
950 ------------------------------------------------------------------------------
951 ISINDEX
952
953 The ISINDEX element informs the HTML user agent that the document is
954 an index document. As well as reading it, the reader may use a
955 keyword search.
956
957 The document can be queried with a keyword search by adding a
958 question mark to the end of the document address, followed by a list
959 of keywords separated by plus signs. See the network address format
960 for more information.
961
962 Note: A server normally generates the ISINDEX tag automatically. If
963 added by hand to an HTML document, the browser assumes that the
964 server can handle a search on the document. Obviously the server
965 must have this capability for it to work: simply adding <ISINDEX> in
966 the document is not enough to make searches happen if the server
967 does not have a search engine!
968
969 Dave Raggett Page 17
970 HTML 3.0 28th March 1995
971
972
973 Example:
974
975 <ISINDEX>
976
977 The URL used for processing queries can be overridden with the HREF
978 attribute. You can also use the PROMPT attribute to change the
979 default prompt supplied by the browser, e.g.
980
981 <ISINDEX HREF="phone.db" PROMPT="Enter Surname:">
982
983 ------------------------------------------------------------------------------
984 LINK
985
986 The LINK element indicates a relationship between the document and
987 some other object. A document may have any number of LINK elements.
988 The LINK element is empty (does not have a closing tag), but takes
989 the same attributes as the anchor element. The important attributes
990 are:
991
992 REL
993 This defines the relationship defined by the link.
994
995 REV
996 This defines a reverse relationship. A link from document A to
997 document B with REV=--relation-- expresses the same relationship
998 as a link from B to A with REL=--relation--. REV=made is
999 sometimes used to identify the document author, either the
1000 author's email address with a --mailto-- URI, or a link to the
1001 author's home page.
1002
1003 HREF
1004 This names an object using the URI notation.
1005
1006 Using LINK to define document specific toolbars
1007
1008 An important use of the LINK element is to define a toolbar of
1009 navigation buttons or an equivalent mechanism such as menu items.
1010
1011 LINK relationship values reserved for toolbars are:
1012
1013 REL=Home
1014 The link references a home page or the top of some hierarchy.
1015
1016 REL=ToC
1017 The link references a document serving as a table of contents.
1018
1019 REL=Index
1020 The link references a document providing an index for the
1021 current document.
1022
1023 REL=Glossary
1024 The link references a document providing a glossary of terms
1025
1026 Dave Raggett Page 18
1027 HTML 3.0 28th March 1995
1028
1029 that pertain to the current document.
1030
1031 REL=Copyright
1032 The link references a copyright statement for the current
1033 document.
1034
1035 REL=Up
1036 When the document forms part of a hierarchy, this link
1037 references the immediate parent of the current document.
1038
1039 REL=Next
1040 The link references the next document to visit in a guided tour.
1041
1042 REL=Previous
1043 The link references the previous document in a guided tour.
1044
1045 REL=Help
1046 The link references a document offering help, e.g. describing
1047 the wider context and offering further links to relevant
1048 documents. This is aimed at reorienting users who have lost
1049 their way.
1050
1051 REL=Bookmark
1052 Bookmarks are used to provide direct links to key entry points
1053 into an extended document. The TITLE attribute may be used to
1054 label the bookmark. Several bookmarks may be defined in each
1055 document, and provide a means for orienting users in extended
1056 documents.
1057
1058 An example of toolbar LINK elements:
1059
1060 <LINK REL=Previous HREF=doc31.html>
1061 <LINK REL=Next HREF=doc33.html>
1062 <LINK REL=Bookmark TITLE="Order Form" HREF=doc56.html>
1063
1064 Using LINK to include a Document Banner
1065
1066 The LINK element can be used with REL=Banner to reference another
1067 document to be used as banner for this document. This is typically
1068 used for corporate logos, navigation aids, and other information
1069 which shouldn't be scrolled with the rest of the document. For
1070 example:
1071
1072 <LINK REL=Banner HREF=banner.html>
1073
1074 The use of a LINK element in this way, allows a banner to be shared
1075 between several documents, with the benefit of being able to
1076 separately cache the banner. Rather than using a linked banner, you
1077 can also include the banner in the document itself, using the BANNER
1078 element.
1079
1080 Link to an associated Style Sheet
1081
1082
1083 Dave Raggett Page 19
1084 HTML 3.0 28th March 1995
1085
1086 The LINK element can be used with REL=StyleSheet to reference a
1087 style sheet to be used to control the way the current document is
1088 rendered. For example:
1089
1090 <LINK REL=StyleSheet HREF=housestyle.dsssl>
1091
1092 Other uses of the LINK element
1093
1094 Additional relationship names have been proposed, but do not form
1095 part of this specification. Servers may also allow links to be added
1096 by those who do not have the right to alter the body of a document.
1097
1098 ------------------------------------------------------------------------------
1099 META
1100
1101 The META element is used within the HEAD element to embed document
1102 meta-information not defined by other HTML elements. Such
1103 information can be extracted by servers/clients for use in
1104 identifying, indexing and cataloging specialized document
1105 meta-information.
1106
1107 Although it is generally preferable to used named elements that have
1108 well defined semantics for each type of meta-information, such as
1109 title, this element is provided for situations where strict SGML
1110 parsing is necessary and the local DTD is not extensible.
1111
1112 In addition, HTTP servers can read the contents of the document head
1113 to generate response headers corresponding to any elements defining
1114 a value for the attribute HTTP-EQUIV. This provides document authors
1115 with a mechanism (not necessarily the preferred one) for identifying
1116 information that should be included in the response headers of an
1117 HTTP request.
1118
1119 The META element has three attributes:
1120
1121 NAME
1122 Used to name a property such as author, publication date etc. If
1123 absent, the name can be assumed to be the same as the value of
1124 HTTP-EQUIV.
1125
1126 CONTENT
1127 Used to supply a value for a named property.
1128
1129 HTTP-EQUIV
1130 This attribute binds the element to an HTTP response header. If
1131 the semantics of the HTTP response header named by this
1132 attribute is known, then the contents can be processed based on
1133 a well defined syntactic mapping, whether or not the DTD
1134 includes anything about it. HTTP header names are not case
1135 sensitive. If absent, the NAME attribute should be used to
1136 identify this meta-information and it should not be used within
1137 an HTPP response header.
1138
1139
1140 Dave Raggett Page 20
1141 HTML 3.0 28th March 1995
1142
1143 Examples:
1144
1145 If the document contains:
1146
1147 <META HTTP-EQUIV=Expires CONTENT="Tue, 04 Dec 1993 21:29:02 GMT">
1148 <META HTTP-EQUIV="Keywords" CONTENT="Nanotechnology, Biochemistry">
1149 <META HTTP-EQUIV="Reply-to" CONTENT="dsr@w3.org (Dave Raggett)">
1150
1151
1152 The server will include the following response headers:
1153
1154 Expires: Tue, 04 Dec 1993 21:29:02 GMT
1155 Keywords: Nanotechnology, Biochemistry
1156 Reply-to: dsr@w3.org (Dave Raggett)
1157
1158 When the HTTP-EQUIV attribute is absent, the server should not
1159 generate an HTTP response header for this meta-information, e.g.
1160
1161 <META NAME="IndexType" CONTENT="Service">
1162
1163 Do not use the META element to define information that should be
1164 associated with an existing HTML element.
1165
1166 Example of an inappropriate use of the META element:
1167
1168 <META NAME="Title" CONTENT="The Etymology of Dunsel">
1169
1170 Do not name an HTTP-EQUIV attribute the same as a response header
1171 that should typically only be generated by the HTTP server. Some
1172 inappropriate names are "Server", "Date", and "Last-Modified".
1173 Whether a name is inappropriate depends on the particular server
1174 implementation. It is recommended that servers ignore any META
1175 elements that specify HTTP equivalents (case insensitively) to their
1176 own reserved response headers.
1177
1178 ------------------------------------------------------------------------------
1179 NEXTID
1180
1181 The NEXTID is a parameter read and generated by text editing
1182 software to generate unique identifiers. This tag takes a single
1183 attribute which is the the next document-wide alpha-numeric
1184 identifier to be allocated of the form z123.
1185
1186 When modifying a document, existing anchor identifiers should not be
1187 reused, as these identifiers may be referenced by other documents.
1188 Human writers of HTML usually use mnemonic alphabetical identifiers.
1189
1190 Example:
1191
1192 <NEXTID N=Z27>
1193
1194 HTML user agents may ignore the NEXTID element. Support for NEXTID
1195 does not impact HTML user agents in any way.
1196
1197 Dave Raggett Page 21
1198 HTML 3.0 28th March 1995
1199
1200
1201 --I want to get rid of NEXTID, or at least deprecate it!--
1202
1203 ------------------------------------------------------------------------------
1204 RANGE
1205
1206 The RANGE element is used to mark a range of the document, for
1207 example for highlighting regions of the document matching some
1208 search criteria, or which are the subject of an annotation etc.
1209
1210 <RANGE CLASS=Search FROM=spot01 UNTIL=spot02>
1211
1212 The FROM and UNTIL attributes specify positions in the document
1213 using SGML identifiers. Most elements in the document body can
1214 define such identifiers using ID attributes. The SPOT element is
1215 useful in this regard, as it allows search software etc. to insert
1216 IDs at random places:
1217
1218 <SPOT ID=spot01> ... <SPOT ID=spot02>
1219
1220 The RANGE element supports the following attributes:
1221
1222 ID
1223 An SGML identifer used to name the range element.
1224
1225 CLASS
1226 A character string used to subclass the range element.
1227
1228 FROM
1229 References an SGML identifier for an element in the document
1230 body. It identifies the start of the marked range.
1231
1232 UNTIL
1233 References an SGML identifier for an element in the document
1234 body. It identifies the end of the marked range.
1235
1236 ------------------------------------------------------------------------------
1237 STYLE
1238
1239 The STYLE element provides a means for including rendering
1240 information using a specified style notation. Information in the
1241 STYLE element overrides client defaults and that of linked style
1242 sheets. It allows authors to specify overrides, while for the most
1243 part using a generic style sheet, and as such improves the
1244 effectiveness of caching schemes for linked style sheets. There is
1245 one attribute - NOTATATION - which specifies an entity identifying
1246 an SGML notation in the HTML 3.0 DTD, for example:
1247
1248 <style notation=dsssl-lite>
1249 --some dsssl-lite stuff ...--
1250 </style>
1251
1252 Stylistic rules will in general match tag names and attribute values
1253
1254 Dave Raggett Page 22
1255 HTML 3.0 28th March 1995
1256
1257 for elements in the document body. Context sensitive rules may be
1258 used for such purposes as rendering drop down capitals for the
1259 initial letter in the first paragraph following a header.
1260
1261 ------------------------------------------------------------------------------
1262 TITLE
1263
1264 Every HTML document must contain a TITLE element. The title should
1265 identify the contents of the document in a global context, and may
1266 be used in a history lists and as a label for the window displaying
1267 the document. Unlike headings, titles are not normally displayed in
1268 the text of a document itself.
1269
1270 The TITLE element must occur within the head of the document, and
1271 may not contain anchors, paragraph tags, or highlighting. There may
1272 only be one TITLE in any document.
1273
1274 The length of titles is unlimited, however, long titles may be
1275 truncated in some applications. To minimize this possibility, keep
1276 titles to fewer than 64 characters. Also keep in mind that a short
1277 title, such as Introduction, may be meaningless out of context. An
1278 example of a meaningful title might be:
1279
1280 <Title>Recent Advances in Nanotechnology</Title>
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311 Dave Raggett Page 23
1312 HTML 3.0 28th March 1995
1313
1314 The Body Element and Related Elements
1315
1316 The BODY element
1317
1318 Permitted Context: HTML
1319 Content Model: %Body.Content
1320
1321 Within the BODY element, you can structure text into paragraphs, and
1322 lists, as well as highlighting phrases and creating links, amongst
1323 other things. The BODY element has the following attributes, all of
1324 which are optional:
1325
1326 Note that the ID, LANG and CLASS attributes can be used with
1327 virtually all of the elements permitted in the document body.
1328
1329 ID
1330 An SGML identifier used as the target for hypertext links or for
1331 naming particular elements in associated style sheets.
1332 Identifiers are NAME tokens and must be unique within the scope
1333 of the current document.
1334
1335 LANG
1336 This is one of the ISO standard language abbreviations, e.g.
1337 "en.uk" for the variation of English spoken in the United
1338 Kingdom. It can be used by parsers to select language specific
1339 choices for quotation marks, ligatures and hypenation rules etc.
1340 The language attribute is composed from the two letter language
1341 code from ISO 639, optionally followed by a period and a two
1342 letter country code from ISO 3166.
1343
1344 CLASS
1345 This a space separated list of SGML NAME tokens and is used to
1346 subclass tag names. For instance, <P CLASS=STANZA.COUPLET>
1347 defines a paragraph that acts as a couplet in a stanza. By
1348 convention, the class names are interpreted hierarchically, with
1349 the most general class on the left and the most specific on the
1350 right, where classes are separated by a period. The CLASS
1351 attribute is most commonly used to attach a different style to
1352 some element, but it is recommended that where practical class
1353 names should be picked on the basis of the element's semantics,
1354 as this will permit other uses, such as restricting search
1355 through documents by matching on element class names. The
1356 conventions for choosing class names are outside the scope of
1357 this specification.
1358
1359 BACKGROUND
1360 This can be used to specify a URI for an image tile to cover the
1361 document background. This provides a way of giving a group of
1362 documents a distinctive appearence. Clients may ignore this
1363 attribute. It is included here for the benefit of clients that
1364 don't support style sheets. Note that the text color may need to
1365 be adjusted to show an adequate contrast with the background.
1366
1367
1368 Dave Raggett Page 24
1369 HTML 3.0 28th March 1995
1370
1371 Note that you don't need to include a BODY tag unless you want to
1372 specify one of the above attributes.
1373
1374 Body Structure
1375
1376 The document body is composed from zero or more of the following
1377 elements:
1378
1379 * DIV - used for hierarchical containers and static banners
1380
1381 * Headings (H1, to H6) - a set of headers of varying levels of
1382 importance
1383
1384 * Block elements - paragraphs, lists, forms, tables, figures and
1385 other elements
1386
1387 * Horizontal rules, and the ADDRESS element
1388
1389 * Text and character level markup including emphasis, images,
1390 math, hypertext links and miscellaneous elements.
1391
1392 Note that text and character level markup are only permitted at this
1393 level for backwards compatibility with legacy documents. The
1394 HTML.Recommended flag enforces a more structured approach to
1395 authoring HTML documents.
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425 Dave Raggett Page 25
1426 HTML 3.0 28th March 1995
1427
1428 Banners
1429
1430 Permitted Context: the start of the BODY element
1431 Content Model: %Body.Content
1432
1433 The BANNER element is used for corporate logos, navigation aids,
1434 disclaimers and other information which shouldn't be scrolled with
1435 the rest of the document. It provides an alternative to using the
1436 LINKelement in the document head to reference an externally defined
1437 banner.
1438
1439 Permitted Attributes
1440
1441 ID
1442 An SGML identifier used as the target for hypertext links or for
1443 naming particular elements in associated style sheets.
1444 Identifiers are NAME tokens and must be unique within the scope
1445 of the current document.
1446
1447 LANG
1448 This is one of the ISO standard language abbreviations, e.g.
1449 "en.uk" for the variation of English spoken in the United
1450 Kingdom. It can be used by parsers to select language specific
1451 choices for quotation marks, ligatures and hypenation rules etc.
1452 The language attribute is composed from the two letter language
1453 code from ISO 639, optionally followed by a period and a two
1454 letter country code from ISO 3166.
1455
1456 CLASS
1457 This a space separated list of SGML NAME tokens and is used to
1458 subclass tag names. By convention, the class names are
1459 interpreted hierarchically, with the most general class on the
1460 left and the most specific on the right, where classes are
1461 separated by a period. The CLASS attribute is most commonly used
1462 to attach a different style to some element, but it is
1463 recommended that where practical class names should be picked on
1464 the basis of the element's semantics, as this will permit other
1465 uses, such as restricting search through documents by matching
1466 on element class names. The conventions for choosing class names
1467 are outside the scope of this specification.
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482 Dave Raggett Page 26
1483 HTML 3.0 28th March 1995
1484
1485 Divisions
1486
1487 Permitted Context: %Body.Content
1488 Content Model: %Body.Content
1489
1490 The DIV element is used with the CLASS attribute to represent
1491 different kinds of containers, e.g. chapter, section, abstract, or
1492 appendix. For example:
1493
1494 <DIV CLASS=Abstract>
1495 <P>TheChieftain product range is the white hot hope for the
1496 coming year. This report sets out how to position Chieftain
1497 against competing products.
1498 </DIV>
1499
1500 Permitted Attributes
1501
1502 ID
1503 An SGML identifier used as the target for hypertext links or for
1504 naming particular elements in associated style sheets.
1505 Identifiers are NAME tokens and must be unique within the scope
1506 of the current document.
1507
1508 LANG
1509 This is one of the ISO standard language abbreviations, e.g.
1510 "en.uk" for the variation of English spoken in the United
1511 Kingdom. It can be used by parsers to select language specific
1512 choices for quotation marks, ligatures and hypenation rules etc.
1513 The language attribute is composed from the two letter language
1514 code from ISO 639, optionally followed by a period and a two
1515 letter country code from ISO 3166.
1516
1517 CLASS
1518 This a space separated list of SGML NAME tokens and is used to
1519 subclass tag names. For instance, <DIV CLASS=APPENDIX> defines a
1520 division that acts as an appendix. By convention, the class
1521 names are interpreted hierarchically, with the most general
1522 class on the left and the most specific on the right, where
1523 classes are separated by a period. The CLASS attribute is most
1524 commonly used to attach a different style to some element, but
1525 it is recommended that where practical class names should be
1526 picked on the basis of the element's semantics, as this will
1527 permit other uses, such as restricting search through documents
1528 by matching on element class names. The conventions for choosing
1529 class names are outside the scope of this specification.
1530
1531 ALIGN
1532 The ALIGN attribute can be used to explicitly specify the
1533 horizontal alignment of paragraphs within a division:
1534
1535
1536
1537 align=left
1538
1539 Dave Raggett Page 27
1540 HTML 3.0 28th March 1995
1541
1542 Paragraphs are rendered flush left (the default).
1543
1544 align=center
1545 Paragraphs are centered.
1546
1547 align=right
1548 Paragraphs are rendered flush right.
1549
1550 align=justify
1551 Text lines are justified where practical, otherwise this
1552 gives the same effect as the default align=left setting.
1553
1554 NOWRAP
1555 The NOWRAP attribute is used when you don't want the browser to
1556 automatically wrap lines. You can then explicitly specify line
1557 breaks in paragrphs using the BR element.
1558
1559 CLEAR
1560 This attribute is common to all block-like elements. When text
1561 flows around a figure or table in the margin, you sometimes want
1562 to start the division below the figure rather than alongside it.
1563 The CLEAR attribute allows you to move down unconditionally:
1564
1565
1566
1567 clear=left
1568 move down until left margin is clear
1569
1570 clear=right
1571 move down until right margin is clear
1572
1573 clear=all
1574 move down until both margins are clear
1575
1576 Alternatively, you can decide to place the element alongside the
1577 figure just so long as there is enough room. The minimum width
1578 needed is specified as:
1579
1580
1581
1582 clear="40 en"
1583 move down until there is at least 40 en units free
1584
1585 clear="100 pixels"
1586 move down until there is at least 100 pixels free
1587
1588 The style sheet (or browser defaults) may provide default
1589 minimum widths for each class of block-like elements.
1590
1591
1592
1593
1594
1595
1596 Dave Raggett Page 28
1597 HTML 3.0 28th March 1995
1598
1599 Headings
1600
1601 Permitted Context: %Body.Content
1602 Content Model: %text
1603
1604 HTML defines six levels of headings. A heading element implies all
1605 the font changes, paragraph breaks before and after, and any white
1606 space necessary to render the heading. The heading elements are H1,
1607 H2, H3, H4, H5, and H6 with H1 being the highest (or most important)
1608 level and H6 the least. For example:
1609
1610 <H1>This is a top level heading</H1> Here is some text.
1611 <H2>Second level heading</H2> Here is some more text.
1612
1613 Use the DIV element together with header elements when you want to
1614 make the hierarchical structure of a document explicit. This is
1615 needed as header elements themselves only contain the text of the
1616 header, and do not imply any structural division of documents into
1617 sections. Header elements have the same content model as paragraphs,
1618 that is text and character level markup, such as character emphasis,
1619 inline images, form fields and math.
1620
1621 Headers play a related role to lists in structuring documents, and
1622 it is common to number headers or to include a graphic that acts
1623 like a bullet in lists. HTML 3.0 recognizes this with attributes
1624 that assist with numbering headers and allow authors to specify a
1625 custom graphic.
1626
1627 The numbering style is controlled by the style sheet, e.g.
1628
1629 1. The style sheet specifies whether headers are numbered, and
1630 which style is used to render the current sequence number, e.g.
1631 arabic, upper alpha, lower alpha, upper roman, lower roman or a
1632 numbering scheme appropriate to the current language.
1633
1634 2. Whether the parent numbering is inherited, e.g. "5.1.d" where 5
1635 is the current sequence number for H1 headers, 1 is the number
1636 for H2 headers and 4 for H3 headers.
1637
1638 The seqnum and skip attributes can be used to override the default
1639 treatment of header sequence numbers, and provide for a continuity
1640 with numbered lists.
1641
1642 The dingbat or src attribute may be used to specify a bullet-like
1643 graphic to be placed adjacent to the header. The positioning of this
1644 graphic is controlled by the style sheet. The graphic is for
1645 decorative purposes only and silently ignored on non-graphical HTML
1646 user agents.
1647
1648 Word Wrapping
1649
1650 User agents are free to wrap lines at whitespace characters so as to
1651 ensure lines fit within the current window size. Use the &nbsp;
1652
1653 Dave Raggett Page 29
1654 HTML 3.0 28th March 1995
1655
1656 entity for the non-breaking space character, when you want to make
1657 sure that a line isn't broken! Alternatively, use the NOWRAP
1658 attribute to disable word wrapping and the <BR> element to force
1659 line breaks where desired.
1660
1661 --Netscape includes two tags: <NOBR>...</NOBR>, and <WBR>. The
1662 former turns off wordwrapping between the start and end NOBR tag,
1663 while WBR is for the rare case when you want to specify where to
1664 break the line if needed. Should HTML 3.0 provide an equivalent
1665 mechanism to WBR, (either a tag or an entity)?--
1666
1667 Permitted Attributes
1668
1669 ID
1670 An SGML identifier used as the target for hypertext links or for
1671 naming particular elements in associated style sheets.
1672 Identifiers are NAME tokens and must be unique within the scope
1673 of the current document.
1674
1675 LANG
1676 This is one of the ISO standard language abbreviations, e.g.
1677 "en.uk" for the variation of English spoken in the United
1678 Kingdom. It can be used by parsers to select language specific
1679 choices for quotation marks, ligatures and hypenation rules etc.
1680 The language attribute is composed from the two letter language
1681 code from ISO 639, optionally followed by a period and a two
1682 letter country code from ISO 3166.
1683
1684 CLASS
1685 This a space separated list of SGML NAME tokens and is used to
1686 subclass tag names. For instance, <H2 CLASS=Section> defines a
1687 level 2 header that acts as a section header. By convention, the
1688 class names are interpreted hierarchically, with the most
1689 general class on the left and the most specific on the right,
1690 where classes are separated by a period. The CLASS attribute is
1691 most commonly used to attach a different style to some element,
1692 but it is recommended that where practical class names should be
1693 picked on the basis of the element's semantics, as this will
1694 permit other uses, such as restricting search through documents
1695 by matching on element class names. The conventions for choosing
1696 class names are outside the scope of this specification.
1697
1698 ALIGN
1699 Headings are usually rendered flush left. The ALIGN attribute
1700 can be used to explicitly specify the horizontal alignment:
1701
1702
1703
1704 align=left
1705 The heading is rendered flush left (the default).
1706
1707 align=center
1708 The heading is centered.
1709
1710 Dave Raggett Page 30
1711 HTML 3.0 28th March 1995
1712
1713
1714 align=right
1715 The heading is rendered flush right.
1716
1717 align=justify
1718 Heading lines are justified where practical, otherwise this
1719 gives the same effect as the default align=left setting.
1720
1721 For example:
1722
1723 <h1 align=center>This is a centered heading</H1>
1724 Here is some text. <H2 align=right>and this is a flush right
1725 heading</H2> Here is some more text.
1726
1727 CLEAR
1728 This attribute is common to all block-like elements. When text
1729 flows around a figure or table in the margin, you sometimes want
1730 to start an element like a header, paragraph or list below the
1731 figure rather than alongside it. The CLEAR attribute allows you
1732 to move down unconditionally:
1733
1734
1735
1736 clear=left
1737 move down until left margin is clear
1738
1739 clear=right
1740 move down until right margin is clear
1741
1742 clear=all
1743 move down until both margins are clear
1744
1745 Alternatively, you can decide to place the element alongside the
1746 figure just so long as there is enough room. The minimum width
1747 needed is specified as:
1748
1749
1750
1751 clear="40 en"
1752 move down until there is at least 40 en units free
1753
1754 clear="100 pixels"
1755 move down until there is at least 100 pixels free
1756
1757 The style sheet (or browser defaults) may provide default
1758 minimum widths for each class of block-like elements.
1759
1760 SEQNUM
1761 A sequence number is associated with each level of header from
1762 the top level (H1) to the bottom level (H6). This attribute is
1763 used to set the sequence number associated with the header level
1764 of the current element to a given number, e.g. SEQNUM=10.
1765 Normally, the sequence number is initialized to 1 at the
1766
1767 Dave Raggett Page 31
1768 HTML 3.0 28th March 1995
1769
1770 beginning of the document and incremented after each header
1771 element. It is reset to 1 by any header element of a higher
1772 level, e.g. an H1 header resets the sequence numbers for H2 to
1773 H6. The style of header numbering is controlled by the style
1774 sheet.
1775
1776 SKIP
1777 Increments the sequence number before rendering the element. It
1778 is used when headers have been left out of the sequence. For
1779 instance, SKIP=3 advances the sequence number past 3 omitted
1780 items.
1781
1782 DINGBAT
1783 Specifies an iconic image to appear preceding the header. The
1784 icon is specified as an entity name. A list of standard icon
1785 entity names for HTML 3.0 is given in an appendix of this
1786 specification.
1787
1788 SRC
1789 Specifies an image to appear preceding the header. The image is
1790 specified as a URI. This attribute may appear together with the
1791 MD attribute.
1792
1793 MD
1794 Specifies a message digest or cryptographic checksum for the
1795 associated graphic specified by the SRC attribute. It is used
1796 when you want to be sure that a linked object is indeed the same
1797 one that the author intended, and hasn't been modified in any
1798 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
1799 specifies an MD5 checksum encoded as a base64 character string.
1800 The MD attribute is generally allowed for all elements which
1801 support URI based links.
1802
1803 NOWRAP
1804 The NOWRAP attribute is used when you don't want the browser to
1805 automatically wrap lines. You can then explicitly specify line
1806 breaks in headings using the BR element. For example:
1807
1808 <h1 nowrap>This heading has wordwrap turned off<br>
1809 and the BR element is used for explicit line breaks</H1>
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824 Dave Raggett Page 32
1825 HTML 3.0 28th March 1995
1826
1827 Paragraphs
1828
1829 Permitted Context: %Body.Content, %flow, %block
1830 Content Model: %text
1831
1832 The <P> element is used to define a paragraph. The exact rendering
1833 (indentation, leading etc.) is not defined and may be a function of
1834 other tags, style sheets, etc. The ALIGN attribute can be used to
1835 explicitly specify the horizontal alignment. Paragraph elements have
1836 the same content model as headers, that is text and character level
1837 markup, such as character emphasis, inline images, form fields and
1838 math.
1839
1840 Example:
1841
1842 <H1>The heading precedes the first paragraph</H1>
1843 <P>Here is the text of the first paragraph. <P>and this is
1844 the text of the second paragraph.
1845
1846 The text up to the next <p> element is treated as being part of the
1847 current paragraph. This is an example of how SGML allows certain end
1848 tags like </p> to be left out where they can be inferred from the
1849 context.
1850
1851 Word Wrapping
1852
1853 User agents are free to wrap lines at whitespace characters so as to
1854 ensure lines fit within the current window size. Use the &nbsp;
1855 entity for the non-breaking space character, when you want to make
1856 sure that a line isn't broken! Alternatively, use the NOWRAP
1857 attribute to disable word wrapping and the <BR> element to force
1858 line breaks where desired.
1859
1860 --Netscape includes two tags: <NOBR>...</NOBR>, and <WBR>. The
1861 former turns off wordwrapping between the start and end NOBR tag,
1862 while WBR is for the rare case when you want to specify where to
1863 break the line if needed. Should HTML 3.0 provide an equivalent
1864 mechanism to WBR, (either a tag or an entity)?--
1865
1866 Note: Do not use empty paragraphs to add white space around
1867 headings, lists or other elements. White space is added by the
1868 rendering software.
1869
1870 Permitted Attributes
1871
1872 ID
1873 An SGML identifier used as the target for hypertext links or for
1874 naming particular elements in associated style sheets.
1875 Identifiers are NAME tokens and must be unique within the scope
1876 of the current document.
1877
1878 LANG
1879 This is one of the ISO standard language abbreviations, e.g.
1880
1881 Dave Raggett Page 33
1882 HTML 3.0 28th March 1995
1883
1884 "en.uk" for the variation of English spoken in the United
1885 Kingdom. It can be used by parsers to select language specific
1886 choices for quotation marks, ligatures and hypenation rules etc.
1887 The language attribute is composed from the two letter language
1888 code from ISO 639, optionally followed by a period and a two
1889 letter country code from ISO 3166.
1890
1891 CLASS
1892 This a space separated list of SGML NAME tokens and is used to
1893 subclass tag names. For instance, <P CLASS=abstract> defines a
1894 paragraph that acts as an abstract. By convention, the class
1895 names are interpreted hierarchically, with the most general
1896 class on the left and the most specific on the right, where
1897 classes are separated by a period. The CLASS attribute is most
1898 commonly used to attach a different style to some element, but
1899 it is recommended that where practical class names should be
1900 picked on the basis of the element's semantics, as this will
1901 permit other uses, such as restricting search through documents
1902 by matching on element class names. The conventions for choosing
1903 class names are outside the scope of this specification.
1904
1905 ALIGN
1906 Paragraphs are usually rendered flush left. The ALIGN attribute
1907 can be used to explicitly specify the horizontal alignment:
1908
1909
1910
1911 align=left
1912 The paragraph is rendered flush left (the default).
1913
1914 align=center
1915 The paragraph is centered.
1916
1917 align=right
1918 The paragraph is rendered flush right.
1919
1920 align=justify
1921 Text lines are justified where practical, otherwise this
1922 gives the same effect as the default align=left setting.
1923
1924 For example:
1925
1926 <p align=center>This is a centered paragraph.
1927 <p align=right>and this is a flush right paragraph.
1928
1929 CLEAR
1930 This attribute is common to all block-like elements. When text
1931 flows around a figure or table in the margin, you sometimes want
1932 to start an element like a header, paragraph or list below the
1933 figure rather than alongside it. The CLEAR attribute allows you
1934 to move down unconditionally:
1935
1936
1937
1938 Dave Raggett Page 34
1939 HTML 3.0 28th March 1995
1940
1941
1942 clear=left
1943 move down until left margin is clear
1944
1945 clear=right
1946 move down until right margin is clear
1947
1948 clear=all
1949 move down until both margins are clear
1950
1951 Alternatively, you can decide to place the element alongside the
1952 figure just so long as there is enough room. The minimum width
1953 needed is specified as:
1954
1955 clear="40 en"
1956 move down until there is at least 40 en units free
1957
1958 clear="100 pixels"
1959 move down until there is at least 100 pixels free
1960
1961 The style sheet (or browser defaults) may provide default
1962 minimum widths for each class of block-like elements.
1963
1964 NOWRAP
1965 The NOWRAP attribute is used when you don't want the browser to
1966 automatically wrap lines. You can then explicitly specify line
1967 breaks in paragraphs using the BR element. For example:
1968
1969 <p nowrap>This paragraph has wordwrap turned off<br>
1970 and the BR element is used for explicit line breaks
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995 Dave Raggett Page 35
1996 HTML 3.0 28th March 1995
1997
1998 Line Breaks
1999
2000 Permitted Context: %text
2001 Content Model: Empty!
2002
2003 Line break and tab elements can be used when you need a little more
2004 control over how the browser renders the text. The <BR> element is
2005 used to force a line break.
2006
2007 For example:
2008
2009 This is the first line<br>
2010 and this is the second<br>
2011 and this the third
2012
2013 --Shouldn't we have a conditional line break element like Netscape's
2014 WBR thats indicates where to break lines when needed and when
2015 wordwrap is disabled? Rather than an element, shouldn't this be an
2016 entity - is there one already defined for this purpose?--
2017
2018 Permitted Attributes
2019
2020 ID
2021 An SGML identifier used as the target for hypertext links or for
2022 naming particular elements in associated style sheets.
2023 Identifiers are NAME tokens and must be unique within the scope
2024 of the current document.
2025
2026 LANG
2027 This is one of the ISO standard language abbreviations, e.g.
2028 "en.uk" for the variation of English spoken in the United
2029 Kingdom. It can be used by parsers to select language specific
2030 choices for quotation marks, ligatures and hypenation rules etc.
2031 The language attribute is composed from the two letter language
2032 code from ISO 639, optionally followed by a period and a two
2033 letter country code from ISO 3166.
2034
2035 CLASS
2036 This a space separated list of SGML NAME tokens and is used to
2037 subclass tag names. By convention, the class names are
2038 interpreted hierarchically, with the most general class on the
2039 left and the most specific on the right, where classes are
2040 separated by a period. The CLASS attribute is most commonly used
2041 to attach a different style to some element, but it is
2042 recommended that where practical class names should be picked on
2043 the basis of the element's semantics, as this will permit other
2044 uses, such as restricting search through documents by matching
2045 on element class names. The conventions for choosing class names
2046 are outside the scope of this specification.
2047
2048 CLEAR
2049 When text flows around a figure or table in the margin, you
2050 sometimes want to start the next line below the figure rather
2051
2052 Dave Raggett Page 36
2053 HTML 3.0 28th March 1995
2054
2055 than alongside it. The CLEAR attribute allows you to move down unconditionally:
2056
2057
2058
2059 clear=left
2060 move down until left margin is clear
2061
2062 clear=right
2063 move down until right margin is clear
2064
2065 clear=all
2066 move down until both margins are clear
2067
2068 Alternatively, you can decide to place the element alongside the
2069 figure just so long as there is enough room. The minimum width
2070 needed is specified as:
2071
2072
2073
2074 clear="40 en"
2075 move down until there is at least 40 en units free
2076
2077 clear="100 pixels"
2078 move down until there is at least 100 pixels free
2079
2080 The style sheet (or browser defaults) may provide default
2081 minimum widths for each class of block-like elements.
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109 Dave Raggett Page 37
2110 HTML 3.0 28th March 1995
2111
2112 Horizontal Tabs
2113
2114 Permitted Context: %text
2115 Content Model: Empty!
2116
2117 The TAB element can be used when you want fine control over the
2118 horizontal positioning. The TAB element is used with the <tab
2119 id=--name--> attribute to define named tab stops. Subsequently, you
2120 can use the TAB element with the <tab to=--name--> attribute to move
2121 to the previously defined tab stop. This approach avoids the need to
2122 know the font metrics in advance. The TAB element, together with
2123 style sheets, allows conversion software to preserve layout
2124 information when importing documents created with conventional word
2125 processing software.
2126
2127 For example:
2128
2129 <p><b>noct<tab id=t1>ambulant</b> - walking at night<br>
2130 <tab to=t1>(from Latin: <i>nox noctis</i> night + <i>ambulare</i> walk)
2131
2132 which is rendered as:
2133
2134 noctambulant - walking at night
2135 (from Latin: --nox noctis-- night + --ambulare-- walk)
2136
2137
2138 The tab stop name (--t1-- in the example) should be unique within
2139 the current document and composed from an initial letter followed by
2140 letters, digits or hyphens.
2141
2142 Sometimes, you want to make the remainder of the line flush right
2143 while leaving the earlier words unmoved. This is possible with the
2144 --align-- attribute. For example:
2145
2146 Left part of line<tab align=right>and right part of line.
2147
2148 which is rendered as:
2149
2150 Left part of line and right part of line.
2151
2152 Permitted Attributes
2153
2154 ID
2155 An SGML identifier used to name a new tab stop at the current
2156 position. The scope of the tab stop is the rest of the document.
2157
2158 INDENT
2159 Specifies the number of en units before the tab stop. The en is
2160 a typographical unit equal to half the point size. It allows
2161 authors to control the leading indent before text, e.g. in
2162 poetry, one might use: <TAB INDENT=6> to indent six en units at
2163 the start of a line. The INDENT attribute is not meaningful when
2164 combined with the TO attribute.
2165
2166 Dave Raggett Page 38
2167 HTML 3.0 28th March 1995
2168
2169
2170 TO
2171 Specifies a previously defined tab stop (see ID attribute).
2172
2173 ALIGN
2174 Lines are usually rendered according to the alignment option for
2175 the enclosing paragraph element. The ALIGN attribute can be used
2176 to explicitly specify the horizontal alignment:
2177
2178
2179
2180 align=left
2181 Following text starts immediately after the designated tab
2182 stop (the default).
2183
2184 align=center
2185 Following text up to next tab or line break is centered on
2186 the designated tab stop. If the TO attribute is missing, it
2187 centers the text between the current left and right margins.
2188
2189 align=right
2190 Following text up to the next tab or line break is rendered
2191 flush right to the designated tab stop. If the TO attribute
2192 is missing, it renders the text flush right against the
2193 current right margin.
2194
2195 align=decimal
2196 The following text is searched for the first occurrence of
2197 the character representing the decimal point. The text up to
2198 the next tab or line break is then aligned such that the
2199 decimal point starts at the designated tab stop. If the TO
2200 attribute is missing, the tab element is treated as a single
2201 space character.
2202
2203 DP
2204 This specifies the character to be used for the decimal point
2205 with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
2206 The default may be altered by the language context, as set by
2207 the LANG attribute on enclosing elements.
2208
2209 Note: if the specified alignment and tab stop would cause text to
2210 overlap preceding text, then the tab element may be treated as a
2211 single space character.
2212
2213 --How should the above be rewritten to work with languages which are
2214 rendered from right to left? What about lines with mixed
2215 directions?--
2216
2217
2218
2219
2220
2221
2222
2223 Dave Raggett Page 39
2224 HTML 3.0 28th March 1995
2225
2226 Hypertext Links
2227
2228 Permitted Context: %text
2229 Content Model: %text, but no nested anchors
2230
2231 The anchor <A> element is used to define the start and/or
2232 destination of a hypertext link. In previous versions of HTML it
2233 provided the only means for defining destination anchors within
2234 documents, but you can now use any ID attribute as a destination
2235 anchor so that links can now be made to divisions, paragraphs and
2236 most other elements.
2237
2238 Example:
2239
2240 The <A HREF="http://www.w3.org/">World Wide Web Organization</A>
2241 provides information on Web related standards, mailing lists
2242 and freeware tools.
2243
2244 The text between the start and end tag defines the label for the
2245 link. Selecting the link takes the reader to the document specified
2246 by the HREF attribute, in this case, the W3O home page. The label
2247 can include graphics defined with IMG elements.
2248
2249 For FIG elements, the anchor element serves a dual role.
2250 Non-graphical user agents interpret it as a conventional text-based
2251 hypertext link, while graphical user agents interpret the anchor's
2252 SHAPE attribute as a graphical hotzone on the figure.
2253
2254 Permitted Attributes
2255
2256 ID
2257 An SGML identifier used as the target for hypertext links or for
2258 naming particular elements in associated style sheets.
2259 Identifiers are NAME tokens and must be unique within the scope
2260 of the current document. This attribute supercedes the "NAME"
2261 attribute, see below.
2262
2263 For example, the following paragraph is defined as an anchor
2264 named "potomac":
2265
2266 <P ID="potomac">The Potomac river flows into Boston harbour,
2267 and played an important role in opening up the hinterland
2268 to early settlers...
2269
2270 Elsewhere, you can define a link to this paragraph, as follows:
2271
2272 <A HREF="#potomac">Boston</A> is a historic city and
2273 a thriving center of commerce and higher education.
2274
2275 The reader can select the link labelled "Boston" to see further
2276 information on the Boston area.
2277
2278 LANG
2279
2280 Dave Raggett Page 40
2281 HTML 3.0 28th March 1995
2282
2283 This is one of the ISO standard language abbreviations, e.g.
2284 "en.uk" for the variation of English spoken in the United
2285 Kingdom. It can be used by parsers to select language specific
2286 choices for quotation marks, ligatures and hypenation rules etc.
2287 The language attribute is composed from the two letter language
2288 code from ISO 639, optionally followed by a period and a two
2289 letter country code from ISO 3166.
2290
2291 CLASS
2292 This a space separated list of SGML NAME tokens and is used to
2293 subclass tag names. By convention, the class names are
2294 interpreted hierarchically, with the most general class on the
2295 left and the most specific on the right, where classes are
2296 separated by a period. The CLASS attribute is most commonly used
2297 to attach a different style to some element, but it is
2298 recommended that where practical class names should be picked on
2299 the basis of the element's semantics, as this will permit other
2300 uses, such as restricting search through documents by matching
2301 on element class names. The conventions for choosing class names
2302 are outside the scope of this specification.
2303
2304 HREF
2305 The HREF attribute implies that the anchor acts as the start of
2306 a hypertext link. The destination is designated by the value of
2307 the HREF attribute, which is expressed in the Universal Resource
2308 Identifier (URI) notation.
2309
2310 MD
2311 Specifies a message digest or cryptographic checksum for the
2312 linked document designated by the HREF attribute. It is used
2313 when you want to be sure that a linked object is indeed the same
2314 one that the author intended, and hasn't been modified in any
2315 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
2316 specifies an MD5 checksum encoded as a base64 character string.
2317 The MD attribute is generally allowed for all elements which
2318 support URI based links.
2319
2320 NAME
2321 This attribute is used to define a named anchor for use as the
2322 destination of hypertext links. For example, the following
2323 defines an anchor than can be used as the destination of a jump
2324 into a description of the Boston area.
2325
2326 The <A NAME="potomac"&gtPotomac river</A> flows into Boston
2327 harbour.
2328
2329 Note: the NAME attribute has been superceded by the ID
2330 attribute. User agents should include support for NAME to ensure
2331 backwards compatibility with legacy documents produced using
2332 previous versions of HTML.
2333
2334 SHAPE
2335 This attribute is used within figures to define shaped hotzones
2336
2337 Dave Raggett Page 41
2338 HTML 3.0 28th March 1995
2339
2340 for graphical hypertext links. Full details of how to use this
2341 feature will be given with the description of the figure
2342 element. The attribute value is a string taking one of the
2343 following forms:
2344
2345
2346
2347 "default"
2348 Used to define a default link for the figure background.
2349
2350 "circle x, y, r"
2351 Where x and y define the center and r specifies the radius.
2352
2353 "rect x, y, w, h"
2354 Where x, y define the upper left corner and w, h define the
2355 width and height respectively
2356
2357 "polygon x1, y1, x2, y2, ..."
2358 Given n pairs of x, y coordinates, the polygon is closed by
2359 a line linking the n'th point to the first. Intersecting
2360 polygons use the non-zero winding number rule to determine
2361 if a point lies inside the polygon.
2362
2363 If a pointer event occurs in a region where two or more shapes
2364 overlap, the distance from the point to the center of gravity of
2365 each of the overlapping shapes is computed and the closest one
2366 chosen. This feature is useful when you want lots of closely
2367 spaced hotzones, for example over points on a map, as it allows
2368 you to use simple shapes without worrying about overlaps.
2369
2370 Note: The x coordinate increases to the right, and the y
2371 coordinate increases downwards in the same way as IMG and image
2372 maps. If both numbers are integers, the coordinates are
2373 interpreted as pixel offsets from the upper left corner of the
2374 figure. Otherwise, the coordinates are interpreted as scaled
2375 values in the range 0.0 to 1.0 across the figure. Note the
2376 syntax is tolerant of repeated white space characters between
2377 tokens.
2378
2379 TITLE
2380 This is informational only and describes the object specified
2381 with the HREF attribute. It can be used for object types that
2382 don't possess titles, such as graphics, plain text and Gopher
2383 menus.
2384
2385 REL
2386 Used to describe the relationship of the linked object specified
2387 with the HREF attribute. The set of relationship names is not
2388 part of this specification, although "Path" and "Node" are
2389 reserved for future use with hypertext paths or guided tours.
2390 The REL attribute can be used to support search for links
2391 serving particular relationships.
2392
2393
2394 Dave Raggett Page 42
2395 HTML 3.0 28th March 1995
2396
2397 REV
2398 This defines a reverse relationship. A link from document A to
2399 document B with REV=--relation-- expresses the same relationship
2400 as a link from B to A with REL=--relation--. REV=made is
2401 sometimes used to identify the document author, either the
2402 author's email address with a --mailto-- URI, or a link to the
2403 author's home page. Tables of contents can use anchors with
2404 REV="ToC" to allow software to insert page numbers when printing
2405 hypertext documents. The plain text version of this
2406 specification was generated in this way!
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451 Dave Raggett Page 43
2452 HTML 3.0 28th March 1995
2453
2454 Overview of Character-Level Elements
2455
2456 Permitted Context: %text
2457 Content Model: %text
2458
2459 Character level elements are used to specify either the structural
2460 meaning or the physical appearence of marked text without causing a
2461 paragraph break. Like most other elements, character level elements
2462 include both start and end tags. Only the characters between the
2463 tags are effected. For example:
2464
2465 This is <EM>emphasized</EM> text.
2466
2467 Highlighting elements are allowed within the content of other
2468 highlighting elements, but implementations are not required to
2469 render these nested highlighting elements distinctly from non-nested
2470 elements. For example, implementations may render the following two
2471 cases identically:
2472
2473 plain <B>bold <I>italic</I></B>
2474
2475 plain <B>bold </B><I>italic</I>
2476
2477 Some character highlighting styles are more explicit than others
2478 about how they should be physically represented. Designate the
2479 information type rather than the character format wherever possible,
2480 unless for example, it is necessary to refer to the text as in "The
2481 italic parts are mandatory".
2482
2483 Permitted Attributes
2484
2485 ID
2486 An SGML identifier used as the target for hypertext links or for
2487 naming particular elements in associated style sheets.
2488 Identifiers are NAME tokens and must be unique within the scope
2489 of the current document.
2490
2491 LANG
2492 This is one of the ISO standard language abbreviations, e.g.
2493 "en.uk" for the variation of English spoken in the United
2494 Kingdom. It can be used by parsers to select language specific
2495 choices for quotation marks, ligatures and hypenation rules etc.
2496 The language attribute is composed from the two letter language
2497 code from ISO 639, optionally followed by a period and a two
2498 letter country code from ISO 3166.
2499
2500 CLASS
2501 This a space separated list of SGML NAME tokens and is used to
2502 subclass tag names. By convention, the class names are
2503 interpreted hierarchically, with the most general class on the
2504 left and the most specific on the right, where classes are
2505 separated by a period. The CLASS attribute is most commonly used
2506 to attach a different style to some element, but it is
2507
2508 Dave Raggett Page 44
2509 HTML 3.0 28th March 1995
2510
2511 recommended that where practical class names should be picked on
2512 the basis of the element's semantics, as this will permit other
2513 uses, such as restricting search through documents by matching
2514 on element class names. The conventions for choosing class names
2515 are outside the scope of this specification.
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565 Dave Raggett Page 45
2566 HTML 3.0 28th March 1995
2567
2568 Information Type Elements
2569
2570 EM
2571 The <EM> element provides typographic emphasis, typically
2572 italics. While <EM> and <I> often give the same effect, use <EM>
2573 except where it is necessary in the text to refer to the
2574 formatting, as in "The italic parts are mandatory". This will
2575 help to ensure consistency between documents from various
2576 sources if (for example) the reader prefers to use color in
2577 place of italics for emphasis.
2578
2579 CITE
2580 The <CITE> element specifies a citation. Sections tagged with
2581 the CITE element are typically rendered in italics.
2582
2583 STRONG
2584 The <STRONG> element provides strong typographic emphasis,
2585 typically bold.
2586
2587 CODE
2588 The <CODE> element indicates an example of code; typically
2589 rendered in a mono-spaced font. Do not confuse with PRE.
2590
2591 SAMP
2592 The <SAMP> element indicates a sequence of literal characters.
2593
2594 KBD
2595 The <KBD> element indicates text typed (keyboarded) by the user.
2596 It might typically be used in an instruction manual.
2597
2598 VAR
2599 The <VAR> element indicates a variable name, and might typically
2600 be used in an instruction manual.
2601
2602 DFN
2603 The <DFN> element indicates the defining instance of a term.
2604 --New in 3.0--.
2605
2606 Q
2607 The <Q> element is used for a short quotation. It is typically
2608 shown enclosed in quotation marks as appropriate to the language
2609 context. For English these would be matching double or single
2610 quotation marks, alternating for nested quotes. The language
2611 context is set by the LANG attribute. --New in 3.0--.
2612
2613 LANG
2614 The <LANG> element is used to alter the language context when it
2615 is inappropriate to do this with other character-level elements.
2616 --New in 3.0--.
2617
2618 AU
2619 The <AU> element indicates the name of an author. --New in
2620 3.0--.
2621
2622 Dave Raggett Page 46
2623 HTML 3.0 28th March 1995
2624
2625
2626 PERSON
2627 The <PERSON> element is used for names of people to allow these
2628 to be extracted automatically by indexing programs. --New in
2629 3.0--.
2630
2631 ACRONYM
2632 The <ACRONYM> element is used to markup acronyms. --New in
2633 3.0--.
2634
2635 ABBREV
2636 The <ABBREV> element is used to markup abbreviations. --New in
2637 3.0--.
2638
2639 INS
2640 The <INS> element is used for inserted text, for instance in
2641 legal documents. --New in 3.0--.
2642
2643 DEL
2644 The <DEL> is used for deleted text, for instance in legal
2645 documents. --New in 3.0--.
2646
2647 An example:
2648
2649 This text contains an <em>emphasized</em> word.
2650 <strong>Don't assume</strong> that it will be italic!
2651 It was made with the <code>EM</code> element. A cite is
2652 often italic and has no formally required structure:
2653 <cite>Moby Dick</cite> is a book title.
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679 Dave Raggett Page 47
2680 HTML 3.0 28th March 1995
2681
2682 Font Style Elements
2683
2684 These elements may be nested within one another. Browsers should,
2685 where practical, aim to combine different types of highlighting as
2686 required.
2687
2688 B (Boldface)
2689 The <B> element specifies that the enclosed text should be
2690 displayed in a boldface. If this is not practical, an
2691 alternative mapping is allowed.
2692
2693 I (Italic)
2694 The <I> element specifies that the enclosed text should be
2695 displayed, if practical, in an italic font (or slanted).
2696
2697 TT (TeleType)
2698 The <TT> element specifies that the enclosed text should be
2699 displayed, if practical, in a fixed-pitch typewriter font.
2700
2701 U (Underline)
2702 The <U> element specifies that the enclosed text should be
2703 displayed, if practical, as underlined. --Not widely supported--
2704
2705 S (Strike through)
2706 The <S> element specifies that the enclosed text should be
2707 displayed with a horizontal line striking through the text. If
2708 this is not practical, an alternative mapping is allowed. --New
2709 in 3.0--.
2710
2711 BIG (Big print)
2712 The <BIG> element specifies that the enclosed text should be
2713 displayed, if practical, using a big font (compared with the
2714 current font). --New in 3.0--.
2715
2716 SMALL (Small print)
2717 The <SMALL> element specifies that the enclosed text should be
2718 displayed, if practical, using a small font (compared with
2719 normal text). --New in 3.0--.
2720
2721 SUB (Subscript)
2722 The <SUB> element specifies that the enclosed text should be
2723 displayed as a subscript, and if practical, using a smaller font
2724 (compared with normal text). The ALIGN attribute for SUB is only
2725 meaningful within the MATH element. --New in 3.0--.
2726
2727 SUP (Superscript)
2728 The <SUP> element specifies that the enclosed text should be
2729 displayed as a superscript, and if practical, using a smaller
2730 font (compared with normal text). The ALIGN attribute for SUP is
2731 only applicable within the MATH element. --New in 3.0--.
2732
2733 An example:
2734
2735
2736 Dave Raggett Page 48
2737 HTML 3.0 28th March 1995
2738
2739 This text contains some <b><i>bold italic</i></b> text, some
2740 <S>struck through</S> text and some <SMALL>small print</SMALL>.
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793 Dave Raggett Page 49
2794 HTML 3.0 28th March 1995
2795
2796 The IMG (Image) Element
2797
2798 Permitted Context: %text
2799 Content Model: Empty!
2800
2801 The <IMG> tag is used to incorporate in-line graphics (typically
2802 icons or small graphics) into an HTML document. This element is NOT
2803 intended for embedding other HTML text. For large figures with
2804 captions and text flow see FIG element.
2805
2806 Example:
2807
2808 <IMG SRC="tajmahal.gif" ALT="The Taj Mahal">
2809
2810 Browsers that cannot display in-line images ignore the IMG element
2811 unless it contains the ALT attribute. Note that some browsers can
2812 display (or print) linked graphics but not in-line graphics. If the
2813 graphic is essential, you may want to create a link to it rather
2814 than to put it in-line. If the graphic is essentially decorative,
2815 then IMG is appropriate.
2816
2817 Permitted Attributes
2818
2819 ID
2820 An SGML identifier used as the target for hypertext links or for
2821 naming particular elements in associated style sheets.
2822 Identifiers are NAME tokens and must be unique within the scope
2823 of the current document.
2824
2825 LANG
2826 This is one of the ISO standard language abbreviations, e.g.
2827 "en.uk" for the variation of English spoken in the United
2828 Kingdom. It can be used by parsers to select language specific
2829 choices for quotation marks, ligatures and hypenation rules etc.
2830 The language attribute is composed from the two letter language
2831 code from ISO 639, optionally followed by a period and a two
2832 letter country code from ISO 3166.
2833
2834 CLASS
2835 This a space separated list of SGML NAME tokens and is used to
2836 subclass tag names. By convention, the class names are
2837 interpreted hierarchically, with the most general class on the
2838 left and the most specific on the right, where classes are
2839 separated by a period. The CLASS attribute is most commonly used
2840 to attach a different style to some element, but it is
2841 recommended that where practical class names should be picked on
2842 the basis of the element's semantics, as this will permit other
2843 uses, such as restricting search through documents by matching
2844 on element class names. The conventions for choosing class names
2845 are outside the scope of this specification.
2846
2847 SRC (Source)
2848 The SRC attribute specifies the URI for the image to be
2849
2850 Dave Raggett Page 50
2851 HTML 3.0 28th March 1995
2852
2853 embedded. Its syntax is the same as that of the HREF attribute
2854 of the <A> tag. SRC is mandatory.
2855
2856 MD
2857 Specifies a message digest or cryptographic checksum for the
2858 associated graphic specified by the SRC attribute. It is used
2859 when you want to be sure that the image is indeed the same one
2860 that the author intended, and hasn't been modified in any way.
2861 For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
2862 specifies an MD5 checksum encoded as a base64 character string.
2863 The MD attribute is generally allowed for all elements which
2864 support URI based links.
2865
2866 WIDTH
2867 Optional suggested width for the image. By default, this is
2868 given in pixels.
2869
2870 HEIGHT
2871 Optional suggested height for the image. By default, this is
2872 given in pixels.
2873
2874 UNITS
2875 This optional attribute specifies the units for the width and
2876 height attributes. It is one of: units=pixels (the default) or
2877 units=en (half the point size).
2878
2879 ALIGN
2880 Take values TOP or MIDDLE or BOTTOM, defining whether the top or
2881 middle or bottom of the graphic should be aligned with the
2882 baseline for the text line in which the IMG element appears.
2883
2884 With ALIGN=LEFT, the graphic will float down and over to the
2885 current left margin, and subsequent text will wrap around the
2886 right hand side of the graphic. Likewise for ALIGN=RIGHT, the
2887 graphic aligns with the current right margin and, and text wraps
2888 around the left. It is inappropriate to use this feature for
2889 larger graphics as these are best represented with the FIG
2890 element.
2891
2892 ALT (Alternate text)
2893 Optional alternative text as an alternative to the graphics for
2894 display in text-only environments. The alt text can contain
2895 entities e.g. for accented characters or special symbols, but it
2896 can't contain markup. The latter is possible, however, with the
2897 FIG element.
2898
2899 ISMAP
2900 An image map is a graphical map by which users can navigate
2901 transparently from one information resource to another. The
2902 ISMAP attribute identifies an image as an image map. The IMG
2903 element can then be used as part of the label for a hypertext
2904 link (see the anchor element). When the user clicks on the image
2905 the location clicked is sent to the server designated by the
2906
2907 Dave Raggett Page 51
2908 HTML 3.0 28th March 1995
2909
2910 hypertext link.
2911
2912 For example:
2913
2914 <A HREF="http://machine/htbin/imagemap/sample">
2915 <IMG SRC="sample.gif" ISMAP></A>
2916
2917 Note: There are drawbacks from having the server process clicks on
2918 images: the delay in getting feedback and the inability to change
2919 the pointer cursor on the fly as it moves over hotzones. Client-side
2920 processing of events is possible if one of the following applies:
2921
2922 * The server may allow the image map to be downloaded and
2923 processed locally. This should work with legacy documents
2924 produced using earlier versions of HTML.
2925
2926 * Using an image format that includes image hotzones as part of
2927 the file format.
2928
2929 * The FIG element provides for client-side image maps as a unified
2930 part of the figure description. It offers a number of advantages
2931 over IMG, including captions, markup in alt text and text flow
2932 around figures.
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964 Dave Raggett Page 52
2965 HTML 3.0 28th March 1995
2966
2967 UL (Unordered List)
2968
2969 Permitted Context: %Body.Content, %flow, %block
2970 Content Model: Optional list header (LH), followed by one or more
2971 list items(LI)
2972
2973 An unordered list typically is a bulleted list of items. HTML 3.0
2974 gives you the ability to customise the bullets, to do without
2975 bullets and to wrap list items horizontally or vertically for
2976 multicolumn lists.
2977
2978 The opening list tag must be <UL>. It is followed by an optional
2979 list header (<LH>caption</LH>) and then by the first list item
2980 (<LI>). For example:
2981
2982 <UL>
2983 <LH>Table Fruit</LH>
2984 <LI>apples
2985 <LI>oranges
2986 <LI>bananas
2987 </UL>
2988
2989 which could be rendered as:
2990
2991 Table Fruit
2992
2993 * apples
2994
2995 * oranges
2996
2997 * bananas
2998
2999 Note: Some legacy documents may include headers or plain text before
3000 the first LI element. Implementors of HTML 3.0 user agents are
3001 advised to cater for this possibility in order to handle badly
3002 formed legacy documents.
3003
3004 MENU and DIR elements
3005
3006 These elements are superceded by extensions to the UL element. User
3007 agents are advised to continue to support them for the sake of
3008 legacy documents. Both MENU and DIR consist of one or more LI
3009 elements, similar to UL. MENU lists are typically rendered without
3010 bullets in a more compact style than UL. You can get the same effect
3011 with <UL PLAIN>. DIR lists are used to present lists of items
3012 containing up to 20 characters each. Items in a DIR list are
3013 arranged in columns. You can get the same effect with <UL PLAIN
3014 WRAP=HORIZ>.
3015
3016 Permitted Attributes for the UL Element
3017
3018 ID
3019 An SGML identifier used as the target for hypertext links or for
3020
3021 Dave Raggett Page 53
3022 HTML 3.0 28th March 1995
3023
3024 naming particular elements in associated style sheets.
3025 Identifiers are NAME tokens and must be unique within the scope
3026 of the current document.
3027
3028 LANG
3029 This is one of the ISO standard language abbreviations, e.g.
3030 "en.uk" for the variation of English spoken in the United
3031 Kingdom. It can be used by parsers to select language specific
3032 choices for quotation marks, ligatures and hypenation rules etc.
3033 The language attribute is composed from the two letter language
3034 code from ISO 639, optionally followed by a period and a two
3035 letter country code from ISO 3166.
3036
3037 CLASS
3038 This a space separated list of SGML NAME tokens and is used to
3039 subclass tag names. By convention, the class names are
3040 interpreted hierarchically, with the most general class on the
3041 left and the most specific on the right, where classes are
3042 separated by a period. The CLASS attribute is most commonly used
3043 to attach a different style to some element, but it is
3044 recommended that where practical class names should be picked on
3045 the basis of the element's semantics, as this will permit other
3046 uses, such as restricting search through documents by matching
3047 on element class names. The conventions for choosing class names
3048 are outside the scope of this specification.
3049
3050 CLEAR
3051 This attribute is common to all block-like elements. When text
3052 flows around a figure or table in the margin, you sometimes want
3053 to start an element like a header, paragraph or list below the
3054 figure rather than alongside it. The CLEAR attribute allows you
3055 to move down unconditionally:
3056
3057
3058
3059 clear=left
3060 move down until left margin is clear
3061
3062 clear=right
3063 move down until right margin is clear
3064
3065 clear=all
3066 move down until both margins are clear
3067
3068 Alternatively, you can decide to place the element alongside the
3069 figure just so long as there is enough room. The minimum width
3070 needed is specified as:
3071
3072
3073
3074 clear="40 en"
3075 move down until there is at least 40 en units free
3076
3077
3078 Dave Raggett Page 54
3079 HTML 3.0 28th March 1995
3080
3081 clear="100 pixels"
3082 move down until there is at least 100 pixels free
3083
3084 The style sheet (or browser defaults) may provide default
3085 minimum widths for each class of block-like elements.
3086
3087 PLAIN
3088 The presence of this attribute suppresses the display of
3089 bullets, e.g. <UL PLAIN>.
3090
3091 SRC
3092 Specifies an image for use as a bullet. The image is specified
3093 as a URI. This attribute may appear together with the MD
3094 attribute.
3095
3096 MD
3097 Specifies a message digest or cryptographic checksum for the
3098 associated graphic specified by the SRC attribute. It is used
3099 when you want to be sure that a linked object is indeed the same
3100 one that the author intended, and hasn't been modified in any
3101 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
3102 specifies an MD5 checksum encoded as a base64 character string.
3103 The MD attribute is generally allowed for all elements which
3104 support URI based links.
3105
3106 DINGBAT
3107 Specifies an iconic image for use as a bullet. The icon is
3108 specified as an entity name. A list of standard icon entity
3109 names for HTML 3.0 is given in an appendix of this
3110 specification, e.g. folder is the entity name for an icon
3111 denoting a directory or folder.
3112
3113 WRAP
3114 The WRAP attribute is used for multicolumn lists. Use wrap=vert
3115 if you want to arrange the list items down the page before
3116 wrapping to the next column. Use wrap=horiz if you want to
3117 arrange the items across the page (less useful). The user agent
3118 is responsible for determining how many columns are appropriate.
3119
3120 COMPACT
3121 The presence of this attribute indicates the user agent should
3122 use reduced interitem spacing. In practice, there are several
3123 ways to increase the compactness of lists: reduced vertical
3124 interitem spacing, smaller font size, or even to avoid line
3125 breaks between items. This is best handled through associated
3126 style sheets and the class attribute.
3127
3128
3129
3130
3131
3132
3133
3134
3135 Dave Raggett Page 55
3136 HTML 3.0 28th March 1995
3137
3138 LH (List Header)
3139
3140 Permitted Context: Immediately following UL, OL or DL
3141 Content Model: %text
3142
3143 The LH or list header element is used to provide a title for a list.
3144 User agents can use this in place of the full list when a mechanism
3145 is provided to fold and unfold nested lists.
3146
3147 Permitted Attributes for the LH Element
3148
3149 ID
3150 An SGML identifier used as the target for hypertext links or for
3151 naming particular elements in associated style sheets.
3152 Identifiers are NAME tokens and must be unique within the scope
3153 of the current document.
3154
3155 LANG
3156 This is one of the ISO standard language abbreviations, e.g.
3157 "en.uk" for the variation of English spoken in the United
3158 Kingdom. It can be used by parsers to select language specific
3159 choices for quotation marks, ligatures and hypenation rules etc.
3160 The language attribute is composed from the two letter language
3161 code from ISO 639, optionally followed by a period and a two
3162 letter country code from ISO 3166.
3163
3164 CLASS
3165 This a space separated list of SGML NAME tokens and is used to
3166 subclass tag names. By convention, the class names are
3167 interpreted hierarchically, with the most general class on the
3168 left and the most specific on the right, where classes are
3169 separated by a period. The CLASS attribute is most commonly used
3170 to attach a different style to some element, but it is
3171 recommended that where practical class names should be picked on
3172 the basis of the element's semantics, as this will permit other
3173 uses, such as restricting search through documents by matching
3174 on element class names. The conventions for choosing class names
3175 are outside the scope of this specification.
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192 Dave Raggett Page 56
3193 HTML 3.0 28th March 1995
3194
3195 LI (List Item)
3196
3197 Permitted Context: UL or OL
3198 Content Model: %flow
3199
3200 The LI or list item element is used for items in both ordered and
3201 unordered lists.
3202
3203 Note: The content model for list items is quite broad, including
3204 paragraphs, lists, performatted text, forms, tables, figures and
3205 admonishments. Headers are not permitted, although implementors of
3206 HTML 3.0 user agents are advised to cater for this possibility in
3207 order to handle badly formed legacy documents. If %html.recommended
3208 is active, the HTML 3.0 DTD expects you to enclose plain text in a
3209 block element such as <P>
3210
3211 Permitted Attributes for the LI Element
3212
3213 ID
3214 An SGML identifier used as the target for hypertext links or for
3215 naming particular elements in associated style sheets.
3216 Identifiers are NAME tokens and must be unique within the scope
3217 of the current document.
3218
3219 LANG
3220 This is one of the ISO standard language abbreviations, e.g.
3221 "en.uk" for the variation of English spoken in the United
3222 Kingdom. It can be used by parsers to select language specific
3223 choices for quotation marks, ligatures and hypenation rules etc.
3224 The language attribute is composed from the two letter language
3225 code from ISO 639, optionally followed by a period and a two
3226 letter country code from ISO 3166.
3227
3228 CLASS
3229 This a space separated list of SGML NAME tokens and is used to
3230 subclass tag names. By convention, the class names are
3231 interpreted hierarchically, with the most general class on the
3232 left and the most specific on the right, where classes are
3233 separated by a period. The CLASS attribute is most commonly used
3234 to attach a different style to some element, but it is
3235 recommended that where practical class names should be picked on
3236 the basis of the element's semantics, as this will permit other
3237 uses, such as restricting search through documents by matching
3238 on element class names. The conventions for choosing class names
3239 are outside the scope of this specification.
3240
3241 CLEAR
3242 This attribute is common to all block-like elements. When text
3243 flows around a figure or table in the margin, you sometimes want
3244 to start the list item below the figure rather than alongside
3245 it. The CLEAR attribute allows you to move down unconditionally:
3246
3247
3248
3249 Dave Raggett Page 57
3250 HTML 3.0 28th March 1995
3251
3252
3253 clear=left
3254 move down until left margin is clear
3255
3256 clear=right
3257 move down until right margin is clear
3258
3259 clear=all
3260 move down until both margins are clear
3261
3262 Alternatively, you can decide to place the element alongside the
3263 figure just so long as there is enough room. The minimum width
3264 needed is specified as:
3265
3266
3267
3268 clear="40 en"
3269 move down until there is at least 40 en units free
3270
3271 clear="100 pixels"
3272 move down until there is at least 100 pixels free
3273
3274 The style sheet (or browser defaults) may provide default
3275 minimum widths for each class of block-like elements.
3276
3277 SRC
3278 Specifies an image for use as a bullet. The image is specified
3279 as a URI. This attribute may appear together with the MD
3280 attribute.
3281
3282 MD
3283 Specifies a message digest or cryptographic checksum for the
3284 associated graphic specified by the SRC attribute. It is used
3285 when you want to be sure that a linked object is indeed the same
3286 one that the author intended, and hasn't been modified in any
3287 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
3288 specifies an MD5 checksum encoded as a base64 character string.
3289 The MD attribute is generally allowed for all elements which
3290 support URI based links.
3291
3292 DINGBAT
3293 Specifies an iconic image for use as a bullet. The icon is
3294 specified as an entity name. A list of standard icon entity
3295 names for HTML 3.0 is given in an appendix of this
3296 specification, e.g. folder is the entity name for an icon
3297 denoting a directory or folder.
3298
3299 SKIP
3300 Increments the sequence number before rendering the element. It
3301 is used when headers have been left out of the sequence. For
3302 instance, SKIP=3 advances the sequence number past 3 omitted
3303 items.
3304
3305
3306 Dave Raggett Page 58
3307 HTML 3.0 28th March 1995
3308
3309 OL (Ordered List)
3310
3311 Permitted Context: %Body.Content, %flow, %block
3312 Content Model: Optional list header (LH), followed by one or more
3313 list items(LI)
3314
3315 An ordered list typically is a numbered list of items. HTML 3.0
3316 gives you the ability to control the sequence number - to continue
3317 where the previous list left off, or to start at a particular
3318 number. The numbering style is left to associated style sheets, e.g.
3319 whether nested lists contribute to a compound item number, e.g.
3320 "3.1.5", or whether numbers are rendered as arabic, upper or lower
3321 case roman numerals or using the numbering scheme appropriate to the
3322 language context.
3323
3324 The opening list tag must be <OL>. It is followed by an optional
3325 list header (<LH>caption</LH>) and then by the first list item
3326 (<LI>). For example:
3327
3328 <OL>
3329 <LH>Meeting Agenda</LH>
3330 <LI>Minutes of the last meeting
3331 <LI>Do we need yet more meetings?
3332 <LI>Any other business
3333 </OL>
3334
3335 which could be rendered as:
3336
3337 Meeting Agenda
3338
3339 1. Minutes of the last meeting
3340
3341 2. Do we need yet more meetings?
3342
3343 3. Any other business
3344
3345 Note: Some legacy documents may include headers or plain text before
3346 the first LI element. Implementors of HTML 3.0 user agents are
3347 advised to cater for this possibility in order to handle badly
3348 formed legacy documents.
3349
3350 Permitted Attributes for the OL Element
3351
3352 ID
3353 An SGML identifier used as the target for hypertext links or for
3354 naming particular elements in associated style sheets.
3355 Identifiers are NAME tokens and must be unique within the scope
3356 of the current document.
3357
3358 LANG
3359 This is one of the ISO standard language abbreviations, e.g.
3360 "en.uk" for the variation of English spoken in the United
3361 Kingdom. It can be used by parsers to select language specific
3362
3363 Dave Raggett Page 59
3364 HTML 3.0 28th March 1995
3365
3366 choices for quotation marks, ligatures and hypenation rules etc.
3367 The language attribute is composed from the two letter language
3368 code from ISO 639, optionally followed by a period and a two
3369 letter country code from ISO 3166.
3370
3371 CLASS
3372 This a space separated list of SGML NAME tokens and is used to
3373 subclass tag names. By convention, the class names are
3374 interpreted hierarchically, with the most general class on the
3375 left and the most specific on the right, where classes are
3376 separated by a period. The CLASS attribute is most commonly used
3377 to attach a different style to some element, but it is
3378 recommended that where practical class names should be picked on
3379 the basis of the element's semantics, as this will permit other
3380 uses, such as restricting search through documents by matching
3381 on element class names. The conventions for choosing class names
3382 are outside the scope of this specification.
3383
3384 CLEAR
3385 This attribute is common to all block-like elements. When text
3386 flows around a figure or table in the margin, you sometimes want
3387 to start an element like a header, paragraph or list below the
3388 figure rather than alongside it. The CLEAR attribute allows you
3389 to move down unconditionally:
3390
3391
3392
3393 clear=left
3394 move down until left margin is clear
3395
3396 clear=right
3397 move down until right margin is clear
3398
3399 clear=all
3400 move down until both margins are clear
3401
3402 Alternatively, you can decide to place the element alongside the
3403 figure just so long as there is enough room. The minimum width
3404 needed is specified as:
3405
3406
3407
3408 clear="40 en"
3409 move down until there is at least 40 en units free
3410
3411 clear="100 pixels"
3412 move down until there is at least 100 pixels free
3413
3414 The style sheet (or browser defaults) may provide default
3415 minimum widths for each class of block-like elements.
3416
3417 CONTINUE
3418 Don't restart the sequence number, i.e. continue where previous
3419
3420 Dave Raggett Page 60
3421 HTML 3.0 28th March 1995
3422
3423 list left off, e.g. <OL CONTINUE>
3424
3425 SEQNUM
3426 Set the starting sequence number for the first item, e.g. <OL
3427 SEQNUM=23>
3428
3429 COMPACT
3430 The presence of this attribute indicates the user agent should
3431 use reduced interitem spacing. In practice, there are several
3432 ways to increase the compactness of lists: reduced vertical
3433 interitem spacing, smaller font size, or even to avoid line
3434 breaks between items. This is best handled through associated
3435 style sheets and the class attribute.
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477 Dave Raggett Page 61
3478 HTML 3.0 28th March 1995
3479
3480 DL - Definition Lists
3481
3482 Permitted Context: %Body.Content, %flow, %block
3483 Content Model: Optional list header(LH), followed by one or more
3484 terms(DT) and definitions(DD).
3485
3486 A definition list is a list of terms and corresponding definitions.
3487 Definition lists are typically formatted with the term on the left
3488 with the definition following on the right or on the next line. The
3489 definition text is typically indented with respect to the term.
3490
3491 An alternative format places the term left aligned in a wide margin
3492 and the definition on one or more lines to the right of the term. If
3493 the DT term does not fit in the DT column (one third of the display
3494 area), it may be extended across the page with the DD section moved
3495 to the next line, or it may be wrapped onto successive lines of the
3496 left hand column.
3497
3498 The opening list tag must be <DL>. It is followed by an optional
3499 list header (<LH>caption</LH>) and then by term names (<DT>) and
3500 definitions (<DD>). For example:
3501
3502 <DL>
3503 <LH>List Header</LH>
3504 <DT>Term 1<dd>This is the definition of the first term.
3505 <DT>Term 2<dd>This is the definition of the second term.
3506 </DL>
3507
3508 which could be rendered as:
3509
3510 List Header
3511
3512 Term 1
3513 This is the definition of the first term.
3514
3515 Term 2
3516 This is the definition of the second term.
3517
3518 The definition list element can take the COMPACT attribute, which
3519 suggests that a compact rendering be used, and is appropriate if the
3520 list elements are small and/or the entire list is large.
3521
3522 Note: Use the NOTE element when you want to have an indented note.
3523 The practice of using <DD> elements without corresponding <DT>
3524 elements is deprecated.
3525
3526 Permitted Attributes for the DL Element
3527
3528 ID
3529 An SGML identifier used as the target for hypertext links or for
3530 naming particular elements in associated style sheets.
3531 Identifiers are NAME tokens and must be unique within the scope
3532 of the current document.
3533
3534 Dave Raggett Page 62
3535 HTML 3.0 28th March 1995
3536
3537
3538 LANG
3539 This is one of the ISO standard language abbreviations, e.g.
3540 "en.uk" for the variation of English spoken in the United
3541 Kingdom. It can be used by parsers to select language specific
3542 choices for quotation marks, ligatures and hypenation rules etc.
3543 The language attribute is composed from the two letter language
3544 code from ISO 639, optionally followed by a period and a two
3545 letter country code from ISO 3166.
3546
3547 CLASS
3548 This a space separated list of SGML NAME tokens and is used to
3549 subclass tag names. By convention, the class names are
3550 interpreted hierarchically, with the most general class on the
3551 left and the most specific on the right, where classes are
3552 separated by a period. The CLASS attribute is most commonly used
3553 to attach a different style to some element, but it is
3554 recommended that where practical class names should be picked on
3555 the basis of the element's semantics, as this will permit other
3556 uses, such as restricting search through documents by matching
3557 on element class names. The conventions for choosing class names
3558 are outside the scope of this specification.
3559
3560 CLEAR
3561 This attribute is common to all block-like elements. When text
3562 flows around a figure or table in the margin, you sometimes want
3563 to start an element like a header, paragraph or list below the
3564 figure rather than alongside it. The CLEAR attribute allows you
3565 to move down unconditionally:
3566
3567
3568
3569 clear=left
3570 move down until left margin is clear
3571
3572 clear=right
3573 move down until right margin is clear
3574
3575 clear=all
3576 move down until both margins are clear
3577
3578 Alternatively, you can decide to place the element alongside the
3579 figure just so long as there is enough room. The minimum width
3580 needed is specified as:
3581
3582
3583
3584 clear="40 en"
3585 move down until there is at least 40 en units free
3586
3587 clear="100 pixels"
3588 move down until there is at least 100 pixels free
3589
3590
3591 Dave Raggett Page 63
3592 HTML 3.0 28th March 1995
3593
3594 The style sheet (or browser defaults) may provide default
3595 minimum widths for each class of block-like elements.
3596
3597 COMPACT
3598 The presence of this attribute indicates the user agent should
3599 use reduced interitem spacing. The COMPACT attribute may also
3600 reduce the width of the left-hand (DT) column.
3601
3602 In practice, there are several ways to increase the compactness
3603 of lists: reduced vertical interitem spacing, smaller font size,
3604 or even to avoid line breaks between items. This is best handled
3605 through associated style sheets and the class attribute.
3606
3607 The opening list tag must be DL COMPACT. It must be immediately
3608 followed by the first term (DT). For example:
3609
3610 <DL compact>
3611 <DT>Term<DD>This is the first definition in compact format.
3612 <DT>Term<DD>This is the second definition in compact format.
3613 </DL>
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648 Dave Raggett Page 64
3649 HTML 3.0 28th March 1995
3650
3651 DT - Term Name
3652
3653 Permitted Context: DL
3654 Content Model: %text
3655
3656 The DT tag element specifies a term name, and you can have several
3657 terms per DD element.
3658
3659 Note: Term names are restricted to character level markup only,
3660 including epmhasis, inline images and footnotes. Paragraph tags and
3661 other block-like element such as headers are not permitted, although
3662 implementors of HTML 3.0 user agents are advised to cater for this
3663 possibility in order to handle badly formed legacy documents.
3664
3665 Permitted Attributes for the DT Element
3666
3667 ID
3668 An SGML identifier used as the target for hypertext links or for
3669 naming particular elements in associated style sheets.
3670 Identifiers are NAME tokens and must be unique within the scope
3671 of the current document.
3672
3673 LANG
3674 This is one of the ISO standard language abbreviations, e.g.
3675 "en.uk" for the variation of English spoken in the United
3676 Kingdom. It can be used by parsers to select language specific
3677 choices for quotation marks, ligatures and hypenation rules etc.
3678 The language attribute is composed from the two letter language
3679 code from ISO 639, optionally followed by a period and a two
3680 letter country code from ISO 3166.
3681
3682 CLASS
3683 This a space separated list of SGML NAME tokens and is used to
3684 subclass tag names. By convention, the class names are
3685 interpreted hierarchically, with the most general class on the
3686 left and the most specific on the right, where classes are
3687 separated by a period. The CLASS attribute is most commonly used
3688 to attach a different style to some element, but it is
3689 recommended that where practical class names should be picked on
3690 the basis of the element's semantics, as this will permit other
3691 uses, such as restricting search through documents by matching
3692 on element class names. The conventions for choosing class names
3693 are outside the scope of this specification.
3694
3695 CLEAR
3696 When text flows around a figure or table in the margin, you
3697 sometimes want to start the term name below the figure rather
3698 than alongside it. The CLEAR attribute allows you to move down unconditionally:
3699
3700
3701
3702 clear=left
3703 move down until left margin is clear
3704
3705 Dave Raggett Page 65
3706 HTML 3.0 28th March 1995
3707
3708
3709 clear=right
3710 move down until right margin is clear
3711
3712 clear=all
3713 move down until both margins are clear
3714
3715 Alternatively, you can decide to place the element alongside the
3716 figure just so long as there is enough room. The minimum width
3717 needed is specified as:
3718
3719
3720
3721 clear="40 en"
3722 move down until there is at least 40 en units free
3723
3724 clear="100 pixels"
3725 move down until there is at least 100 pixels free
3726
3727 The style sheet (or browser defaults) may provide default
3728 minimum widths for each class of block-like elements.
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762 Dave Raggett Page 66
3763 HTML 3.0 28th March 1995
3764
3765 DD - Term Definition
3766
3767 Permitted Context: DL
3768 Content Model: %flow
3769
3770 The DD tag element specifies a term definition, and follows one or
3771 more DT elements.
3772
3773 Note: The content model for term definitions is quite broad,
3774 including paragraphs, lists, performatted text, forms, tables,
3775 figures and admonishments. Headers are not permitted, although
3776 implementors of HTML 3.0 user agents are advised to cater for this
3777 possibility in order to handle badly formed legacy documents. If
3778 %html.recommended is active, the HTML 3.0 DTD expects you to enclose
3779 plain text in a block element such as <P>
3780
3781 Permitted Attributes for the DD Element
3782
3783 ID
3784 An SGML identifier used as the target for hypertext links or for
3785 naming particular elements in associated style sheets.
3786 Identifiers are NAME tokens and must be unique within the scope
3787 of the current document.
3788
3789 LANG
3790 This is one of the ISO standard language abbreviations, e.g.
3791 "en.uk" for the variation of English spoken in the United
3792 Kingdom. It can be used by parsers to select language specific
3793 choices for quotation marks, ligatures and hypenation rules etc.
3794 The language attribute is composed from the two letter language
3795 code from ISO 639, optionally followed by a period and a two
3796 letter country code from ISO 3166.
3797
3798 CLASS
3799 This a space separated list of SGML NAME tokens and is used to
3800 subclass tag names. By convention, the class names are
3801 interpreted hierarchically, with the most general class on the
3802 left and the most specific on the right, where classes are
3803 separated by a period. The CLASS attribute is most commonly used
3804 to attach a different style to some element, but it is
3805 recommended that where practical class names should be picked on
3806 the basis of the element's semantics, as this will permit other
3807 uses, such as restricting search through documents by matching
3808 on element class names. The conventions for choosing class names
3809 are outside the scope of this specification.
3810
3811 CLEAR
3812 When text flows around a figure or table in the margin, you
3813 sometimes want to start term definition below the figure rather
3814 than alongside it. The CLEAR attribute allows you to move down unconditionally:
3815
3816
3817
3818
3819 Dave Raggett Page 67
3820 HTML 3.0 28th March 1995
3821
3822 clear=left
3823 move down until left margin is clear
3824
3825 clear=right
3826 move down until right margin is clear
3827
3828 clear=all
3829 move down until both margins are clear
3830
3831 Alternatively, you can decide to place the element alongside the
3832 figure just so long as there is enough room. The minimum width
3833 needed is specified as:
3834
3835
3836
3837 clear="40 en"
3838 move down until there is at least 40 en units free
3839
3840 clear="100 pixels"
3841 move down until there is at least 100 pixels free
3842
3843 The style sheet (or browser defaults) may provide default
3844 minimum widths for each class of block-like elements.
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876 Dave Raggett Page 68
3877 HTML 3.0 28th March 1995
3878
3879 Figures
3880
3881 Permitted Context: %body.content, %flow, %block
3882 Content Model: Optional OVERLAYs followed by an optional CAPTION,
3883 then %body.content and finally an optional CREDIT
3884
3885 The FIG element is used for figures. Subsequent elements will be
3886 flowed around the figure if there is sufficient room. This behaviour
3887 is disabled when the align attribute is --center-- (the default) or
3888 --justify--.
3889
3890 Figure overlays provide for more effective use of caching as small
3891 changes to a figure in a subsequent document incur only the penalty
3892 of downloading the overlays and not the larger base figure, as the
3893 latter is already in the cache.
3894
3895 The figure description text is intended to convey the content of the
3896 figure for people with non-graphical user agents, while the figure
3897 caption and credit are rendered on both graphical and non-graphical
3898 user agents. The FIG element improves on the IMG element by allowing
3899 authors to use markup for the description text. The content model
3900 allows authors to include headers, which is appropriate when the
3901 headers are part of the image data. It also allows graphical
3902 hypertext links to be specified in the markup and interpreted by the
3903 user agent rather than the server.
3904
3905 The anchor elements in the figure description text play a dual role:
3906 Non-graphical user agents show conventional hypertext links, while
3907 for graphical user agents, the same anchor elements specify
3908 graphical hypertext links, with the SHAPE attribute designating the
3909 hotzones. This is designed to simplify the task of authors writing
3910 for both audiences. Hopefully, the FIG element will help to combat
3911 the tendency for authors to forget about people limited to terminal
3912 access or the visually impaired relying on text to speech, as the
3913 new element forces you to write description text to define the
3914 graphical hypertext links.
3915
3916 For some applications the hotzones are dynamically defined by
3917 programs running on the server. HTML 3.0 allows clicks and drags to
3918 be passed to the server with the IMAGEMAP attribute. Hotzones may
3919 also be specified as part of the graphics data format e.g. as in
3920 VRML. Hotzones in the FIG element take precedence over hotzones in
3921 the graphics data, which in turn take precedence over passing events
3922 to a server imagemap program.
3923
3924 Hotzones in overlay graphics data take precedence over hotzones in
3925 figure data. Similarly, the imagemap attribute in overlays takes
3926 precedence over the imagemap attribute for the figure. For a group
3927 of overlapping overlays the precedence is determined by the order
3928 the OVERLAY elements appear within the FIG element. Later overlays
3929 take precedence over earlier ones.
3930
3931 Examples
3932
3933 Dave Raggett Page 69
3934 HTML 3.0 28th March 1995
3935
3936
3937 Photographic image with caption and credits:
3938
3939 <FIG SRC="nicodamus.jpeg">
3940 <CAPTION>Ground dweller: <I>Nicodamus bicolor</I>
3941 builds silk snares</CAPTION>
3942 <P>A small hairy spider light fleshy red in color with a brown abdomen.
3943 <CREDIT>J. A. L. Cooke/OSF</CREDIT>
3944 </FIG>
3945
3946 Company home page:
3947
3948 <FIG SRC="mainmenu.gif">
3949 <H1>Access HP from Hewlett Packard</H1>
3950 <P>Select between:
3951 <UL>
3952 <LI><A HREF="guide.html" SHAPE="rect 30,200,60,16">Access Guide</A>
3953 <LI><A HREF="about.html" SHAPE="rect 100,200,50,16">About HP</A>
3954 <LI><A HREF="guide.html" SHAPE="rect 160,200,30,16">News</A>
3955 <LI><A HREF="guide.html" SHAPE="rect 200,200,50,16">Products</A>
3956 <LI><A HREF="guide.html" SHAPE="rect 260,200,80,16">Worldwide Contacts</A>
3957 </UL>
3958 </FIG>
3959
3960 Aerial photograph with map overlay:
3961
3962 <FIG SRC="newyork.jpeg">
3963 <OVERLAY SRC="map.gif">
3964 <P>New York from the air!
3965 </FIG>
3966
3967 Permitted Attributes
3968
3969 ID
3970 An SGML identifier used as the target for hypertext links or for
3971 naming particular elements in associated style sheets.
3972 Identifiers are NAME tokens and must be unique within the scope
3973 of the current document.
3974
3975 LANG
3976 This is one of the ISO standard language abbreviations, e.g.
3977 "en.uk" for the variation of English spoken in the United
3978 Kingdom. It can be used by parsers to select language specific
3979 choices for quotation marks, ligatures and hypenation rules etc.
3980 The language attribute is composed from the two letter language
3981 code from ISO 639, optionally followed by a period and a two
3982 letter country code from ISO 3166.
3983
3984 CLASS
3985 This a space separated list of SGML NAME tokens and is used to
3986 subclass tag names. By convention, the class names are
3987 interpreted hierarchically, with the most general class on the
3988 left and the most specific on the right, where classes are
3989
3990 Dave Raggett Page 70
3991 HTML 3.0 28th March 1995
3992
3993 separated by a period. The CLASS attribute is most commonly used
3994 to attach a different style to some element, but it is
3995 recommended that where practical class names should be picked on
3996 the basis of the element's semantics, as this will permit other
3997 uses, such as restricting search through documents by matching
3998 on element class names. The conventions for choosing class names
3999 are outside the scope of this specification.
4000
4001 CLEAR
4002 When there is already a figure or table in the margin, you
4003 sometimes want to position another figure below the figure in
4004 the margin rather than alongside it. The CLEAR attribute allows
4005 you to move down unconditionally:
4006
4007
4008
4009 clear=left
4010 move down until left margin is clear
4011
4012 clear=right
4013 move down until right margin is clear
4014
4015 clear=all
4016 move down until both margins are clear
4017
4018 Alternatively, you can decide to place the figure alongside the
4019 figure in the margin just so long as there is enough room. The
4020 minimum width needed is specified as:
4021
4022
4023
4024 clear="40 en"
4025 move down until there is at least 40 en units free
4026
4027 clear="100 pixels"
4028 move down until there is at least 100 pixels free
4029
4030 The style sheet (or browser defaults) may provide default
4031 minimum widths for each class of block-like elements.
4032
4033 NOFLOW
4034 The presence of this attribute disables text flow around the
4035 figure. It avoids the need to use the CLEAR or NEEDS attributes
4036 on the following element.
4037
4038 SRC
4039 Specifies the figure's graphical content. The image is specified
4040 as a URI. This attribute may appear together with the MD
4041 attribute.
4042
4043 MD
4044 Specifies a message digest or cryptographic checksum for the
4045 associated graphic specified by the SRC attribute. It is used
4046
4047 Dave Raggett Page 71
4048 HTML 3.0 28th March 1995
4049
4050 when you want to be sure that a linked object is indeed the same
4051 one that the author intended, and hasn't been modified in any
4052 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
4053 specifies an MD5 checksum encoded as a base64 character string.
4054 The MD attribute is generally allowed for all elements which
4055 support URI based links.
4056
4057 ALIGN
4058 Specifies horizontal alignment of the figure:
4059
4060
4061
4062 BLEEDLEFT
4063 Flush left with the left (window) border.
4064
4065 LEFT
4066 Flush left with the left text margin.
4067
4068 CENTER
4069 The figure is centered between the text margins and text
4070 flow around the figure is disabled. This is the default
4071 setting for ALIGN.
4072
4073 RIGHT
4074 Flush right with the right text margin.
4075
4076 BLEEDRIGHT
4077 Flush right with the right (window) border
4078
4079 JUSTIFY
4080 When applicable the figure should be magnified or reduced to
4081 fill the space between the left and right text margins. Text
4082 flow around the figure is disabled for align=justify.
4083
4084 WIDTH
4085 Specifies the desired width in pixels or en units (according to
4086 the value of the UNITS attribute). User agents may scale the
4087 figure image to match this width.
4088
4089 HEIGHT
4090 Specifies the desired height in pixels or en units (according to
4091 the value of the UNITS attribute). User agents may scale the
4092 figure image to match this height.
4093
4094 UNITS
4095 Specifies the choice of units for width and height. units=pixels
4096 (the default) specifies pixels, while units=en specifies en
4097 units. The en unit is a typographical unit equal to half the
4098 point size.
4099
4100 IMAGEMAP
4101 Specifies a URI for processing image clicks and drags.
4102
4103
4104 Dave Raggett Page 72
4105 HTML 3.0 28th March 1995
4106
4107 Figure Overlays
4108
4109 Permitted Context: start of FIG element
4110 Content Model: Empty!
4111
4112 The OVERLAY element is used to overlay images on top of a base
4113 figure. Figure overlays provide for more effective use of caching as
4114 small changes to a figure in a subsequent document incur only the
4115 penalty of downloading the overlays and not the larger base figure,
4116 as the latter is already in the cache. The overlay can be offset
4117 from the top left corner of the base image.
4118
4119 Permitted Attributes
4120
4121 SRC
4122 Specifies the overlay image as a URI. This attribute may appear
4123 together with the MD attribute.
4124
4125 MD
4126 Specifies a message digest or cryptographic checksum for the
4127 associated graphic specified by the SRC attribute. It is used
4128 when you want to be sure that a linked object is indeed the same
4129 one that the author intended, and hasn't been modified in any
4130 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
4131 specifies an MD5 checksum encoded as a base64 character string.
4132 The MD attribute is generally allowed for all elements which
4133 support URI based links.
4134
4135 UNITS
4136 Specifies the choice of units for width and height: units=pixels
4137 (the default) specifies pixels, while units=en specifies en
4138 units (a typographical unit equal to half the point size).
4139
4140 X
4141 The X offset from the top left corner of the base image. X
4142 increases to the right, and is given in pixels or en units
4143 (according to the value of the UNITS attribute).
4144
4145 Y
4146 The Y offset from the top left corner of the base image. Y
4147 increases downwards, and is given in pixels or en units
4148 (according to the value of the UNITS attribute).
4149
4150 WIDTH
4151 Specifies the desired width in pixels or en units (according to
4152 the value of the UNITS attribute). User agents may scale the
4153 figure image to match this width.
4154
4155 HEIGHT
4156 Specifies the desired height in pixels or en units (according to
4157 the value of the UNITS attribute). User agents may scale the
4158 figure image to match this height.
4159
4160
4161 Dave Raggett Page 73
4162 HTML 3.0 28th March 1995
4163
4164 IMAGEMAP
4165 Specifies a URI for processing image clicks and drags.
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218 Dave Raggett Page 74
4219 HTML 3.0 28th March 1995
4220
4221 Captions
4222
4223 Permitted Context: TABLE or FIG
4224 Content Model: %text
4225
4226 The CAPTION element is used to label a table or figure. Use the
4227 align attribute to specify the position of the caption relative to
4228 the table/figure. For example:
4229
4230 <CAPTION ALIGN=LEFT>The Niagara Falls</CAPTION>
4231
4232 --Should we provide separate align and valign attributes for
4233 controlling the horizontal and vertical positioning respectively?--
4234
4235 Permitted Attributes
4236
4237 ID
4238 An SGML identifier used as the target for hypertext links or for
4239 naming particular elements in associated style sheets.
4240 Identifiers are NAME tokens and must be unique within the scope
4241 of the current document.
4242
4243 LANG
4244 This is one of the ISO standard language abbreviations, e.g.
4245 "en.uk" for the variation of English spoken in the United
4246 Kingdom. It can be used by parsers to select language specific
4247 choices for quotation marks, ligatures and hypenation rules etc.
4248 The language attribute is composed from the two letter language
4249 code from ISO 639, optionally followed by a period and a two
4250 letter country code from ISO 3166.
4251
4252 CLASS
4253 This a space separated list of SGML NAME tokens and is used to
4254 subclass tag names. By convention, the class names are
4255 interpreted hierarchically, with the most general class on the
4256 left and the most specific on the right, where classes are
4257 separated by a period. The CLASS attribute is most commonly used
4258 to attach a different style to some element, but it is
4259 recommended that where practical class names should be picked on
4260 the basis of the element's semantics, as this will permit other
4261 uses, such as restricting search through documents by matching
4262 on element class names. The conventions for choosing class names
4263 are outside the scope of this specification.
4264
4265 ALIGN
4266 Positioning of the caption relative to the table or figure it
4267 labels. The permitted values are: TOP, BOTTOM, LEFT or RIGHT.
4268
4269
4270
4271
4272
4273
4274
4275 Dave Raggett Page 75
4276 HTML 3.0 28th March 1995
4277
4278 Credits
4279
4280 Permitted Context: BQ or FIG
4281 Content Model: %text
4282
4283 The CREDIT element is used to name the source of a block quotation
4284 or figure. For example:
4285
4286 <CREDIT>The Writer by Richard Wilbur</CREDIT>
4287
4288 Permitted Attributes for the CREDIT Element
4289
4290 ID
4291 An SGML identifier used as the target for hypertext links or for
4292 naming particular elements in associated style sheets.
4293 Identifiers are NAME tokens and must be unique within the scope
4294 of the current document.
4295
4296 LANG
4297 This is one of the ISO standard language abbreviations, e.g.
4298 "en.uk" for the variation of English spoken in the United
4299 Kingdom. It can be used by parsers to select language specific
4300 choices for quotation marks, ligatures and hypenation rules etc.
4301 The language attribute is composed from the two letter language
4302 code from ISO 639, optionally followed by a period and a two
4303 letter country code from ISO 3166.
4304
4305 CLASS
4306 This a space separated list of SGML NAME tokens and is used to
4307 subclass tag names. By convention, the class names are
4308 interpreted hierarchically, with the most general class on the
4309 left and the most specific on the right, where classes are
4310 separated by a period. The CLASS attribute is most commonly used
4311 to attach a different style to some element, but it is
4312 recommended that where practical class names should be picked on
4313 the basis of the element's semantics, as this will permit other
4314 uses, such as restricting search through documents by matching
4315 on element class names. The conventions for choosing class names
4316 are outside the scope of this specification.
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332 Dave Raggett Page 76
4333 HTML 3.0 28th March 1995
4334
4335 Tables
4336
4337 Permitted Context: %body.content, %flow, %block
4338 Content Model: Optional CAPTION, then one or more table rows (TR)
4339
4340 The HTML table model has been chosen for its simplicity and
4341 flexibility. By default the table is automatically sized according
4342 to the cell contents and the current window size. The COLSPEC
4343 attribute can be used when needed to exert control over column
4344 widths, either by setting explicit widths or by specifying relative
4345 widths. You can also specify the table width explicitly or as a
4346 fraction of the current margins (see WIDTH attribute).
4347
4348 Table start with an optional caption followed one or more rows. Each
4349 row is formed by one or more cells, which are differentiated into
4350 header and data cells. Cells can be merged across rows and columns,
4351 and include attributes assisting rendering to speech and braille, or
4352 for exporting table data into databases. The model provides little
4353 direct support for control over appearence, for example border
4354 styles and margins, as these can be handled via subclassing and
4355 associated style sheets.
4356
4357 Tables can contain a wide range of content, such as headers, lists,
4358 paragraphs, forms, figures, preformatted text and even nested
4359 tables. When the table is flush left or right, subsequent elements
4360 will be flowed around the table if there is sufficient room. This
4361 behaviour is disabled when the --noflow-- attribute is given or the
4362 table align attribute is --center-- (the default), or --justify--.
4363
4364 Example
4365
4366 <TABLE BORDER>
4367 <CAPTION>A test table with merged cells</CAPTION>
4368 <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
4369 <TH ROWSPAN=2>other<BR>category<TH>Misc
4370 <TR><TH>height<TH>weight
4371 <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
4372 <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
4373 </TABLE>
4374
4375 This would be rendered something like:
4376
4377 A test table with merged cells
4378 /--------------------------------------------------\
4379 | | Average | other | Misc |
4380 | |-------------------| category |--------|
4381 | | height | weight | | |
4382 |-----------------------------------------|--------|
4383 | males | 1.9 | 0.003 | | |
4384 |-----------------------------------------|--------|
4385 | females | 1.7 | 0.002 | | |
4386 \--------------------------------------------------/
4387
4388
4389 Dave Raggett Page 77
4390 HTML 3.0 28th March 1995
4391
4392
4393 There are several points to note:
4394
4395 * By default, header cells are centered while data cells are flush
4396 left. This can be overriden by the ALIGN attribute for the cell;
4397 the COLSPEC attribute for the TABLE element; or the ALIGN
4398 attribute on the enclosing row's TR element (from the most
4399 specific to the least).
4400
4401 * Cells may be empty.
4402
4403 * Cells spanning rows contribute to the column count on each of
4404 the spanned rows, but only appear in the markup once (in the
4405 first row spanned).
4406
4407 * If the column count for the table is greater than the number of
4408 cells for a given row (after including cells for spanned rows),
4409 the missing cells are treated as occurring on the right handside
4410 of the table, and rendered as empty cells.
4411
4412 * The row count is determined by the TR elements - any rows
4413 implied by cells spanning rows beyond this should be ignored.
4414
4415 * The user agent should be able to recover from a missing <TR> tag
4416 prior to the first row as the TH and TC elements can only occur
4417 within the TR element.
4418
4419 * It is invalid to have cells overlap, see below for an example.
4420 In such cases, the rendering is implementation dependent.
4421
4422 An example of an invalid table:
4423
4424 <table border>
4425 <tr><tdrowspan=2>1<td>2<td>3<td>4<td>5
4426 <tr><td rowspan=2>6
4427 <tr><td colspan=2>7<td>8
4428 </table>
4429
4430 which looks something like:
4431
4432 /-------------------\
4433 | 1 | 2 | 3 | 4 | 5 |
4434 | |---------------|
4435 | | 6 | | | | The cells labelled 6 and 7 overlap!
4436 |---|...|-----------|
4437 | 7 : | 8 | | |
4438 \-------------------/
4439
4440 Borderless tables are useful for layout purposes as well as their
4441 traditional role for tabular data, for instance with fill-out forms:
4442
4443 name: [John Smith ]
4444 card number: [4619 693523 20851 ]
4445
4446 Dave Raggett Page 78
4447 HTML 3.0 28th March 1995
4448
4449 expires: [03] / [97]
4450 telephone: [212 873 2739 ]
4451
4452 This can be represented as a table with one row and two columns. The
4453 first column is right aligned, while the second is left aligned.
4454 This example could be marked up as:
4455
4456 <table&gt
4457 <tr valign=baseline>
4458 <td align=right>
4459 name:<br>
4460 card number:<br>
4461 expires:<br>
4462 telephone:
4463 <td align=left>
4464 <input name="name" size=18><br>
4465 <input name="cardnum" size=18><br>
4466 <input name="expires-month" size=2> /
4467 <input name="expires-year" size=2><br>
4468 <input name="phone" size=18><br>
4469 </table>
4470
4471
4472 The use of such techniques is one of the motivations for using
4473 nested tables, where borderless tables are used to layout cell
4474 contents for an enclosing table
4475
4476 Hint: You can achieve a similar effect to the above by using decimal
4477 alignment and using the DP attribute to set the alignment character
4478 to a convenient character, for example:
4479
4480 <table>
4481 <tr align=decimal dp=":">
4482 <td>
4483 name: <input name="name" size=18><br>
4484 card number: <input name="cardnum" size=18><br>
4485 expires: <input name="expires-month" size=2> /
4486 <input name="expires-year" size=2><br>
4487 telephone:<input name="phone" size=18><br>
4488 </table>
4489
4490
4491 Each line in the table is then indented so that all the colons are
4492 positioned under one another.
4493
4494 Table Sizing Algorithm
4495
4496 The default sizing algorithm requires two passes through the table
4497 data. In the first pass, word wrapping is disabled, and the user
4498 agent keeps track of the minimum and maximum width of each cell. The
4499 maximum width is given by the widest line. As word wrap has been
4500 disabled, paragraphs are treated as long lines unless broken by <BR>
4501 elements. The minimum width is given by the widest word or image
4502
4503 Dave Raggett Page 79
4504 HTML 3.0 28th March 1995
4505
4506 etc. taking into account leading indents and list bullets etc. In
4507 other words, if you were to format the cell's content in a window of
4508 its own, determine the minimum width you could make the window
4509 before things begin to be clipped.
4510
4511 The minimum and maximum cell widths are then used to determine the
4512 corresponding minimum and maximum widths for the columns. These in
4513 turn, are used to find the minimum and maximum width for the table.
4514 Note that cells can contain nested tables, but this doesn't
4515 complicate the code significantly. The next step is to assign column
4516 widths according to the current window size (more accurately - the
4517 width between the left and right margins).
4518
4519 The table borders and intercell margins need to be included in the
4520 assignment step. There are three cases:
4521
4522 1. The minimum table width is equal to or wider than the available
4523 space. In this case, assign the minimum widths and allow the
4524 user to scroll horizontally. For conversion to braille, it will
4525 be necessary to replace the cells by references to notes
4526 containing their full content. By convention these appear before
4527 the table.
4528
4529 2. The maximum table width fits within the available space. In this
4530 case, set the columns to their maximum widths.
4531
4532 3. The maximum width of the table is greater than the available
4533 space, but the minimum table width is smaller. In this case,
4534 find the difference between the available space and the minimum
4535 table width, lets call it --W--. Lets also call --D-- the
4536 difference between maximum and minimum width of the table.
4537
4538 For each column, let --d-- be the the difference between maximum
4539 and minimum width of that column. Now set the column's width to
4540 the minimum width plus --d-- times --W-- over --D--. This makes
4541 columns with lots of text wider than columns with smaller
4542 amounts.
4543
4544 This assignment step is then repeated for nested tables. In this
4545 case, the width of the enclosing table's cell plays the role of the
4546 current window size in the above description. This process is
4547 repeated recursively for all nested tables.
4548
4549 If the COLSPEC attribute specifies the column widths explicitly, the
4550 user agent can attempt to use these values. If subsequently, one of
4551 the cells overflows its column width, the two pass mechanism may be
4552 invoked to redraw the table with more appropriate widths. If the
4553 attribute specifies relative widths, then the two pass model is
4554 always needed.
4555
4556 The column width assignment algorithm is then modified:
4557
4558 * Explicit widths from the COLSPEC attribute should be used when
4559
4560 Dave Raggett Page 80
4561 HTML 3.0 28th March 1995
4562
4563 given, provided they are greater than the minimum column width,
4564 otherwise the latter should be used.
4565
4566 * For relative widths, the surplus space --W--, as defined above,
4567 is divided up between the columns appropriately, ensuring that
4568 each column is given at least its minimum width. If --W-- is
4569 zero or negative, column widths should be increased over the
4570 minimum width to meet the relative width requirements.
4571
4572 If the table width is specified with the WIDTH attribute, the user
4573 agent attempts to set column widths to match. The WIDTH attribute
4574 should be disregarded if this results in columns having less than
4575 their minimum widths.
4576
4577 Permitted Attributes
4578
4579 ID
4580 An SGML identifier used as the target for hypertext links or for
4581 naming particular elements in associated style sheets.
4582 Identifiers are NAME tokens and must be unique within the scope
4583 of the current document.
4584
4585 LANG
4586 This is one of the ISO standard language abbreviations, e.g.
4587 "en.uk" for the variation of English spoken in the United
4588 Kingdom. It can be used by parsers to select language specific
4589 choices for quotation marks, ligatures and hypenation rules etc.
4590 The language attribute is composed from the two letter language
4591 code from ISO 639, optionally followed by a period and a two
4592 letter country code from ISO 3166.
4593
4594 CLASS
4595 This a space separated list of SGML NAME tokens and is used to
4596 subclass tag names. By convention, the class names are
4597 interpreted hierarchically, with the most general class on the
4598 left and the most specific on the right, where classes are
4599 separated by a period. The CLASS attribute is most commonly used
4600 to attach a different style to some element, but it is
4601 recommended that where practical class names should be picked on
4602 the basis of the element's semantics, as this will permit other
4603 uses, such as restricting search through documents by matching
4604 on element class names. The conventions for choosing class names
4605 are outside the scope of this specification.
4606
4607 CLEAR
4608 When there is a figure or another table in the margin, you
4609 sometimes want to start another table below the figure rather
4610 than alongside it. The CLEAR attribute allows you to move down unconditionally:
4611
4612
4613
4614 clear=left
4615 move down until left margin is clear
4616
4617 Dave Raggett Page 81
4618 HTML 3.0 28th March 1995
4619
4620
4621 clear=right
4622 move down until right margin is clear
4623
4624 clear=all
4625 move down until both margins are clear
4626
4627 Alternatively, you can decide to place the table alongside the
4628 figure just so long as there is enough room. The minimum width
4629 needed is specified as:
4630
4631
4632
4633 clear="40 en"
4634 move down until there is at least 40 en units free
4635
4636 clear="100 pixels"
4637 move down until there is at least 100 pixels free
4638
4639 The style sheet (or browser defaults) may provide default
4640 minimum widths for each class of block-like elements.
4641
4642 NOFLOW
4643 The presence of this attribute disables text flow around the
4644 table. It avoids the need to use the CLEAR or NEEDS attributes
4645 on the following element.
4646
4647 ALIGN
4648 Specifies horizontal alignment of the table (--not-- its contents):
4649
4650
4651
4652 BLEEDLEFT
4653 Flush left with the left (window) border.
4654
4655 LEFT
4656 Flush left with the left text margin.
4657
4658 CENTER
4659 The table is centered between the text margins and text flow
4660 around the table is disabled. This is the default setting
4661 for ALIGN.
4662
4663 RIGHT
4664 Flush right with the right text margin.
4665
4666 BLEEDRIGHT
4667 Flush right with the right (window) border
4668
4669 JUSTIFY
4670 When applicable the table should be sized to fill the space
4671 between the left and right text margins. Text flow around
4672 the table is disabled for align=justify.
4673
4674 Dave Raggett Page 82
4675 HTML 3.0 28th March 1995
4676
4677
4678 UNITS
4679 Specifies the choice of units for the COLSPEC attribute:
4680
4681
4682
4683 units=en
4684 Specifies en units (a typographical unit equalt to half the
4685 point size). This is the default setting and allows user
4686 agents to render the table a row at a time without waiting
4687 until all of the table's data has been received.
4688
4689 units=relative
4690 Used to set the relative width of columns. The user agent
4691 sums the values to determine the proportional width of each
4692 column.
4693
4694 units=pixels
4695 The least useful!
4696
4697 A design issue for user agents is how to handle cases where cell
4698 contents won't fit into the specified column widths. One
4699 approach is to clip the contents to the given column width,
4700 another is to resize the columns to fit the contents regardless
4701 of the COLSPEC attribute (its best to wait until all of the
4702 table's data has been processed before resizing).
4703
4704 COLSPEC
4705 The colspec attribute is a list of column widths and alignment
4706 specifications. The columns are listed from left to right with a
4707 capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
4708 The letter is L for left, C for center, R for right alignment of
4709 cell contents. J is for justification, when feasible, otherwise
4710 this is treated in the same way as L for left alignment. D is
4711 for decimal alignment, see DP attribute.
4712
4713 Capital letters are required to avoid a particularly common
4714 error when a lower case L is confused with a one. Column entries
4715 are delimited by one or more space characters.
4716
4717 The number specifies the width in en's, pixels or as a
4718 fractional value of the table width, as according to the
4719 associated units attribute. This approach is more compact than
4720 used with most SGML table models and chosen to simplify hand
4721 entry. The width attribute allows you to specify the width of
4722 the table in pixels, em units or as a percentage of the space
4723 between the current left and right margins.
4724
4725 DP
4726 This specifies the character to be used for the decimal point
4727 with the COLSPEC attribute, e.g. dp="." (the default) or dp=",".
4728 The default may be altered by the language context, as set by
4729 the LANG attribute on enclosing elements.
4730
4731 Dave Raggett Page 83
4732 HTML 3.0 28th March 1995
4733
4734
4735 WIDTH
4736 This specifies the width of the table according to the UNITS
4737 attribute. If units=relative, the width is taken as a percentage
4738 of the width between the current left and right margins. The
4739 user agent should disregard this attribute if it would result in
4740 columns having less than their minimum widths.
4741
4742 BORDER
4743 This presence of this attribute instructs the user agent to
4744 render borders around tables. For instance: <TABLE BORDER>. The
4745 precise appearence, along with the size of margins around cells,
4746 can be controlled by associated style sheets, or via information
4747 in the STYLE element in the document head. Subclassing tables,
4748 rows and cells is particularly useful in this regard.
4749
4750 NOWRAP
4751 The NOWRAP attribute is used when you don't want the browser to
4752 automatically wrap lines. You can then explicitly specify line
4753 breaks in paragrphs using the BR element.
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788 Dave Raggett Page 84
4789 HTML 3.0 28th March 1995
4790
4791 Table Rows
4792
4793 Permitted Context: TABLE
4794 Content Model: Table Cells (TH or TD)
4795
4796 The TR element acts as a container for a row of table cells defined
4797 with the TH or TD elements. You can set default horizontal and
4798 vertical alignment of cell contents for the row. You also have the
4799 ability to disable word wrap for the row, and thereafter use the
4800 <BR> element to determine line breaks and hence cell widths.
4801
4802 To assist with formatting tables to paged media, authors can
4803 differentiate leading and trailing rows that are to be duplicated
4804 when splitting tables across page boundaries. The recommended
4805 approach is to subclass rows using the CLASS attribute For example:
4806
4807 <TABLE BORDER COLSPEC= --...-->
4808 <TR CLASS=Header> --header cells ...--
4809 <TR CLASS=Body> --body cells ...--
4810 <TR CLASS=Footer> --footer cells ...--
4811 </TABLE>
4812
4813
4814 Paged browsers when splitting a table across a page boundary, can
4815 then insert footer rows at the bottom of the current page and header
4816 rows at the top of the next page, followed by the remaining body
4817 rows, and the footer rows. This is repeated as necessary until all
4818 of the body rows have been rendered. Refinements of this scheme can
4819 be devised by further subclassing the rows together with an
4820 appropriate style sheet.
4821
4822 Permitted Attributes for the TR Element
4823
4824 ID
4825 An SGML identifier used as the target for hypertext links or for
4826 naming particular elements in associated style sheets.
4827 Identifiers are NAME tokens and must be unique within the scope
4828 of the current document.
4829
4830 LANG
4831 This is one of the ISO standard language abbreviations, e.g.
4832 "en.uk" for the variation of English spoken in the United
4833 Kingdom. It can be used by parsers to select language specific
4834 choices for quotation marks, ligatures and hypenation rules etc.
4835 The language attribute is composed from the two letter language
4836 code from ISO 639, optionally followed by a period and a two
4837 letter country code from ISO 3166.
4838
4839 CLASS
4840 This a space separated list of SGML NAME tokens and is used to
4841 subclass tag names. By convention, the class names are
4842 interpreted hierarchically, with the most general class on the
4843 left and the most specific on the right, where classes are
4844
4845 Dave Raggett Page 85
4846 HTML 3.0 28th March 1995
4847
4848 separated by a period. The CLASS attribute is most commonly used
4849 to attach a different style to some element, but it is
4850 recommended that where practical class names should be picked on
4851 the basis of the element's semantics, as this will permit other
4852 uses, such as restricting search through documents by matching
4853 on element class names. The conventions for choosing class names
4854 are outside the scope of this specification.
4855
4856 ALIGN
4857 The ALIGN attribute can be used to explicitly specify the
4858 horizontal alignment of paragraphs within a table row:
4859
4860
4861
4862 align=left
4863 Paragraphs are rendered flush left.
4864
4865 align=center
4866 Paragraphs are centered.
4867
4868 align=right
4869 Paragraphs are rendered flush right.
4870
4871 align=justify
4872 Text lines are justified where practical, otherwise this
4873 gives the same effect as the align=left setting.
4874
4875 align=decimal
4876 Text lines are indented such that the first occurrence of a
4877 decimal point on each line are aligned vertically. If a line
4878 doesn't contain a decimal point, the line is rendered flush
4879 left for data cells and centered for header cells.
4880
4881 Note: By default, header cells are centered while data cells are
4882 flush left. This attribute can be used to alter these defaults
4883 on a row by row basis. If you are specifying column alignments
4884 with the TABLE's COLSPEC attribute, there is no point in also
4885 including an ALIGN attribute with the TR element, as the latter
4886 will be ignored.
4887
4888 DP
4889 This specifies the character to be used for the decimal point
4890 with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
4891 The default may be altered by the language context, as set by
4892 the LANG attribute on enclosing elements.
4893
4894 VALIGN
4895 The VALIGN attribute can be used to explicitly specify the
4896 vertical alignment of material within a table row. It is
4897 overridden by the VALIGN attribute on individual cells:
4898
4899
4900
4901
4902 Dave Raggett Page 86
4903 HTML 3.0 28th March 1995
4904
4905 valign=top
4906 The cell contents appear at the top of each cell (the
4907 default).
4908
4909 valign=middle
4910 Cell contents are centered vertically in each cell.
4911
4912 valign=bottom
4913 The cell contents appear at the bottom of each cell.
4914
4915 valign=baseline
4916 This is used when you want to ensure that all cells in the
4917 row share the same baseline. This constraint only applies to
4918 the first text line for each cell.
4919
4920 NOWRAP
4921 The NOWRAP attribute is used when you don't want the browser to
4922 automatically wrap lines. You can then explicitly specify line
4923 breaks in paragrphs using the BR element.
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959 Dave Raggett Page 87
4960 HTML 3.0 28th March 1995
4961
4962 Table Cells (TH and TD)
4963
4964 Permitted Context: TR
4965 Content Model: %body.content
4966
4967 The TH and TD elements are used for table cells. TH is used for
4968 table header cells while TD is used for table data cells. This
4969 distinction gives user agents a means to render such cells
4970 distinctly, for instance by using a larger or heavier font for
4971 header cells. It is also needed when rendering to speech. The CLASS
4972 attribute can be used to further differentiate cells, for instance
4973 into heads and subheads. This can be used together with style sheets
4974 to control the cell border style, and fill color etc.
4975
4976 The horizontal and vertical alignment of cell contents are
4977 determined by the ALIGN and VALIGN attributes respectively. In their
4978 absence, the alignment will be inherited from the TR element for the
4979 row. The COLSPEC attribute of the enclosing TABLE element provides a
4980 convenient way of specifying the default horizontal alignment for
4981 columns.
4982
4983 The AXIS and AXES attributes can be used when rendering to speech to
4984 provide abbreviated names for each cell's headers. Another
4985 application is when you want to be able to later process table
4986 contents to enter them into a database. Theses attributes are then
4987 used to give database field names. The table's class attribute
4988 should be used to let the software recognise which tables can be
4989 treated in this way.
4990
4991 Note: Disabling word wrap and using the <BR> element in order to
4992 control cell widths is discouraged in favor of using the table
4993 COLSPEC and WIDTH attributes.
4994
4995 Permitted Attributes for the TH/TD Element
4996
4997 ID
4998 An SGML identifier used as the target for hypertext links or for
4999 naming particular elements in associated style sheets.
5000 Identifiers are NAME tokens and must be unique within the scope
5001 of the current document.
5002
5003 LANG
5004 This is one of the ISO standard language abbreviations, e.g.
5005 "en.uk" for the variation of English spoken in the United
5006 Kingdom. It can be used by parsers to select language specific
5007 choices for quotation marks, ligatures and hypenation rules etc.
5008 The language attribute is composed from the two letter language
5009 code from ISO 639, optionally followed by a period and a two
5010 letter country code from ISO 3166.
5011
5012 CLASS
5013 This a space separated list of SGML NAME tokens and is used to
5014 subclass tag names. By convention, the class names are
5015
5016 Dave Raggett Page 88
5017 HTML 3.0 28th March 1995
5018
5019 interpreted hierarchically, with the most general class on the
5020 left and the most specific on the right, where classes are
5021 separated by a period. The CLASS attribute is most commonly used
5022 to attach a different style to some element, but it is
5023 recommended that where practical class names should be picked on
5024 the basis of the element's semantics, as this will permit other
5025 uses, such as restricting search through documents by matching
5026 on element class names. The conventions for choosing class names
5027 are outside the scope of this specification.
5028
5029 COLSPAN
5030 The number of columns spanned by this cell. This allows you to
5031 merge cells across columns. It defaults to 1 (one).
5032
5033 ROWSPAN
5034 The number of rows spanned by this cell. This allows you to
5035 merge cells across rows. It defaults to 1 (one).
5036
5037 ALIGN
5038 The ALIGN attribute can be used to explicitly specify the
5039 horizontal alignment of paragraphs within a table row:
5040
5041
5042
5043 align=left
5044 Paragraphs are rendered flush left. This is the default for
5045 data cells (TD).
5046
5047 align=center
5048 Paragraphs are centered. This is the default for header
5049 cells (TH).
5050
5051 align=right
5052 Paragraphs are rendered flush right.
5053
5054 align=justify
5055 Text lines are justified where practical, otherwise this
5056 gives the same effect as the align=left setting.
5057
5058 align=decimal
5059 Text lines are indented such that the first occurrence of a
5060 decimal point on each line are aligned vertically. If a line
5061 doesn't contain a decimal point, the line is rendered flush
5062 left for data cells and centered for header cells.
5063
5064 Note: In the absence of the ALIGN attribute, the default is
5065 overridden by the presence of an ALIGN attribute on the parent
5066 TR element, or by the COLSPEC attribute on the TABLE element.
5067 The COLSPEC attribute takes precedence over the TR element
5068 though!
5069
5070 DP
5071 This specifies the character to be used for the decimal point
5072
5073 Dave Raggett Page 89
5074 HTML 3.0 28th March 1995
5075
5076 with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
5077 The default may be altered by the language context, as set by
5078 the LANG attribute on enclosing elements.
5079
5080 VALIGN
5081 The VALIGN attribute can be used to explicitly specify the
5082 vertical alignment of material within a table cell:
5083
5084
5085
5086 valign=top
5087 The cell contents appear at the top of each cell (the
5088 default).
5089
5090 valign=middle
5091 Cell contents are centered vertically in each cell.
5092
5093 valign=bottom
5094 The cell contents appear at the bottom of each cell.
5095
5096 valign=baseline
5097 This is used when you want to ensure that all cells in the
5098 row with valign=baseline share the same baseline. This
5099 constraint only applies to the first text line for each
5100 cell.
5101
5102 Note: In the absence of the VALIGN attribute, the default can be
5103 overridden by the presence of a VALIGN attribute on the parent
5104 TR element.
5105
5106 NOWRAP
5107 The NOWRAP attribute is used when you don't want the browser to
5108 automatically wrap lines. You can then explicitly specify line
5109 breaks in paragraphs using the BR element.
5110
5111 AXIS
5112 This defines an abbreviated name for a header cell, which can be
5113 used when rendering to speech. It defaults to the cell's
5114 content.
5115
5116 AXES
5117 This is a comma separated list of axis names which together
5118 identify the row and column headers that pertain to this cell.
5119 It is used when rendering to speech to identify the cell's
5120 position in the table. If missing the user agent can try to
5121 follow up columns and left along rows (right for some languages)
5122 to find the corresponding header cells.
5123
5124 Note: a subheader cell may include both attributes - using AXIS
5125 to name itself and AXES to name the parent header cell. When
5126 data cells refer to header cells with both attributes, the
5127 parent header cells are found by following back the head-subhead
5128 relationships.
5129
5130 Dave Raggett Page 90
5131 HTML 3.0 28th March 1995
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187 Dave Raggett Page 91
5188 HTML 3.0 28th March 1995
5189
5190 HTML Math
5191
5192 Permitted Context: %text
5193 Content Model: %math
5194
5195 The <MATH> element is used to include math expressions in the
5196 current line. HTML math is powerful enough to describe the range of
5197 math expressions you can create in common word processing packages,
5198 as well as being suitable for rendering to speech. When rendering to
5199 fixed pitch text-only media, simple text graphics can be used for
5200 math symbols such as the integration sign, while other symbols can
5201 be rendered using their entity names. The SGML SHORTREF capability
5202 is used to provide abbreviations for hidden brackets, subscripts and
5203 superscripts.
5204
5205 The design of HTML math owes a lot to LaTeX's math mode, which has
5206 been found to be effective for a wide variety of mathematical
5207 typesetting. Where practical, HTML math uses tag names matching
5208 LaTeX commands, e.g. ATOP, CHOOSE and SQRT act in the same way as
5209 their LaTeX namesakes. Of course, SGML and LaTeX have quite
5210 different syntactical conventions. As a result, HTML math uses the
5211 ISO entity names for symbols rather than the TeX names. In LaTeX,
5212 the character command ^ sets the next character as an exponent,
5213 while the character command _ sets it as an index. If the exponent
5214 or index contains more than one character then the group of
5215 characters must be enclosed in curly brackets { }. This syntax is
5216 inappropriate for SGML, so HTML math instead treats _ and ^ as
5217 shortref characters for the SUB and SUP elements which are used for
5218 indices and exponents, respectively.
5219
5220 --I can't find the ISO entity names for the _ and ^ chararacters!--
5221
5222 HTML math has been designed to be both concise and comparatively
5223 easy to read. In practice, formulae will be a little longer than in
5224 LaTeX, but much shorter than with other math proposals for SGML, for
5225 instance EuroMath or ISO 12083. This simplification has been
5226 achieved through the power of the BOX element, which replaces many
5227 elements in other proposals, as well as the simple conventions for
5228 binding the SUB and SUP elements and their use as generic raising
5229 and lowering operators. HTML math differentiates terms e.g. binary
5230 operators, variables, constants, integral signs, delimiters and so
5231 on. This simplifies rendering and reflects the assumptions adopted
5232 by LaTeX. It further allows the same raising and lowering operators
5233 to be used for many different roles according to the term they apply
5234 to. HTML math doesn't provide direct support for multi-line
5235 equations, as this can be effectively handled by combining math with
5236 the TABLE element.
5237
5238 Example - the integral from a to b of f(x) over 1+x
5239
5240 <MATH>&int;_a_^b^{f(x)<over>1+x} dx</MATH>
5241
5242 which can be rendered on a fixed pitch text-only medium as:
5243
5244 Dave Raggett Page 92
5245 HTML 3.0 28th March 1995
5246
5247
5248 b
5249 / f(x)
5250 | ------- dx
5251 / 1 + x
5252 a
5253
5254 The example uses { and } as shortrefs for <BOX> and </BOX>
5255 respectively. This is used for invisible brackets, stretchy
5256 delimiters and integral signs, and placing one thing over another.
5257 The shortref characters "_" and "^" are used for subscripts and
5258 superscripts respectively.
5259
5260 HTML math follows general practice in mathematical typesetting by
5261 rendering functions, numbers and other constants in an upright font,
5262 while variables are rendered in an italic font. You can set
5263 particular terms in a bold face, and for chemical formulae, you can
5264 force the use of an upright font. Limits for symbols like the
5265 integral and summation signs are placed directly above (below) the
5266 symbol or to the immediate right depending on the symbol.
5267
5268 Spacing between constants, variables and operators is determined
5269 automatically. Additional spacing can be inserted with entities such
5270 as &thinsp; &sp; and &quadsp;. White space in the markup is used
5271 only to delimit adjacent variables or constants. You don't need
5272 spaces before or after binary operators or other special symbols, as
5273 these are recognised by the HTML math tokeniser. White space can be
5274 useful, though, for increased legibility while authoring.
5275 --I need to check on the ISO entity names for spacing!--
5276
5277 Math Markup
5278
5279 The following elements are permitted within MATH elements:
5280
5281 BOX
5282 Used for hidden brackets, stretchy delimiters, and placing one
5283 expression over another (e.g. numerators and denominators).
5284
5285 SUB, SUP
5286 Subscripts and superscripts. Also used for limits.
5287
5288 ABOVE
5289 Used to draw an arrow, line or symbol above an expression.
5290
5291 BELOW
5292 Used to draw an arrow, line or symbol below an expression.
5293
5294 VEC, BAR, DOT, DDOT, HAT, TILDE
5295 These are convenience tags for common accents as an alternative
5296 to using ABOVE.
5297
5298 SQRT, ROOT
5299 For square roots and other roots of an expression.
5300
5301 Dave Raggett Page 93
5302 HTML 3.0 28th March 1995
5303
5304
5305 ARRAY
5306 For matrices and other kinds of arrays.
5307
5308 TEXT
5309 Used to include a short piece of text within a math element, and
5310 often combined with SUB or SUP elements.
5311
5312 B, T, BT
5313 These elements are used override the default rendering. B
5314 renders the enclosed expression in an bold face. T designates a
5315 term to be rendered in an upright font, while BT designates a
5316 term to be rendered in a bold upright font. The class attribute
5317 can be used to describe the kind of term, e.g. vector, tensor,
5318 or matrix.
5319
5320 HTML Math Entities
5321
5322 * Functions
5323
5324 * Operators
5325
5326 * Continuation dots
5327
5328 * Greek letters
5329
5330 * Relations
5331
5332 * Accents, arrows and pointers
5333
5334 * Delimiters
5335
5336 * Other symbols.
5337
5338 * Spacing entities.
5339
5340 Rendering HTML Math
5341
5342 The expression is rendered in three steps:
5343
5344 1. The first step recursively parses expressions building up a
5345 matching hierarchy of data structures (with bounding boxes)
5346 corresponding to sequences of nested expressions. The math
5347 tokeniser needs to be able to distinguish constants, variables,
5348 functions, operators, delimiters, and special symbols such as
5349 integrals, which can take limits and may be stretchy.
5350
5351 2. The next step sets the size of the innermost expressions based
5352 on the size of available fonts. If possible subscript and
5353 superscript expressions should be set in a smaller font. The
5354 size and relative positioning of neighboring and enclosing
5355 expressions is then propagated up the hierarchy from the
5356 innermost outwards, as the procedure stack formed in step (1)
5357
5358 Dave Raggett Page 94
5359 HTML 3.0 28th March 1995
5360
5361 unwinds.
5362
5363 3. The final step is to render the hierarchy of expressions to the
5364 output medium. This is now straight forward as all the
5365 positioning and sizes of special symbols and text strings are
5366 now fixed.
5367
5368 Note: In practice, only a limited range of font sizes are suitable,
5369 as a result, deeply nested expressions like continued fractions
5370 can't use ever smaller fonts. This is simply handled by a parameter
5371 to the --ParseExpression-- routine that sets the font size to be
5372 used for that expression. ParseExpression is called recursively for
5373 nested expressions and uses the next smaller font until it bottoms
5374 out with the smallest font available. The size parameter corresponds
5375 to an enumeration of the available font sizes.
5376
5377 Permitted Attributes
5378
5379 ID
5380 An SGML identifier used as the target for hypertext links or for
5381 naming particular elements in associated style sheets.
5382 Identifiers are NAME tokens and must be unique within the scope
5383 of the current document.
5384
5385 CLASS
5386 This a space separated list of SGML NAME tokens and is used to
5387 subclass tag names. By convention, the class names are
5388 interpreted hierarchically, with the most general class on the
5389 left and the most specific on the right, where classes are
5390 separated by a period.
5391
5392 For the MATH element, CLASS can be used to describe the kind of
5393 math expression involved. This can be used to alter the way
5394 formulae are rendered, and to support exporting the expression
5395 to symbolic math software. The class "chem" is useful for
5396 chemical formulae which use an upright font for variables rather
5397 than the default italic font. For example:
5398
5399 <math class=chem> Fe_2_^2+^Cr_2_O_4_</math>
5400
5401 2+
5402 which is rendered as Fe Cr O
5403 2 2 4
5404
5405 Otherwise, the conventions for choosing class names are outside
5406 the scope of this specification.
5407
5408 BOX
5409 The presence of this attribute causes the user agent to draw a
5410 rectangular box around the formulae.
5411
5412
5413
5414
5415 Dave Raggett Page 95
5416 HTML 3.0 28th March 1995
5417
5418 The BOX element
5419
5420 Permitted Context: %math
5421 Content Model: %math?, LEFT?, expression, RIGHT?, %math?
5422 where expression is %math or %math --tag-- %math, see below.
5423
5424 The BOX element is used for a variety of purposes:
5425
5426 * As invisible brackets for disambiguating expressions.
5427
5428 * For placing numerators over denominators, with or without
5429 dividing lines, corresponding to LaTeX's --frac, atop-- and
5430 --choose-- commands.
5431
5432 * For placing delimiters before, and/or after an expression, which
5433 grow to match the height of the expression. This corresponds to
5434 LaTeX's --left-- and --right-- commands.
5435
5436 * For stretchy integral and related signs that grow to match the
5437 height of the integrand. This goes beyond LaTeX and avoids the
5438 need for different symbols for different sizes of integral signs
5439 etc.
5440
5441 The SHORTREF characters { and } are used as abbreviations for the
5442 start and end tags for BOX elements. Use the SGML entities &lcub;
5443 and &rcub; respectively when you need to use these characters
5444 literally.
5445
5446 Short fractions, are best represented using the slash character / as
5447 in <math>(n + m)/2</math> for (n + m)/2. For more complicated
5448 fractions you can use the BOX element with the OVER tag, as in:
5449
5450 1
5451 ----- {1<over>x + y}
5452 x + y
5453
5454 x - y
5455 --------- {x - y<over>1 + {a - b<over>a + b}}
5456 a - b
5457 1 + -----
5458 a + b
5459
5460
5461 Use the ATOP tag when you want to place one thing above another, but
5462 without the dividing line. With the CHOOSE tag, the expressions are
5463 also enclosed within round brackets, for instance:
5464
5465 a - b
5466 {a - b<atop>a + b}
5467 a + b
5468
5469
5470 (n + 1) ( n ) ( n ) {n+1<choose>k}
5471
5472 Dave Raggett Page 96
5473 HTML 3.0 28th March 1995
5474
5475 ( ) = ( ) + ( ) = {n<choose>k}
5476 ( k ) ( k ) (k - 1) + {n<choose>k-1}
5477
5478
5479 The BOX element can be used with the LEFT and RIGHT tags for
5480 delimiters that stretch to match the size of the enclosed
5481 expression. You are free to give only one or both of the delimiters,
5482 and you can use different symbols for the left and right. Left
5483 delimiters should be given before the LEFT tag, while right
5484 delimiters should be given following the RIGHT tag, for instance:
5485
5486 ( 1 + x ) f(x) = {(<left>
5487 f(x) = ( ----- ) 1+x<over> sin x
5488 ( sin x ) <right>)}
5489
5490 For curly brackets you will need to use the &lcub; and &rcub;
5491 entities for { and } respectively. The SIZE attribute can be used to
5492 get oversized delimiters, for instance:
5493
5494 2 | |
5495 omega | | {&omega;^2^<over>c^2^}
5496 ----- |<j| mu |i>| <box size=huge> | <left>
5497 2 | z | &lt;j | &mu;_z_ | i&gt;
5498 c | | <right> | </box>
5499
5500 The full tag name for the BOX element is needed above in order to
5501 specify a value for the SIZE attribute. The BOX element is also
5502 useful for stretching integral signs to match the height of the
5503 integrand. The integral and its limits appear in the position of the
5504 left delimiter for the BOX element. You can also include multiple
5505 integrals, for instance:
5506
5507 inf inf
5508 / / f(x, y) {&int;_0_^&inf;^ &int;_0_^&inf;^<left>
5509 | | --------- dx dy f(x,y)<over>x^2^ + y^2^} dx dy
5510 | | 2 2
5511 / / x + y
5512 0 0
5513
5514 Permitted Attributes for the BOX element
5515
5516 SIZE
5517 This used to obtain oversized delimiters. The permitted values
5518 are --normal-- (the default), --medium--, --large-- and
5519 --huge--.
5520
5521 Note: there are no attributes for the LEFT, RIGHT, OVER, ATOP and
5522 CHOOSE tags.
5523
5524
5525
5526
5527
5528
5529 Dave Raggett Page 97
5530 HTML 3.0 28th March 1995
5531
5532 SUB and SUP
5533
5534 Permitted Context: %math
5535 Content Model: %math
5536
5537 The SUB and SUP elements are used for subscripts and superscripts
5538 respectively, and are preferably rendered in reduced font. For
5539 integral and related signs the SUB and SUP elements are used for the
5540 lower and upper limits, for instance:
5541
5542 &sum;<sub>n = 0</sub><sup>&inf;</sup>
5543
5544 which renders to (within limits of ascii art):
5545
5546 infinity
5547 ---
5548 \
5549 /
5550 ---
5551 n = 0
5552
5553 The SGML SHORTREF characters "_" and "^" can be used as
5554 abbreviations. The above example is abbreviated to:
5555
5556 &sum;_n = 0_^&inf;^
5557
5558 --Need to give entity names for when you need the _ and ^
5559 characters!--
5560
5561 You have to revert to the full form of the tags when superscripting
5562 a superscript or subscripting a subscript, as in:
5563
5564 X<sub>a<sub>i</sub></sub> which is X
5565 a
5566 i
5567
5568
5569 You can also use superscripts to place expressions or words over
5570 binary operators, for instance in the following chemical reaction:
5571
5572 4LiH + AlCl_3_ &rarr;^ether^ LiAlH_4_ + 3LiCl
5573
5574 which renders as:
5575
5576 ether
5577 4LiH + AlCl ------> LiAlH + 3LiCl
5578 3 4
5579
5580 The superscript is centered over the operator, and when feasible the
5581 operator stretched to match the width of the superscript.
5582
5583 Note: Dont' use the shortrefs for SUB and SUP in normal text - they
5584 only work within MATH elements!
5585
5586 Dave Raggett Page 98
5587 HTML 3.0 28th March 1995
5588
5589
5590 Placement of subscripts and superscripts
5591
5592 Some times you will want to place superscripts to the left of a
5593 term. The simplest way to do this is with shortrefs, e.g.
5594
5595 _4_^9^Be + _2^4^He &rarr; _6_^12^C + _0_^1^n
5596
5597 which renders to (within limits of ascii art):
5598
5599 9 4 12 1
5600 Be + He --> C + n
5601 4 2 6 0
5602
5603 Subscripts and superscripts immediately before a term are rendered
5604 to the left of the term, where as subscripts and superscripts
5605 immediately after a term are rendered on its right. Opportunities
5606 for confusion arise when scripts for a preceding term are followed
5607 by scripts for another term. The simplest solution is to use
5608 whitespace to disambiguate the situation. For instance:
5609
5610 b b
5611 X_a_ ^b^Y is X Y while X_a_^b^Y is X Y
5612 a a
5613 a b
5614 but both X^a^ ^b^Y and X^a^^b^Y are X Y
5615
5616
5617 The last case is disambiguated because the two superscript elements
5618 can't both apply to the preceding term, as they can't both be drawn
5619 in the same position. The same would apply to two subscript
5620 elements. If in any doubt, its wise to insert a space to make your
5621 meaning clear! If you prefer, you can use curly brackets, as in:
5622 {X_a_}{^b^Y}. These brackets are shortrefs for the BOX element and
5623 don't appear when the expression is finally rendered.
5624
5625 The same rules apply when you use the full form of the SUB and SUP
5626 elements. The ALIGN attribute can be used to override the default
5627 position to render the script, which is normally taken from whether
5628 the script element precedes or follows the term to which it applies.
5629 For instance:
5630
5631 X<sub align=right>a</sub> <sup align=left>b</sup>Y
5632 X<sub align=right>a</sub>Y<sup align=left>b</sup>
5633
5634 b
5635 both render to X Y
5636 a
5637
5638 while X<sub align=right>a</sub><sup align=left>b</sup>Y
5639
5640 b
5641 renders to X Y
5642
5643 Dave Raggett Page 99
5644 HTML 3.0 28th March 1995
5645
5646 a
5647
5648
5649 In the last case, the SUP element act as a prefix superscript to X
5650 as there isn't a delimiter between it and the preceding SUB element.
5651 If in doubt, you should use brackets or whitespace to disambiguate
5652 the binding.
5653
5654 Permitted Attributes
5655
5656 The ID, LANG and CLASS attributes for SUB and SUP are not used
5657 within MATH elements.
5658
5659 ALIGN
5660 Subscripts and superscripts are normally placed to the right of
5661 the term to which they apply, while limits are normally placed
5662 above (or below) the symbol they apply to. The ALIGN attribute
5663 can be used to override the default positioning.
5664
5665
5666
5667 align=left
5668 The script (or limit) is placed to the left of the term.
5669
5670 align=center
5671 The script is centered on the term and placed below it for
5672 subscripts, and above it (for superscipts).
5673
5674 align=right
5675 The scripts are placed to the right of the term.
5676
5677 For example, you can force limits on integral signs to appear on
5678 the right rather than centered on the integral sign:
5679
5680 &int;<sub align=right>0</sub><sup align=right>&inf;</sup>
5681
5682 Note: The ALIGN attribute should be ignored by user agents for
5683 the SUB and SUP elements except within MATH elements.
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700 Dave Raggett Page 100
5701 HTML 3.0 28th March 1995
5702
5703 The ABOVE element
5704
5705 Permitted Context: %math
5706 Content Model: %math
5707
5708 The <ABOVE> element is used to draw a line, arrow, curly bracket, or
5709 accent --above-- the expression enclosed by this element. Stretchy
5710 symbols should be stretched to match the width of the enclosed
5711 expression. For example:
5712
5713 _____
5714 <above>X + Y</above> giving X + Y
5715
5716 =====
5717 <above sym=equals>X + Y</above> giving X + Y
5718
5719
5720 You can also place an expression centered above the line or arrow
5721 with the SUP element or its shortref form, for example:
5722
5723 <above sym=cub>n(n - 1)(n - 2)&dots;(n - m + 1)</above>
5724 <sup><text>total of m factors</text></sup>
5725
5726
5727 which would be rendered as (within limits of ascii art):
5728
5729 total of m factors
5730 /---------------^-------------\
5731 n(n - 1)(n - 2) ... (n - m + 1)
5732
5733 Permitted Attributes
5734
5735 SYM
5736 An entity name for a symbol, e.g. --cub-- for a curly bracket
5737 (brace). Defaults to --line--. The other choices are: --larr--
5738 (left arrow), --rarr-- (right arrow), --hat-- and --tilde--.
5739
5740 Note: Don't include the & prefix, so <above sym="&rarr;"> is wrong!
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757 Dave Raggett Page 101
5758 HTML 3.0 28th March 1995
5759
5760 The BELOW element
5761
5762 Permitted Context: %math
5763 Content Model: %math
5764
5765 The <BELOW> element is used to draw a line, arrow, or curly bracket
5766 --below-- the expression enclosed by this element. For example:
5767
5768
5769 <below>X + Y</below> giving X + Y
5770 _____
5771
5772 <below sym=rarr>X + Y</below> giving X + Y
5773 ---->
5774
5775
5776 You can also place an expression centered below the line or arrow
5777 with the SUP element or its shortref form, for example:
5778
5779 <above sym=cub>n(n - 1)(n - 2)&dots;(n - m + 1)</above>
5780 <sup><text>total of m factors</text></sup>
5781
5782
5783 which would be rendered as (within limits of ascii art):
5784
5785 n(n - 1)(n - 2) ... (n - m + 1)
5786 \---------------v-------------/
5787 total of m factors
5788
5789 --I can't find the ISO entity names for under/over curly brackets!--
5790
5791 Permitted Attributes
5792
5793 SYM
5794 An entity name for a stretchy symbol, e.g. --cub-- for a curly
5795 bracket (brace). Defaults to --line--. The other choices are:
5796 --larr-- (left arrow), --rarr-- (right arrow), --hat-- and
5797 --tilde--.
5798
5799 Note: Don't include the & prefix, so <below sym="&rarr;"> is wrong!
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814 Dave Raggett Page 102
5815 HTML 3.0 28th March 1995
5816
5817 VEC, BAR, DOT, DDOT, HAT and TILDE
5818
5819 Permitted Context: %math
5820 Content Model: %math
5821
5822 These elements place an accent above the term enclosed by the
5823 element. --VEC-- draws a right arrow above the term; --BAR-- draws a
5824 line; --DOT-- and --DDOT-- draw a single and double dot
5825 respectively; --HAT-- and --TILDE-- draw the corresponding character
5826 above the term, for example:
5827
5828 ^
5829 <HAT>X</HAT> giving X
5830
5831 ~
5832 <TILDE>X</TILDE> giving X
5833
5834 Note: there are no attributes for these elements.
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871 Dave Raggett Page 103
5872 HTML 3.0 28th March 1995
5873
5874 SQRT
5875
5876 Permitted Context: %math
5877 Content Model: %math
5878
5879 This draws a square root sign around the contents, for example the
5880 square root of 1 + x is expressed as:
5881
5882 <SQRT>1 + x</SQRT>
5883
5884 and possibly rendered as: --(this is the best I can do with ascii
5885 art!)--
5886
5887 ----------
5888 / 1 + x
5889 v
5890
5891 The SQRT element has no attributes.
5892
5893 ROOT
5894
5895 Permitted Context: %math
5896 Content Model: %math, OF, %math
5897
5898 This allows you to specify arbitary roots of an expression. The
5899 radix comes first, and is separated from the radicand by the <OF>
5900 tag. For example the cube root of 1 + x is expressed as:
5901
5902 <ROOT>3<OF>1 + x</ROOT>
5903
5904 and possibly rendered as:
5905
5906 --------
5907 3/ 1 + x
5908 v
5909
5910 The ROOT element has no attributes.
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928 Dave Raggett Page 104
5929 HTML 3.0 28th March 1995
5930
5931 The ARRAY element
5932
5933 Permitted Context: %math
5934 Content Model: one or more ROWs, each containing one or more ITEMs
5935
5936 The <ARRAY> element is used for LaTeX-like arrays. It can only be
5937 used within MATH elements. For example:
5938
5939 a a ... a
5940 11 12 1n
5941
5942 : : ... :
5943
5944 a a ... a
5945 n1 n2 nn
5946
5947
5948 This is represented in HTML math by:
5949
5950 <array>
5951 <row><item>a_11_<item>a_12_<item>&cdots;<item>a_1n_
5952 <row><item>&vdots;<item>&vdots;<item>&ddots;<item>&vdots;
5953 <row><item>a_n1_<item>a_n2_<item>&cdots;<item>a_nn_
5954 </array>
5955
5956
5957 You can specify the "+", "-" or "=" characters as column separators:
5958
5959 a x + a x + ... + a x = b
5960 11 1 12 2 1n n 1
5961
5962 a x + a x + ... + a x = b
5963 22 1 22 2 2n n 2
5964
5965 .............................................
5966
5967 a x + a x + ... + a x = b
5968 n2 1 n2 2 nn n n
5969
5970 This is represented by:
5971
5972 <array coldef="C+C+C+C=C">
5973 <row><item>a_11_x_1_<item>a_12_x_2_<item>&cdots;<item>a_1n_x_n_<item>b_1_
5974 <row><item>a_21_x_1_<item>a_22_x_2_<item>&cdots;<item>a_2n_x_n_<item>b_2_
5975 <row><item colspan=5>&dotfill;
5976 <row><item>a_n1_x_1_<item>a_n2_x_2_<item>&cdots;<item>a_nn_x_n_<item>b_n_
5977 </array>
5978
5979 The number of rows and colums is left to the parser to work out for
5980 itself by counting the number of ROW elements, and the number of
5981 ITEMs on each row. This is slightly complicated by the possibility
5982 that some items may span several rows and columns. If a row has less
5983 than the expected number of items after accounting for merged items,
5984
5985 Dave Raggett Page 105
5986 HTML 3.0 28th March 1995
5987
5988 the missing items are assumed to be on the righthandside, and should
5989 be treated as empty. The row count should be based on the ROW
5990 elements, and additional rows, implied by items spanning rows beyond
5991 the end of the array, should be ignored.
5992
5993 Permitted Attributes
5994
5995 ALIGN
5996 By default, arrays are vertically positioned so that preceding
5997 and following expressions are aligned with the mid point of the
5998 array. The ALIGN attribute can take on of the following values:
5999
6000
6001
6002 TOP
6003 The top row of the array is aligned with the same baseline
6004 as the preceding or following expression.
6005
6006 MIDDLE
6007 The middle row of the array is aligned with the same
6008 baseline as the preceding or following expression. This is
6009 the default. If there are an even number of rows, the
6010 midpoint of the array is used instead.
6011
6012 BOTTOM
6013 The bottom row of the array is aligned with the same
6014 baseline as the preceding or following expression.
6015
6016 COLDEF
6017 By default the columns are centered. This attribute can be used
6018 to specify the horizontal alignment for each column with
6019 character string formed by one capital letter per column, with L
6020 for left, C for center and R to right alignment, e.g. "LLCR" for
6021 a 4 column table.
6022
6023 The COLDEF attribute can also be used to place a "+", "-" or "="
6024 between the columns, e.g. coldef="C+C+C+C=C". Whitespace within
6025 the COLDEF attribute is ignored.
6026
6027 LDELIM
6028 An entity or character for the left delimiter, e.g. ldelim="["
6029 for a left square bracket or ldelim="|". The default is no
6030 delimiter.
6031
6032 RDELIM
6033 An entity name or character for the right delimiter, e.g.
6034 rdelim="}" or rdelim="|". The default is no delimiter.
6035
6036 LABELS
6037 The presence of this attribute has the same effect as TeX's
6038 bordermatrix command. The first row and column are separated
6039 from the rest of the array.
6040
6041
6042 Dave Raggett Page 106
6043 HTML 3.0 28th March 1995
6044
6045 Example of a labelled array:
6046
6047 i j k
6048
6049 a (X X X )
6050 ( 11 21 31) <array ldelim="(" rdelim=")" labels>
6051 ( ) <row><item>dummy<item>i<item>j<item>k
6052 b (X X X ) <row><item>a<item>X_11_<item>X_21_<item>X_31_
6053 ( 12 22 32) <row><item>b<item>X_12_<item>X_22_<item>X_32_
6054 ( ) <row><item>c<item>X_31_<item>X_32_<item>X_33_
6055 c (X X X ) </array>
6056 ( 13 23 33)
6057
6058
6059 Note: An item is always required for the first item of the first
6060 row, although its contents will be ignored for labelled arrays. This
6061 has been emphasized above with the value "dummy".
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099 Dave Raggett Page 107
6100 HTML 3.0 28th March 1995
6101
6102 The ROW element
6103
6104 Permitted Context: ARRAY
6105 Content Model: one or more ITEMs
6106
6107 The <ROW> element is used for rows of items within the ARRAY
6108 element. It has no permitted attributes. The end tag </ROW> can
6109 always be left out.
6110
6111 The ITEM element
6112
6113 Permitted Context: ROW
6114 Content Model: %math
6115
6116 The <ITEM> element is used for items within a row of the ARRAY
6117 element. The end tag </ITEM> can always be left out.
6118
6119 Permitted Attributes for ITEM
6120
6121 ALIGN
6122 By default expressions in items are centered horizontally. This
6123 can be altered by the COLDEF attribute on the parent ARRAY
6124 element, and overridden on a per item basis with the ALIGN
6125 attribute. The permitted values are: LEFT, CENTER or RIGHT.
6126
6127 COLSPAN
6128 This can be used to provide a single item which spans several
6129 columns. The attribute value is a positive integer and defaults
6130 to one.
6131
6132 ROWSPAN
6133 This can be used to provide a single item which spans several
6134 rows. The attribute value is a positive integer and defaults to
6135 one. It can be used together with the COLSPAN attribute.
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156 Dave Raggett Page 108
6157 HTML 3.0 28th March 1995
6158
6159 TEXT
6160
6161 Permitted Context: %math
6162 Content Model: PCDATA
6163
6164 This element is used to include a few words of text within MATH
6165 elements. It avoids the need to separate words with spacing entities
6166 such as &sp; that are otherwise needed to provide adequate spacing.
6167 The text is rendered literally, and may include entities for
6168 accented characters etc.
6169
6170 There are no attributes for this element.
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213 Dave Raggett Page 109
6214 HTML 3.0 28th March 1995
6215
6216 B, T and BT
6217
6218 Permitted Context: %math
6219 Content Model: %math
6220
6221 These elements are used, when feasible, to alter the default fonts
6222 used to render variables and constants. Numbers, operators,
6223 delimiters and other symbols are unaffected. B renders its contents
6224 in bold, while T renders its contents in an upright font rather than
6225 an italic font. These can be nested to combine the effects, for a
6226 bold upright font. The BT element allows you to write
6227 <BT>--term--</BT> rather from having to write:
6228 <B><T>--term--</T></B>.
6229
6230 Permitted Attributes
6231
6232 CLASS
6233 This a space separated list of SGML NAME tokens and is used to
6234 subclass tag names. By convention, the class names are
6235 interpreted hierarchically, with the most general class on the
6236 left and the most specific on the right, where classes are
6237 separated by a period.
6238
6239 By using CLASS to describe the term as a --vector--, --tensor--
6240 or --matrix-- etc. user agents can do a better job when
6241 rendering to non-visual media. Further conventions for term
6242 class names are not part of this specification.
6243
6244 Note: Don't use B for chemical formulae. These should be handled by
6245 subclassing the MATH element with class=chem, for instance: <MATH
6246 CLASS=CHEM>
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270 Dave Raggett Page 110
6271 HTML 3.0 28th March 1995
6272
6273 Horizontal Rules
6274
6275 Permitted Context: %Body.Content
6276 Content Model: Empty!
6277
6278 The <HR> element is used for horizontal rules that act as dividers
6279 between sections. The SRC attribute can be used to designate a
6280 custom graphic, otherwise subclass HR with the CLASS attribute and
6281 specify the appropriate rendering with an associated style sheet.
6282
6283 Permitted Attributes
6284
6285 ID
6286 An SGML identifier used as the target for hypertext links or for
6287 naming particular elements in associated style sheets.
6288 Identifiers are NAME tokens and must be unique within the scope
6289 of the current document.
6290
6291 CLASS
6292 This a space separated list of SGML NAME tokens and is used to
6293 subclass tag names. For instance, <H2 CLASS=Section> defines a
6294 level 2 header that acts as a section header. By convention, the
6295 class names are interpreted hierarchically, with the most
6296 general class on the left and the most specific on the right,
6297 where classes are separated by a period. The CLASS attribute is
6298 most commonly used to attach a different style to some element,
6299 but it is recommended that where practical class names should be
6300 picked on the basis of the element's semantics, as this will
6301 permit other uses, such as restricting search through documents
6302 by matching on element class names. The conventions for choosing
6303 class names are outside the scope of this specification.
6304
6305 CLEAR
6306 This attribute is common to all block-like elements. When text
6307 flows around a figure or table in the margin, you sometimes want
6308 to position the rule below the figure rather than alongside it.
6309 The CLEAR attribute allows you to move down unconditionally:
6310
6311
6312
6313 clear=left
6314 move down until left margin is clear
6315
6316 clear=right
6317 move down until right margin is clear
6318
6319 clear=all
6320 move down until both margins are clear
6321
6322 Alternatively, you can decide to place the rule alongside the
6323 figure just so long as there is enough room. The minimum width
6324 needed is specified as:
6325
6326
6327 Dave Raggett Page 111
6328 HTML 3.0 28th March 1995
6329
6330
6331
6332 clear="40 en"
6333 move down until there is at least 40 en units free
6334
6335 clear="100 pixels"
6336 move down until there is at least 100 pixels free
6337
6338 The style sheet (or browser defaults) may provide default
6339 minimum widths for each class of block-like elements.
6340
6341 SRC
6342 Specifies a custom image for the rule. The image is specified as
6343 a URI. This attribute may appear together with the MD attribute.
6344
6345 MD
6346 Specifies a message digest or cryptographic checksum for the
6347 associated graphic specified by the SRC attribute. It is used
6348 when you want to be sure that a linked object is indeed the same
6349 one that the author intended, and hasn't been modified in any
6350 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
6351 specifies an MD5 checksum encoded as a base64 character string.
6352 The MD attribute is generally allowed for all elements which
6353 support URI based links.
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384 Dave Raggett Page 112
6385 HTML 3.0 28th March 1995
6386
6387 Preformatted Text (PRE)
6388
6389 Permitted Context: %Body.Content, %flow, %block
6390 Content Model: subset of %text (see DTD for details)
6391
6392 Preformatted text between the start and end PRE tag is rendered
6393 using a fixed with font, in addition whitespace characters are
6394 treated literally. The spacing and line breaks are rendered
6395 directly, unlike other elements, for which repeated whitespace
6396 chararacters are collapsed to a single space character and line
6397 breaks introduced automatically.
6398
6399 * Line breaks within the text are rendered as a move to the
6400 beginning of the next line. The exceptions are line breaks
6401 immediately following the starting PRE tag or immediately
6402 preceding the ending PRE tag, which should be ignored.
6403
6404 * The <P> tag should be avoided, but for robustness, user agents
6405 are recommended to treat these tags as line breaks.
6406
6407 * Anchor elements, and character highlighting elements may be
6408 used.
6409
6410 * FORM elements may be included, and the fixed width font
6411 exploited to control layout (the TAB or TABLE elements give
6412 similar control for normal text though).
6413
6414 * Block-like elements such as headers, lists, FIG and TABLES
6415 should be avoided.
6416
6417 * The horizontal tab character (encoded in US ASCII and ISO 8859-1
6418 as decimal 9) should be interpreted as the smallest nonzero
6419 number of spaces which will leave the number of characters so
6420 far on the line as a multiple of 8. Its use is deprecated!
6421
6422 For example, a verse from Shelley (To a Skylark):
6423
6424 <PRE>
6425 Higher still and higher
6426 From the earth thou springest
6427 Like a cloud of fire;
6428 The blue deep thou wingest,
6429 And singing still dost soar, and soaring ever singest.</PRE>
6430
6431 which is rendered as:
6432
6433 Higher still and higher
6434 From the earth thou springest
6435 Like a cloud of fire;
6436 The blue deep thou wingest,
6437 And singing still dost soar, and soaring ever singest.
6438
6439 Permitted Attributes
6440
6441 Dave Raggett Page 113
6442 HTML 3.0 28th March 1995
6443
6444
6445 ID
6446 An SGML identifier used as the target for hypertext links or for
6447 naming particular elements in associated style sheets.
6448 Identifiers are NAME tokens and must be unique within the scope
6449 of the current document.
6450
6451 LANG
6452 This is one of the ISO standard language abbreviations, e.g.
6453 "en.uk" for the variation of English spoken in the United
6454 Kingdom. It can be used by parsers to select language specific
6455 choices for quotation marks, ligatures and hypenation rules etc.
6456 The language attribute is composed from the two letter language
6457 code from ISO 639, optionally followed by a period and a two
6458 letter country code from ISO 3166.
6459
6460 CLASS
6461 This a space separated list of SGML NAME tokens and is used to
6462 subclass tag names. By convention, the class names are
6463 interpreted hierarchically, with the most general class on the
6464 left and the most specific on the right, where classes are
6465 separated by a period. The CLASS attribute is most commonly used
6466 to attach a different style to some element, but it is
6467 recommended that where practical class names should be picked on
6468 the basis of the element's semantics, as this will permit other
6469 uses, such as restricting search through documents by matching
6470 on element class names. The conventions for choosing class names
6471 are outside the scope of this specification.
6472
6473 CLEAR
6474 This attribute is common to all block-like elements. When text
6475 flows around a figure or table in the margin, you sometimes want
6476 to start the preformatted text below the figure rather than
6477 alongside it. The CLEAR attribute allows you to move down unconditionally:
6478
6479
6480
6481 clear=left
6482 move down until left margin is clear
6483
6484 clear=right
6485 move down until right margin is clear
6486
6487 clear=all
6488 move down until both margins are clear
6489
6490 Alternatively, you can decide to place the element alongside the
6491 figure just so long as there is enough room. The minimum width
6492 needed is specified as:
6493
6494
6495
6496 clear="40 en"
6497
6498 Dave Raggett Page 114
6499 HTML 3.0 28th March 1995
6500
6501 move down until there is at least 40 en units free
6502
6503 clear="100 pixels"
6504 move down until there is at least 100 pixels free
6505
6506 The style sheet (or browser defaults) may provide default
6507 minimum widths for each class of block-like elements.
6508
6509 WIDTH
6510 This is optionally used to specify a width as a number of
6511 characters to try and display within the current window width.
6512 The user agent can exploit this suggestion to select an
6513 appropriate font size. The default is a width of 80 characters.
6514 Where the WIDTH attribute is supported, widths of 40, 80 and 132
6515 characters should be presented optimally, with other widths
6516 being rounded up.
6517
6518 --Can't we get rid of this obsolete nonsense? How many browsers
6519 support the WIDTH attribute anyway? --
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555 Dave Raggett Page 115
6556 HTML 3.0 28th March 1995
6557
6558 Admonishments
6559
6560 Permitted Context: %body.content, %flow, %block
6561 Content Model: %body.content
6562
6563 The NOTE element is designed for use as admonishments such as notes,
6564 cautions or warnings, as commonly used in technical documentation.
6565 The CLASS attribute specifies the type of the element and is
6566 typically associated with different graphics such as a road traffic
6567 warning sign. The graphic can be customized with the SRC attribute.
6568
6569 Example:
6570
6571 <NOTE CLASS=WARNING>Please check with the local weather
6572 service before starting your climb. The mountain weather
6573 is subject to rapid deterioration. It is essential to
6574 carry a good map and compass.</NOTE>
6575
6576 The class names: NOTE, CAUTION and WARNING are recommended for
6577 standard admonishments. In the absence of the CLASS attribute, a
6578 NOTE element is typically rendered indented, without an accompanying
6579 graphic.
6580
6581 Permitted Attributes
6582
6583 ID
6584 An SGML identifier used as the target for hypertext links or for
6585 naming particular elements in associated style sheets.
6586 Identifiers are NAME tokens and must be unique within the scope
6587 of the current document.
6588
6589 LANG
6590 This is one of the ISO standard language abbreviations, e.g.
6591 "en.uk" for the variation of English spoken in the United
6592 Kingdom. It can be used by parsers to select language specific
6593 choices for quotation marks, ligatures and hypenation rules etc.
6594 The language attribute is composed from the two letter language
6595 code from ISO 639, optionally followed by a period and a two
6596 letter country code from ISO 3166.
6597
6598 CLASS
6599 This a space separated list of SGML NAME tokens and is used to
6600 subclass tag names. By convention, the class names are
6601 interpreted hierarchically, with the most general class on the
6602 left and the most specific on the right, where classes are
6603 separated by a period. The CLASS attribute is most commonly used
6604 to attach a different style to some element, but it is
6605 recommended that where practical class names should be picked on
6606 the basis of the element's semantics, as this will permit other
6607 uses, such as restricting search through documents by matching
6608 on element class names. Apart from the values suggested above,
6609 the conventions for choosing class names are outside the scope
6610 of this specification.
6611
6612 Dave Raggett Page 116
6613 HTML 3.0 28th March 1995
6614
6615
6616 CLEAR
6617 This attribute is common to all block-like elements. When text
6618 flows around a figure or table in the margin, you sometimes want
6619 to start the note below the figure rather than alongside it. The
6620 CLEAR attribute allows you to move down unconditionally:
6621
6622
6623
6624 clear=left
6625 move down until left margin is clear
6626
6627 clear=right
6628 move down until right margin is clear
6629
6630 clear=all
6631 move down until both margins are clear
6632
6633 Alternatively, you can decide to place the note alongside the
6634 figure just so long as there is enough room. The minimum width
6635 needed is specified as:
6636
6637
6638
6639 clear="40 en"
6640 move down until there is at least 40 en units free
6641
6642 clear="100 pixels"
6643 move down until there is at least 100 pixels free
6644
6645 The style sheet (or browser defaults) may provide default
6646 minimum widths for each class of block-like elements.
6647
6648 SRC
6649 Specifies an image to appear preceding the note. The image is
6650 specified as a URI. This attribute may appear together with the
6651 MD attribute.
6652
6653 MD
6654 Specifies a message digest or cryptographic checksum for the
6655 associated graphic specified by the SRC attribute. It is used
6656 when you want to be sure that a linked object is indeed the same
6657 one that the author intended, and hasn't been modified in any
6658 way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
6659 specifies an MD5 checksum encoded as a base64 character string.
6660 The MD attribute is generally allowed for all elements which
6661 support URI based links.
6662
6663
6664
6665
6666
6667
6668
6669 Dave Raggett Page 117
6670 HTML 3.0 28th March 1995
6671
6672 Footnotes
6673
6674 Permitted Context: %body.content, %flow, %block
6675 Content Model: %body.content
6676
6677 The FN element is designed for footnotes, and when practical,
6678 rendered as pop-up notes.
6679
6680 Example:
6681
6682 <DL>
6683 <DT>Hamlet: <DD>You should not have believed me, for virtue cannot
6684 so <a href="#fn1">inoculate</a> our old stock but we shall <a
6685 href="#fn2">relish of it</a>. I loved you not.
6686
6687 <DT>Ophelia: <DD> I was the more deceived.
6688
6689 <DT>Hamlet: <DD>Get thee to a nunnery. Why wouldst thou be a breeder
6690 of sinners? I am myself <a href="#fn2">indifferent honest</a> ...
6691 </DL>
6692
6693 <fn id=fn1><i>inoculate</i> - graft</fn>
6694 <fn id=fn2><i>relish of it</i> - smack of it (our old sinful nature)</fn>
6695 <fn id=fn3><i>indifferent honest</i> - moderately virtuous</fn>
6696
6697 Note: If %html.recommended is active, the HTML 3.0 DTD expects you
6698 to enclose plain text in a block element such as <P> e.g.
6699
6700 <FN ID=fn23><P>A simple footnote</FN>
6701
6702 Permitted Attributes
6703
6704 ID
6705 An SGML identifier used as the target for hypertext links or for
6706 naming particular elements in associated style sheets.
6707 Identifiers are NAME tokens and must be unique within the scope
6708 of the current document.
6709
6710 LANG
6711 This is one of the ISO standard language abbreviations, e.g.
6712 "en.uk" for the variation of English spoken in the United
6713 Kingdom. It can be used by parsers to select language specific
6714 choices for quotation marks, ligatures and hypenation rules etc.
6715 The language attribute is composed from the two letter language
6716 code from ISO 639, optionally followed by a period and a two
6717 letter country code from ISO 3166.
6718
6719 CLASS
6720 This a space separated list of SGML NAME tokens and is used to
6721 subclass tag names. By convention, the class names are
6722 interpreted hierarchically, with the most general class on the
6723 left and the most specific on the right, where classes are
6724 separated by a period. The CLASS attribute is most commonly used
6725
6726 Dave Raggett Page 118
6727 HTML 3.0 28th March 1995
6728
6729 to attach a different style to some element, but it is
6730 recommended that where practical class names should be picked on
6731 the basis of the element's semantics, as this will permit other
6732 uses, such as restricting search through documents by matching
6733 on element class names. The conventions for choosing class names
6734 are outside the scope of this specification.
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783 Dave Raggett Page 119
6784 HTML 3.0 28th March 1995
6785
6786 Block Quotes
6787
6788 Permitted Context: %Body.Content, %flow, %block
6789 Content Model: %Body.Content followed by optional CREDIT element
6790
6791 The BQ element is used for extended quotations. The tag name has
6792 been abbreviated from HTML 2.0's BLOCKQUOTE to the more convenient
6793 BQ, and the content model extended to allow the source of the
6794 quotation to be credited.
6795
6796 Example:
6797
6798 <BQ>
6799 <P>But now I shall shortly proffer him the strength and the
6800 courage of the Geats in combat. He who has the right to it shall
6801 go once more to the mead-drinking with confident heart, after
6802 the morning light of another day, the sun clothed in ethereal
6803 radiance, shines from the south upon the children of men.
6804 <CREDIT>Beowulf replying to Unferth, from the Anglo-Saxon poem
6805 "Beowolf", Cotton Vitellus A xv manuscript</CREDIT>
6806 </BQ>
6807
6808 Note: If %html.recommended is active, the HTML 3.0 DTD expects you
6809 to enclose plain text in a block element such as <P>
6810
6811 Permitted Attributes
6812
6813 ID
6814 An SGML identifier used as the target for hypertext links or for
6815 naming particular elements in associated style sheets.
6816 Identifiers are NAME tokens and must be unique within the scope
6817 of the current document.
6818
6819 LANG
6820 This is one of the ISO standard language abbreviations, e.g.
6821 "en.uk" for the variation of English spoken in the United
6822 Kingdom. It can be used by parsers to select language specific
6823 choices for quotation marks, ligatures and hypenation rules etc.
6824 The language attribute is composed from the two letter language
6825 code from ISO 639, optionally followed by a period and a two
6826 letter country code from ISO 3166.
6827
6828 CLASS
6829 This a space separated list of SGML NAME tokens and is used to
6830 subclass tag names. By convention, the class names are
6831 interpreted hierarchically, with the most general class on the
6832 left and the most specific on the right, where classes are
6833 separated by a period. The CLASS attribute is most commonly used
6834 to attach a different style to some element, but it is
6835 recommended that where practical class names should be picked on
6836 the basis of the element's semantics, as this will permit other
6837 uses, such as restricting search through documents by matching
6838 on element class names. The conventions for choosing class names
6839
6840 Dave Raggett Page 120
6841 HTML 3.0 28th March 1995
6842
6843 are outside the scope of this specification.
6844
6845 CLEAR
6846 This attribute is common to all block-like elements. When text
6847 flows around a figure or table in the margin, you sometimes want
6848 to start the block quote below the figure rather than alongside
6849 it. The CLEAR attribute allows you to move down unconditionally:
6850
6851
6852
6853 clear=left
6854 move down until left margin is clear
6855
6856 clear=right
6857 move down until right margin is clear
6858
6859 clear=all
6860 move down until both margins are clear
6861
6862 Alternatively, you can decide to place the quote alongside the
6863 figure just so long as there is enough room. The minimum width
6864 needed is specified as:
6865
6866
6867
6868 clear="40 en"
6869 move down until there is at least 40 en units free
6870
6871 clear="100 pixels"
6872 move down until there is at least 100 pixels free
6873
6874 The style sheet (or browser defaults) may provide default
6875 minimum widths for each class of block-like elements.
6876
6877 NOWRAP
6878 The NOWRAP attribute is used when you don't want the browser to
6879 automatically wrap lines. You can then explicitly specify line
6880 breaks using the BR element.
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897 Dave Raggett Page 121
6898 HTML 3.0 28th March 1995
6899
6900 The ADDRESS element
6901
6902 Permitted Context: %Body.Content
6903 Content Model: P or %text
6904
6905 The ADDRESS element specifies such information as address, signature
6906 and authorship for the current document, and typically placed at the
6907 top or bottom of the document. When used with %text, the element
6908 acts similar to a paragraph with breaks before and after.
6909
6910 Example:
6911
6912 <ADDRESS>
6913 Newsletter editor<BR>
6914 J.R. Brown<BR>
6915 8723 Buena Vista, Smallville, CT 01234&t;BR>
6916 Tel: +1 (123) 456 7890
6917 </ADDRESS>
6918
6919 Permitted Attributes
6920
6921 ID
6922 An SGML identifier used as the target for hypertext links or for
6923 naming particular elements in associated style sheets.
6924 Identifiers are NAME tokens and must be unique within the scope
6925 of the current document.
6926
6927 LANG
6928 This is one of the ISO standard language abbreviations, e.g.
6929 "en.uk" for the variation of English spoken in the United
6930 Kingdom. It can be used by parsers to select language specific
6931 choices for quotation marks, ligatures and hypenation rules etc.
6932 The language attribute is composed from the two letter language
6933 code from ISO 639, optionally followed by a period and a two
6934 letter country code from ISO 3166.
6935
6936 CLASS
6937 This a space separated list of SGML NAME tokens and is used to
6938 subclass tag names. By convention, the class names are
6939 interpreted hierarchically, with the most general class on the
6940 left and the most specific on the right, where classes are
6941 separated by a period. The CLASS attribute is most commonly used
6942 to attach a different style to some element, but it is
6943 recommended that where practical class names should be picked on
6944 the basis of the element's semantics, as this will permit other
6945 uses, such as restricting search through documents by matching
6946 on element class names. The conventions for choosing class names
6947 are outside the scope of this specification.
6948
6949 CLEAR
6950 This attribute is common to all block-like elements. When text
6951 flows around a figure or table in the margin, you sometimes want
6952 to start the address element below the figure rather than
6953
6954 Dave Raggett Page 122
6955 HTML 3.0 28th March 1995
6956
6957 alongside it. The CLEAR attribute allows you to move down unconditionally:
6958
6959
6960
6961 clear=left
6962 move down until left margin is clear
6963
6964 clear=right
6965 move down until right margin is clear
6966
6967 clear=all
6968 move down until both margins are clear
6969
6970 Alternatively, you can decide to place the address alongside the
6971 figure just so long as there is enough room. The minimum width
6972 needed is specified as:
6973
6974
6975
6976 clear="40 en"
6977 move down until there is at least 40 en units free
6978
6979 clear="100 pixels"
6980 move down until there is at least 100 pixels free
6981
6982 The style sheet (or browser defaults) may provide default
6983 minimum widths for each class of block-like elements.
6984
6985 NOWRAP
6986 The NOWRAP attribute is used when you don't want the browser to
6987 automatically wrap lines. You can then explicitly specify line
6988 breaks using the BR element.
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011 Dave Raggett Page 123
7012 HTML 3.0 28th March 1995
7013
7014 The FORM element
7015
7016 Permitted Context: %Body.Content
7017 Content Model: %Body.Content --plus-- INPUT, TEXTAREA, and SELECT
7018 Note you are not allowed to nest FORM elements!
7019
7020 HTML fill-out forms can be used for questionaires, hotel
7021 reservations, order forms, data entry and a wide variety of other
7022 applications. The form is specified as part of an HTML document. The
7023 user fills in the form and then --submits-- it. The user agent then
7024 sends the form's contents as designated by the FORM element.
7025 Typically, this is to an HTTP server, but you can also email form
7026 contents for asynchronous processing.
7027
7028 Forms are created by placing input fields within paragraphs,
7029 preformatted text, lists and tables. This gives considerable
7030 flexibility in designing the layout of forms.
7031
7032 HTML 3.0 supports the following kinds of fields:
7033
7034 * Simple text fields
7035
7036 * Multi-line text fields
7037
7038 * Radio buttons
7039
7040 * Checkboxes
7041
7042 * Range controls (sliders, or knobs)
7043
7044 * Single/multiple choice menus
7045
7046 * Scribble on image
7047
7048 * File widgets for attaching files to forms.
7049
7050 * Submit buttons for sending form contents
7051
7052 * Reset buttons for resetting fields to their initial values
7053
7054 * Hidden fields for book keeping information
7055
7056 It is expected that future revisions to HTML will add support for
7057 audio fields, multi-row entry of database tables, and extending
7058 multi-line text fields to support a range of other data types, in
7059 addition to plain text. Client-side scripts will provide the means
7060 to constrain field values and to add new field types.
7061
7062 Example of a form
7063
7064 This fictitious example is a questionnaire. It uses the INPUT
7065 element for simple text fields, radio buttons, checkboxes, and the
7066 submit and reset buttons. The TEXTAREA field is used for a
7067
7068 Dave Raggett Page 124
7069 HTML 3.0 28th March 1995
7070
7071 multi-line text entry field. The form fields are laid out with
7072 several paragraph elements and an unordered list. Notice the use of
7073 the NAME attribute to name each field:
7074
7075
7076 <TITLE>Sample Questionaire</TITLE>
7077 <H1>Sample Questionaire</H1>
7078
7079 <P>Please fill out this questionaire:
7080
7081 <FORM METHOD=post ACTION="http://www.hal.com/sample">
7082 <P>Your name: <input name="name" size="48">
7083 <P><input name="male" type=radio> Male
7084 <P><input name="female" type=radio>Female
7085 Number in family: <input name="family" type=int>
7086
7087 <P>Cities in which you maintain a residence:
7088
7089 <UL PLAIN>
7090 <LI><input name="city" type=checkbox value="kent"> Kent
7091 <LI><input name="city" type=checkbox value="miami"> Miami
7092 <LI>Others <textarea name="other" cols=48 rows=4></textarea>
7093 </UL>
7094
7095 <P>Nickname: <INPUT NAME="nickname" size ="42">
7096
7097 <P>Thank you for responding to this questionaire.
7098 <P><INPUT TYPE=SUBMIT> <INPUT TYPE=RESET>
7099 </FORM>
7100
7101
7102 Every form must be enclosed within a FORM element. There can be
7103 several forms in a single document, but the FORM element can't be
7104 nested. The browser is responsible for handling the input focus,
7105 i.e. which field will currently get keyboard input. Many platforms
7106 have existing conventions for forms, for example, using Tab and
7107 Shift-Tab to move the keyboard focus forwards and backwards between
7108 fields, and using the Enter (aka Return) key to submit the form.
7109
7110 This standard defines and requires support for the HTTP access
7111 protocol only. Under any protocol, the submitted contents of the
7112 form logically consist of a list of name/value pairs where the names
7113 are given by the NAME attributes of the various fields in the FORM.
7114 Each field will normally be given a distinct name. Several radio
7115 buttons can share the same name, as this is how you specify that
7116 they belong to the same control group - at any time, only one button
7117 in the group can be selected.
7118
7119 Note: The contents list of name/value pairs excludes unselected
7120 radio buttons and checkboxes. In general, any field with a null
7121 value can be omitted from the contents list.
7122
7123 Client-side scripts and fill-out forms
7124
7125 Dave Raggett Page 125
7126 HTML 3.0 28th March 1995
7127
7128
7129 HTML 3.0 doesn't provide direct support for constraining the values
7130 entered into text fields, or for derived fields whose values are
7131 calculated from the values of other fields. Rather than extending
7132 the markup to support these features, HTML 3.0 provides a means for
7133 associating the form with a script. Support for scripts is not
7134 required, however, and the HTML 3.0 specification doesn't cover the
7135 scripting languages or the details of their interface with the user
7136 agent
7137
7138 The SCRIPT attribute of the FORM element specifies the script via a
7139 URI. The user agent down-loads the script and interprets it locally.
7140 Scripts handle a variety of messages for individual fields and the
7141 form as a whole. These messages correspond to events such as:
7142
7143 * Enter/Leave Form (for initialization and clean up)
7144
7145 * When a field gains or loses the input focus
7146
7147 * Mouse clicks and drags over a field
7148
7149 * Keyboard events
7150
7151 Scripts can examine and set properties of fields. They can also
7152 examine a small set of standard properties of the user agent, for
7153 instance the user's name, the time of day, the type of user agent,
7154 and so on.
7155
7156 Scripts can't do anything that might jeopardize the user or the host
7157 machine. Scripts can't send messages over the network, or read or
7158 write files. The library calls that are allowed are restricted to a
7159 very small and well defined set. These precautions are necessary for
7160 untrusted scripts. It is envisaged that script interpreters will
7161 offer a much wider application programming interface to trusted
7162 scripts, as determined on the basis of a digital signature by a
7163 trusted third party.
7164
7165 Permitted Attributes for FORM
7166
7167 ACTION
7168 The ACTION attribute is a URL specifying the location to which
7169 the contents of the form is submitted to elicit a response. If
7170 the ACTION is missing, the URL for the document itself is
7171 assumed. The way data is submitted varies with the access
7172 protocol of the URL, and with the values of the METHOD and
7173 ENCTYPE attributes.
7174
7175 METHOD
7176 This specifies variations in the protocol used to send the form
7177 contents. It is currently restricted to GET (the default) or
7178 POST. The attribute was introduced to inform user agents which
7179 HTTP methods the server supports.
7180
7181
7182 Dave Raggett Page 126
7183 HTML 3.0 28th March 1995
7184
7185 ENCTYPE
7186 This attribute specifies the MIME content type to be used to
7187 encode the form contents. It defaults to the string:
7188 "application/x-www-form-urlencoded"
7189
7190 SCRIPT
7191 This can be used to give a URI for a script. The scripting
7192 language and the interface with the user agent is not part of
7193 the HTML 3.0 specification.
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239 Dave Raggett Page 127
7240 HTML 3.0 28th March 1995
7241
7242 The INPUT fields
7243
7244 Permitted Context: %Body.Content
7245 Content Model: --Empty!--
7246
7247 The INPUT element is used for a wide variety of different kinds of
7248 entry fields within HTML fill-out forms. The TYPE attribute
7249 determines the type of field.
7250
7251 Single-line text fields --(type=text)--
7252
7253 These are used for entering short text strings, like peoples names,
7254 numbers and dates. The visible width of the field in characters can
7255 be set with the SIZE attribute. When using a variable pitch font,
7256 the SIZE attribute sets the width in en units (half the point size).
7257 The user should be able to enter more than this, with the contents
7258 of the field scrolling horizontally as needed. The MAXLENGTH
7259 attribute can be used to specify the maximum number of characters
7260 permitted for the string.
7261
7262 If the TYPE attribute is missing, the INPUT element is assumed to be
7263 a single-line text field. The NAME attribute is used to identify the
7264 field when the form's contents are converted to the name/value list.
7265 The VALUE field can be used to initialize the text string. Character
7266 entities can be used include accented characters in this string.
7267
7268 Note: Use the TEXTAREA element for multi-line text entry fields.
7269
7270 Password fields --(type=password)--
7271
7272 This is the same as single-line text fields except that each
7273 character typed is echoed by a shadow character, e.g. an asterisk or
7274 the space character. The user can see how many characters that have
7275 been typed but not what was typed.
7276
7277 Checkbox fields --(type=checkbox)--
7278
7279 A checkbox field has two states: selected and unselected.Its
7280 name/value pair only appear in the submitted data when selected.
7281 Checkboxes are used for boolean attributes. They can also be used
7282 for attributes which can take multiple values at the same time. This
7283 is represented by a checkbox for each optional value, with the same
7284 name for each of the checkboxes. Unselected checkboxes don't appear
7285 in the submitted data. Both NAME and VALUE are required for
7286 checkboxes. To initialize the checkbox to its selected state,
7287 include the CHECKED attribute. Checkboxes provide an alternative to
7288 using the SELECT element for multiple-choice menus.
7289
7290 Radio Buttons --(type=radio)--
7291
7292 Suitable for attributes which can take a single value from a set of
7293 alternatives. All radio buttons in the same group should be given
7294 the same NAME. Only the selected radio button in the group generates
7295
7296 Dave Raggett Page 128
7297 HTML 3.0 28th March 1995
7298
7299 a name/value pair in the submitted data. Both NAME and VALUE are
7300 required for radio buttons. To initialize the radio button to its
7301 selected state, include the CHECKED attribute. Radio buttons offer
7302 an alternative to using the SELECT element for single choice menus.
7303
7304 Range fields --(type=range)--
7305
7306 These allow the user to pick a numeric value in between a lower and
7307 an upper bound. The range is specified with the MIN and MAX
7308 attributes, as in:
7309
7310 <input name=rating type=range min=1 max=10>
7311
7312 If either the lower or upper bound is a real number, then the range
7313 is real valued, otherwise it is restricted to integer values only.
7314 The VALUE attribute can be used to initialize the range field. It an
7315 error for the value to lie outside the specified range. The default
7316 value is midway between the lower and upper limits.
7317
7318 Scribble on Image --(type=scribble)--
7319
7320 These fields allow the user to scribble with a pointing device (such
7321 as a mouse or pen) on top of a predefined image. The image is
7322 specified as a URI with the SRC attribute. If the user agent can't
7323 display images, or can't provide a means for users to scribble on
7324 the image, then the field should be treated as a text field. The
7325 VALUE attribute can be used to initialize the text field for these
7326 users. It is ignored when the user agent provides scribble on image
7327 support.
7328
7329 File Attachments --(type=file)--
7330
7331 This allows users to attach one or more files to be submitted with
7332 the form's contents. The ACCEPT attribute can be used to specify a
7333 comma separated list of MIME content types. These are used to
7334 restrict the kinds of files that can be attached to the form. For
7335 instance:
7336
7337 <input name=pictures type=file accept="image/*">
7338
7339 This example restricts files to match "image/*", i.e. to registered
7340 MIME image types. For windows based user agents, it is suggested
7341 that file fields display the name of the last file attached, with
7342 the ability to open a file dialog box to view the complete list of
7343 files attached so far. The accept attribute then acts to specify the
7344 filter on the list of candidate files.
7345
7346 Hidden fields --(type=hidden)--
7347
7348 No field is presented to the user, but the content of the field is
7349 sent with the submitted form. This value may be used to transmit
7350 state information about client/server interaction, for instance a
7351 transaction identifier. These fields are needed because HTTP servers
7352
7353 Dave Raggett Page 129
7354 HTML 3.0 28th March 1995
7355
7356 don't preserve state information from one request to the next.
7357
7358 Submit buttons --(type=submit)--
7359
7360 These are buttons that when pressed submit the form's data. You can
7361 use the VALUE attribute to provide a non-editable label to be
7362 displayed on the button. The default label is application-specific.
7363 A graphic can be specified for the submit button using the SRC
7364 attribute.
7365
7366 The submit button normally makes no contribution to the submitted
7367 data. The exception is when the field includes a NAME attribute, in
7368 which case, the name and value attributes are included with the
7369 submitted data. This can be used to distinguish which submit button
7370 the user pressed.
7371
7372 Image fields --(type=image)--
7373
7374 These act like submit buttons but include the location where the
7375 user clicked on the image. The image is specified with the SRC
7376 attribute.
7377
7378 --Should we phase these out, in favor of using SUBMIT? For this, we
7379 would need to ensure that the submit button included the location
7380 clicked when a graphic was specified with SRC.--
7381
7382 Reset buttons --(type=reset)--
7383
7384 When a reset button is pressed, the form's fields are reset to their
7385 specified initial values. The label to be displayed on the button
7386 may be specified just as for the SUBMIT button. Likewise, the SRC
7387 attribute can be used to specify a graphic.
7388
7389 ------------------------------------------------------------------------------
7390 Permitted Attributes for the INPUT element
7391
7392 ID
7393 An SGML identifier used as the target for hypertext links or for
7394 naming particular elements in associated style sheets.
7395 Identifiers are NAME tokens and must be unique within the scope
7396 of the current document.
7397
7398 LANG
7399 This is one of the ISO standard language abbreviations, e.g.
7400 "en.uk" for the variation of English spoken in the United
7401 Kingdom. It can be used by parsers to select language specific
7402 choices for quotation marks, ligatures and hypenation rules etc.
7403 The language attribute is composed from the two letter language
7404 code from ISO 639, optionally followed by a period and a two
7405 letter country code from ISO 3166.
7406
7407 CLASS
7408 This a space separated list of SGML NAME tokens and is used to
7409
7410 Dave Raggett Page 130
7411 HTML 3.0 28th March 1995
7412
7413 subclass tag names. By convention, the class names are
7414 interpreted hierarchically, with the most general class on the
7415 left and the most specific on the right, where classes are
7416 separated by a period. The CLASS attribute is most commonly used
7417 to attach a different style to some element, but it is
7418 recommended that where practical class names should be picked on
7419 the basis of the element's semantics, as this will permit other
7420 uses, such as restricting search through documents by matching
7421 on element class names. The conventions for choosing class names
7422 are outside the scope of this specification.
7423
7424 TYPE
7425 Defines the type of the field as one of: TEXT, PASSWORD,
7426 CHECKBOX, RADIO, RANGE, FILE, SCRIBBLE, HIDDEN, SUBMIT, IMAGE or
7427 RESET. It defaults to TEXT. The attribute value is an SGML name
7428 token and and as such is case insensitive.
7429
7430 NAME
7431 This provides a character string used to name the field when
7432 submitting the form's data. Several fields may share the same
7433 name, for instance a group of radio buttons or checkboxes. The
7434 name is case insensitive.
7435
7436 VALUE
7437 This is a character string or number which is used to initialize
7438 text, range and hidden fields.
7439
7440 DISABLED
7441 When present, the field should be rendered as normal, but can't
7442 be modified by the user. Where practical the rendering should
7443 provide a cue that the field is disabled e.g. by graying out the
7444 text, changing the color of the background or similar.
7445
7446 ERROR
7447 This attribute specifies an error message explaining why the
7448 field's current value is incorrect. When this attribute is
7449 missing, the field can be assumed to be ok. User agents are
7450 recommended to provide a cue to indicate that the field is in
7451 error.
7452
7453 CHECKED
7454 The presence of this attribute indicates that a radio button or
7455 checbox should be initialized to its selected state.
7456
7457 SIZE
7458 This specifies the visible width of a text or password field.
7459 For fixed pitch fonts, the size attribute specifies the maximum
7460 number of characters visible, while for variable pitch fonts,
7461 the attribute specifies the width in en units (half the point
7462 size).
7463
7464 MAXLENGTH
7465 Specifies the maximum number of characters permitted for text
7466
7467 Dave Raggett Page 131
7468 HTML 3.0 28th March 1995
7469
7470 and password fields.
7471
7472 MIN
7473 This is an integer or real number and specifies the lower bound
7474 for a range field.
7475
7476 MAX
7477 This is an integer or real number and specifies the upper bound
7478 for a range field.
7479
7480 ACCEPT
7481 A comma separated list of MIME content types for use in
7482 restricting the types of files that can be attached to a form
7483 with a file field.
7484
7485 SRC (Source)
7486 The SRC attribute specifies the URI for an image for use as the
7487 background of a SCRIBBLE, IMAGE, SUBMIT or RESET field. Its
7488 syntax is the same as that of the HREF attribute of the <A> tag.
7489
7490 MD
7491 Specifies a message digest or cryptographic checksum for the
7492 associated image specified by the SRC attribute. It is used when
7493 you want to be sure that the image is indeed the same one that
7494 the author intended, and hasn't been modified in any way. For
7495 instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which specifies
7496 an MD5 checksum encoded as a base64 character string. The MD
7497 attribute is generally allowed for all elements which support
7498 URI based links.
7499
7500 ALIGN
7501 This attribute only applies to fields with background images,
7502 i.e. SCRIBBLE, IMAGE, SUBMIT or RESET fields. It is intended to
7503 provide the same positional control as for the IMG element. The
7504 ALIGN attribute takes the values TOP or MIDDLE or BOTTOM,
7505 defining whether the top or middle or bottom of the field should
7506 be aligned with the baseline for the text line in which the
7507 INPUT element appears.
7508
7509 With ALIGN=LEFT, the field will float down and over to the
7510 current left margin, and subsequent text will wrap around the
7511 right hand side of the field. Likewise for ALIGN=RIGHT, the
7512 field aligns with the current right margin and, and text wraps
7513 around the left.
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524 Dave Raggett Page 132
7525 HTML 3.0 28th March 1995
7526
7527 TEXTAREA
7528
7529 Permitted Context: %Body.Content
7530 Content Model: PCDATA (i.e. text and entities)
7531
7532 TEXTAREA
7533
7534 To let users enter more than one line of text, use the TEXTAREA
7535 element. For example:
7536
7537 <TEXTAREA NAME="address" ROWS=64 COLS=6>
7538 HaL Computer Systems
7539 1315 Dell Avenue
7540 Campbell, California 95008
7541 </TEXTAREA>
7542
7543
7544 The text up to the end tag is used to initialize the field's value.
7545 The initialization text can contain SGML entities, e.g. for accented
7546 characters, but is otherwise treated as literal text. This end tag
7547 is always required even if the field is initially blank. When
7548 submitting a form, the line terminators are implementation
7549 dependent. Servers should be capable of recognizing a CR immediately
7550 followed by an LF, or separate CRs and LFs as all signifying the
7551 ends of lines. User agents should tolerate the same range of line
7552 terminators within the initialization text.
7553
7554 In a typical rendering, the ROWS and COLS attributes determine the
7555 visible dimension of the field in characters. The field is rendered
7556 in a fixed-width font. User agents should allow text to grow beyond
7557 these limits by scrolling as needed. The user agent is recommended
7558 to wrap words as they are entered, to fit within the textarea field.
7559 It is further recommended that a means is provided for users to turn
7560 this feature off and on.
7561
7562 Note: In the initial design for forms, multi-line text fields were
7563 supported by the INPUT element with TYPE=TEXT. Unfortunately, this
7564 causes problems for fields with long text values as SGML limits the
7565 length of attribute literals. The HTML 2.0 DTD allows for up to 1024
7566 characters (the SGML default is only 240 characters).
7567
7568 Permitted Attributes
7569
7570 ID
7571 An SGML identifier used as the target for hypertext links or for
7572 naming particular elements in associated style sheets.
7573 Identifiers are NAME tokens and must be unique within the scope
7574 of the current document.
7575
7576 LANG
7577 This is one of the ISO standard language abbreviations, e.g.
7578 "en.uk" for the variation of English spoken in the United
7579 Kingdom. It can be used by parsers to select language specific
7580
7581 Dave Raggett Page 133
7582 HTML 3.0 28th March 1995
7583
7584 choices for quotation marks, ligatures and hypenation rules etc.
7585 The language attribute is composed from the two letter language
7586 code from ISO 639, optionally followed by a period and a two
7587 letter country code from ISO 3166.
7588
7589 CLASS
7590 This a space separated list of SGML NAME tokens and is used to
7591 subclass tag names. By convention, the class names are
7592 interpreted hierarchically, with the most general class on the
7593 left and the most specific on the right, where classes are
7594 separated by a period. The CLASS attribute is most commonly used
7595 to attach a different style to some element, but it is
7596 recommended that where practical class names should be picked on
7597 the basis of the element's semantics, as this will permit other
7598 uses, such as restricting search through documents by matching
7599 on element class names. The conventions for choosing class names
7600 are outside the scope of this specification.
7601
7602 NAME
7603 The formal name of the field which is used in the form's
7604 contents list.
7605
7606 ROWS
7607 This gives the visible number of text lines shown by the field.
7608 User agents should allow text to grow beyond these limits by
7609 scrolling as needed.
7610
7611 COLS
7612 The visible number of characters across the field. User agents
7613 should allow text to grow beyond these limits by scrolling as
7614 needed.
7615
7616 DISABLED
7617 When present, the field should be rendered as normal, but can't
7618 be modified by the user. Where practical the rendering should
7619 provide a cue that the field is disabled e.g. by graying out the
7620 text, changing the color of the background or similar.
7621
7622 ERROR
7623 This attribute specifies an error message explaining why the
7624 field's current value is incorrect. When this attribute is
7625 missing, the field can be assumed to be ok. User agents are
7626 recommended to provide a cue to indicate that the field is in
7627 error.
7628
7629 ALIGN
7630 Take values TOP or MIDDLE or BOTTOM, defining whether the top or
7631 middle or bottom row of the field should be aligned with the
7632 baseline for the text line in which the TEXTAREA element
7633 appears. The default is align=top.
7634
7635 With ALIGN=LEFT, the field will float down and over to the
7636 current left margin, and subsequent text will wrap around the
7637
7638 Dave Raggett Page 134
7639 HTML 3.0 28th March 1995
7640
7641 right hand side of the field. Likewise for ALIGN=RIGHT, the
7642 field aligns with the current right margin and, and text wraps
7643 around the left.
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695 Dave Raggett Page 135
7696 HTML 3.0 28th March 1995
7697
7698 The SELECT element
7699
7700 Permitted Context: %Body.Content --but-- must be within FORM
7701 Content Model: one ore more OPTION elements
7702
7703 The SELECT element is used for single and multiple choice menus. It
7704 is generally rendered as a drop-down or pop-up menu, and offers a
7705 more compact alternative to using radio buttons for single choice
7706 menus, or checkboxes for multiple choice menus.
7707
7708 Example:
7709
7710 <SELECT NAME="flavor">
7711 <OPTION>Vanilla
7712 <OPTION>Strawberry
7713 <OPTION>Rum and Raisin
7714 <OPTION>Peach and Orange
7715 </SELECT>
7716
7717
7718 This is a single choice menu. When you want a multiple choice menu,
7719 you need to include the MULTIPLE attribute with the SELECT element,
7720 e.g. <SELECT MULTIPLE NAME="flavor">.
7721
7722 The NAME attribute is used when creating the name/value list
7723 describing the form's contents. A name/value pair is contributed for
7724 each selected option. The value is taken from the OPTION's VALUE
7725 attribute, and defaults to the content of the OPTION when the VALUE
7726 attribute is missing.
7727
7728 For single choice menus, if no option is initially marked as
7729 selected, then the first item listed is selected. This is
7730 inappropriate for multiple choice menus, though.
7731
7732 Graphical Menus
7733
7734 HTML 3.0 extends the SELECT element to support graphical menus. This
7735 is allows you to specify an image for the SELECT element, and
7736 hotzones for each of the OPTION elements. In this way the same menu
7737 can be rendered as a conventional text-based menu for non-graphical
7738 user agents and a graphical menu for graphical user agents.
7739
7740 The image is specified in the same way as for IMG elements. This
7741 means you can specify suggested values for the width and height. You
7742 can also float the image to the left or right margins and flow other
7743 elements around it. The hotzones for OPTION elements are specified
7744 using the SHAPE attribute in the same way as for anchor elements.
7745
7746 Permitted Attributes
7747
7748 ID
7749 An SGML identifier used as the target for hypertext links or for
7750 naming particular elements in associated style sheets.
7751
7752 Dave Raggett Page 136
7753 HTML 3.0 28th March 1995
7754
7755 Identifiers are NAME tokens and must be unique within the scope
7756 of the current document.
7757
7758 LANG
7759 This is one of the ISO standard language abbreviations, e.g.
7760 "en.uk" for the variation of English spoken in the United
7761 Kingdom. It can be used by parsers to select language specific
7762 choices for quotation marks, ligatures and hypenation rules etc.
7763 The language attribute is composed from the two letter language
7764 code from ISO 639, optionally followed by a period and a two
7765 letter country code from ISO 3166.
7766
7767 CLASS
7768 This a space separated list of SGML NAME tokens and is used to
7769 subclass tag names. By convention, the class names are
7770 interpreted hierarchically, with the most general class on the
7771 left and the most specific on the right, where classes are
7772 separated by a period. The CLASS attribute is most commonly used
7773 to attach a different style to some element, but it is
7774 recommended that where practical class names should be picked on
7775 the basis of the element's semantics, as this will permit other
7776 uses, such as restricting search through documents by matching
7777 on element class names. The conventions for choosing class names
7778 are outside the scope of this specification.
7779
7780 NAME
7781 The formal name of the menu which is used in the form's contents
7782 list.
7783
7784 MULTIPLE
7785 The presence of this attribute denotes that the SELECT element
7786 defines a multiple choice menu. In its absence, the element
7787 defines a single choice menu.
7788
7789 DISABLED
7790 When present, the menu should be rendered as normal, but can't
7791 be modified by the user. Where practical the rendering should
7792 provide a cue that the menu is disabled e.g. by graying out the
7793 text, changing the color of the background or similar.
7794
7795 ERROR
7796 This attribute specifies an error message explaining why the
7797 menu's current selections are incorrect. Further error messages
7798 can be attached to individual options. When this attribute is
7799 missing, the menu can be assumed to be ok. User agents are
7800 recommended to provide a cue to indicate that the menu is in
7801 error.
7802
7803 SRC (Source)
7804 The SRC attribute is used for graphical menus to specify the URI
7805 for the image. Its syntax is the same as that of the HREF
7806 attribute of the <A> tag.
7807
7808
7809 Dave Raggett Page 137
7810 HTML 3.0 28th March 1995
7811
7812 MD
7813 Specifies a message digest or cryptographic checksum for the
7814 associated image specified by the SRC attribute. It is used when
7815 you want to be sure that the image is indeed the same one that
7816 the author intended, and hasn't been modified in any way. For
7817 instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which specifies
7818 an MD5 checksum encoded as a base64 character string. The MD
7819 attribute is generally allowed for all elements which support
7820 URI based links.
7821
7822 WIDTH
7823 Optional suggested width for the image. By default, this is
7824 given in pixels.
7825
7826 HEIGHT
7827 Optional suggested height for the image. By default, this is
7828 given in pixels.
7829
7830 UNITS
7831 This optional attribute specifies the units for the width and
7832 height attributes. It is one of: units=pixels (the default) or
7833 units=em (the width of the letter "m") which scales with the
7834 font size.
7835
7836 ALIGN
7837 Take values TOP or MIDDLE or BOTTOM, defining whether the top or
7838 middle or bottom of the graphic should be aligned with the
7839 baseline for the text line in which the IMG element appears.
7840
7841 With ALIGN=LEFT, the graphic will float down and over to the
7842 current left margin, and subsequent text will wrap around the
7843 right hand side of the graphic. Likewise for ALIGN=RIGHT, the
7844 graphic aligns with the current right margin and, and text wraps
7845 around the left.
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866 Dave Raggett Page 138
7867 HTML 3.0 28th March 1995
7868
7869 Menu OPTIONs
7870
7871 Permitted Context: SELECT
7872 Content Model: PCDATA
7873
7874 The OPTION element can only occur within a SELECT element. It
7875 represents a possible choice. It can only contain text, together
7876 with SGML entities for accented characters etc.
7877
7878 When the form is submitted, the NAME of the enclosing SELECT element
7879 is paired with the OPTION's VALUE attribute to contribute a
7880 name/value pair for the selection. Unselected options don't
7881 contribute to the form's submitted data. You can initialize the
7882 option to its selected state by including the SELECT attribute.
7883
7884 The SHAPE attribute is used for graphical menus to specify the
7885 region of the background image to be associated with this option. It
7886 uses the same definition as for the anchor element.
7887
7888 Permitted Attributes
7889
7890 ID
7891 An SGML identifier used as the target for hypertext links or for
7892 naming particular elements in associated style sheets.
7893 Identifiers are NAME tokens and must be unique within the scope
7894 of the current document.
7895
7896 LANG
7897 This is one of the ISO standard language abbreviations, e.g.
7898 "en.uk" for the variation of English spoken in the United
7899 Kingdom. It can be used by parsers to select language specific
7900 choices for quotation marks, ligatures and hypenation rules etc.
7901 The language attribute is composed from the two letter language
7902 code from ISO 639, optionally followed by a period and a two
7903 letter country code from ISO 3166.
7904
7905 CLASS
7906 This a space separated list of SGML NAME tokens and is used to
7907 subclass tag names. By convention, the class names are
7908 interpreted hierarchically, with the most general class on the
7909 left and the most specific on the right, where classes are
7910 separated by a period. The CLASS attribute is most commonly used
7911 to attach a different style to some element, but it is
7912 recommended that where practical class names should be picked on
7913 the basis of the element's semantics, as this will permit other
7914 uses, such as restricting search through documents by matching
7915 on element class names. The conventions for choosing class names
7916 are outside the scope of this specification.
7917
7918 DISABLED
7919 When present, the option should be rendered as normal, but can't
7920 be modified by the user. Where practical the rendering should
7921 provide a cue that the option is disabled e.g. by graying out
7922
7923 Dave Raggett Page 139
7924 HTML 3.0 28th March 1995
7925
7926 the text, changing the color of the background or similar.
7927
7928 ERROR
7929 This attribute specifies an error message explaining why the
7930 option is inappropriate. When this attribute is missing, the
7931 option can be assumed to be ok. User agents are recommended to
7932 provide a cue to indicate that the option is in error.
7933
7934 VALUE
7935 The string to be used together with the name attribute of the
7936 enclosing select element, when submitting the form. It defaults
7937 to the content of the OPTION element.
7938
7939 SELECTED
7940 When present, this attribute signifies that the option should be
7941 initialized in its selected state. It is an error for more than
7942 one option to be selected for single choice menus.
7943
7944 SHAPE
7945 This attribute is used within menus to define shaped hotzones
7946 associated with this option's value. The attribute value is a
7947 string taking one of the following forms:
7948
7949
7950
7951 "default"
7952 Used to define a default menu choice for the menu
7953 background.
7954
7955 "circle x, y, r"
7956 Where x and y define the center and r specifies the radius.
7957
7958 "rect x, y, w, h"
7959 Where x, y define the upper left corner and w, h define the
7960 width and height respectively
7961
7962 "polygon x1, y1, x2, y2, ..."
7963 Given n pairs of x, y coordinates, the polygon is closed by
7964 a line linking the n'th point to the first. Intersecting
7965 polygons use the non-zero winding number rule to determine
7966 if a point lies inside the polygon.
7967
7968 If a pointer event occurs in a region where two or more shapes
7969 overlap, the distance from the point to the center of gravity of
7970 each of the overlapping shapes is computed and the closest one
7971 chosen. This feature is useful when you want lots of closely
7972 spaced hotzones, for example over points on a map, as it allows
7973 you to use simple shapes without worrying about overlaps.
7974
7975 Note: The x coordinate increases to the right, and the y
7976 coordinate increases downwards in the same way as IMG and image
7977 maps. If both numbers are integers, the coordinates are
7978 interpreted as pixel offsets from the upper left corner of the
7979
7980 Dave Raggett Page 140
7981 HTML 3.0 28th March 1995
7982
7983 image. Otherwise, the coordinates are interpreted as scaled
7984 values in the range 0.0 to 1.0 across the image. Note the syntax
7985 is tolerant of repeated white space characters between tokens.
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037 Dave Raggett Page 141
8038 HTML 3.0 28th March 1995
8039
8040 Special Characters
8041
8042 This section contains information of how user agents should treat
8043 control characters and other special characters.
8044
8045 Character Data
8046
8047 The characters between the tags represent text encoded according to
8048 ISO 8859/1 8-bit single-byte coded graphic character set known as
8049 Latin Alphabet No. 1, or simply Latin-1. There are 256 character
8050 positions in the Latin-1 encoding. Latin-1 includes characters from
8051 most Western European languages. It consists of the space character,
8052 186 characters that form a subset of the graphic characters in ISO
8053 6937/2 (1983), and four additional characters that are intended for
8054 inclusion in ISO 6937/2. For more information, see Character Sets
8055
8056 The lower 128 character positions include a space, 33 control
8057 characters, the 26 upper- and lowercase letters of the english
8058 alphabet, 10 numerals and 32 other printing characters This subset,
8059 functionally identical to ASCII, is defined by ISO 646 7-bit coded
8060 character set for information interchange, also known as the
8061 International Reference Version. ISO 646 is identical in most
8062 respect to the ANSI standard for ASCII (American Standard Code for
8063 Information Interchange). The only significant difference between
8064 ISO 646 and ASCII is the specific names assigned to the control
8065 characters which occupy positions 00-31 and 127
8066
8067 The upper 128 positions include a non-breaking space, a soft hyphen
8068 indicator, 93 graphical characters, 8 unassigned characters, and 25
8069 control characters. The non-breaking space and soft hyphen indicator
8070 are not recognized and interpreted by all HTML browsers, and their
8071 use is discouraged
8072
8073 There are 58 character positions which are occupied by control
8074 characters. See the discussion for details on the interpretation of
8075 control characters. Because certain special characters are subject
8076 to interpretation and special processing, information providers and
8077 browser implementors should follow these guidelines
8078
8079 Certain characters may not be accessible from your keyboard, or some
8080 part of your system (i.e. translation software) may not be equipped
8081 to deal with 8-bit character codes. HTML and many WWW browsers
8082 provide character entity references and numerical character
8083 references to facilitate the entry and interpretation of characters
8084 by name and by numerical position.
8085
8086 Because certain characters will be interpreted as markup, they
8087 should be"escaped"; that is, represented by markup -- numeric
8088 character or entity references.
8089
8090 ------------------------------------------------------------------------------
8091 Special Characters
8092
8093
8094 Dave Raggett Page 142
8095 HTML 3.0 28th March 1995
8096
8097 Certain characters are taken to have special meaning within the
8098 context of an HTML document. There are two printing characters which
8099 may be interpreted by the browser to have an effect of the format of
8100 the text:
8101
8102 Space
8103
8104 * Interpreted as a word space in all contexts except <PRE>.
8105
8106 * Interpreted as a no-break space within <PRE>.
8107
8108 The character entities &ensp; and &emsp; denote an en space and an
8109 em space respectively, where an en space is half the point size and
8110 an em space is equal to the point size of the current font. For
8111 fixed pitch fonts, the user agent can treat the en space as being
8112 equivalent to a single space character, and the em space as being
8113 equuivalent to two space characters.
8114
8115 Non-breaking Space (&nbsp;)
8116
8117 This should be treated in the same way as the space character (ASCII
8118 character code 32 decimal), except that the user agent should never
8119 break lines at this point. It is useful when you want to ensure that
8120 neigbouring words always stay together and don't get split across
8121 lines.
8122
8123 Hyphen
8124
8125 * Interpreted as a hyphen glyph in all contexts.
8126
8127 * Interpreted as a potential word space by hyphenation engine.
8128
8129 The character entities &endash; and &emdash; denote dash marks with
8130 the same widths as the &ensp; and &emsp; entities respectively.
8131
8132 ------------------------------------------------------------------------------
8133 Control Characters
8134
8135 Control characters are non-printable characters that are typically
8136 used for communication and device control, as format effectors, and
8137 as information separators.
8138
8139 In SGML applications, the use of control characters is limited in
8140 order to maximize the chance of sucessful interchange over
8141 heterogenous networks and operating systems. In HTML, there are only
8142 three control characters which are used. The remaining 55 control
8143 characters are shunned and should not appear in an HTML document.
8144 The valid control characters and their interpretation are:
8145
8146 Horizontal Tab (HT - 9 dec)
8147
8148 * Interpreted as a word space in all contexts except <PRE>.
8149
8150
8151 Dave Raggett Page 143
8152 HTML 3.0 28th March 1995
8153
8154 * Within <PRE>, the tab should be interpreted to shift the
8155 horizontal column position to the next position which is a
8156 multiple of 8 on the same line; that is, col := (col+8) mod 8.
8157
8158 Line Feed (LF - 10 dec)
8159
8160 * Interpreted as a word space in all contexts except <PRE>.
8161
8162 * Within <PRE>, the tab should be interpreted as a shift to the
8163 start of a new line; that is, col := 0; row := row+1
8164
8165 Carriage Return (CR - 13 dec)
8166
8167 * Interpreted as a word space in all contexts except <PRE>.
8168
8169
8170
8171 * Within <PRE>, the tab should be interpreted as a shift to the
8172 start of the line; that is, col := 0;
8173
8174
8175
8176 ------------------------------------------------------------------------------
8177 Numeric Character References
8178
8179 Any printing character within the 8-bit character encoding of ISO
8180 8859/1 (256 character positions) or the 7-bit character encoding of
8181 ISO 646 (128 character positions) may be represented within the text
8182 of an HTML document by a numeric character reference, e.g. &#233; is
8183 a small e with an acute accent. It is recommended that character
8184 entity references such as &eacute; are used in preference to
8185 numberic character references.
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208 Dave Raggett Page 144
8209 HTML 3.0 28th March 1995
8210
8211 Security Considerations
8212
8213 Anchors, embedded images, and all other elements which contain URIs
8214 as parameters may cause the URI to be dereferenced. In this case,
8215 the security considerations of the URI specification apply.
8216
8217 Documents may be constructed whose visible contents mislead the
8218 reader to follow a link to unsuitable or offensive material.
8219
8220 The MD attribute is useful when authors are concerned that a linked
8221 object may be subsequently changed to something other than intended.
8222 This attribute is used to specify a cryptographic checksum for the
8223 linked object to provide a check on its integrity.
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265 Dave Raggett Page 145
8266 HTML 3.0 28th March 1995
8267
8268 <!SGML "ISO 8879:1986"
8269 --
8270 SGML Declaration for HyperText Markup Language (HTML).
8271
8272 --
8273
8274 CHARSET
8275 BASESET "ISO 646:1983//CHARSET
8276 International Reference Version
8277 (IRV)//ESC 2/5 4/0"
8278 DESCSET 0 9 UNUSED
8279 9 2 9
8280 11 2 UNUSED
8281 13 1 13
8282 14 18 UNUSED
8283 32 95 32
8284 127 1 UNUSED
8285 BASESET "ISO Registration Number 100//CHARSET
8286 ECMA-94 Right Part of
8287 Latin Alphabet Nr. 1//ESC 2/13 4/1"
8288
8289 DESCSET 128 32 UNUSED
8290 160 96 32
8291
8292 CAPACITY SGMLREF
8293 TOTALCAP 200000
8294 GRPCAP 150000
8295
8296 SCOPE DOCUMENT
8297 SYNTAX
8298 SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
8299 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
8300 BASESET "ISO 646:1983//CHARSET
8301 International Reference Version
8302 (IRV)//ESC 2/5 4/0"
8303 DESCSET 0 128 0
8304 FUNCTION
8305 RE 13
8306 RS 10
8307 SPACE 32
8308 TAB SEPCHAR 9
8309
8310
8311 NAMING LCNMSTRT ""
8312 UCNMSTRT ""
8313 LCNMCHAR ".-"
8314 UCNMCHAR ".-"
8315 NAMECASE GENERAL YES
8316 ENTITY NO
8317 DELIM GENERAL SGMLREF
8318 SHORTREF SGMLREF
8319 NAMES SGMLREF
8320 QUANTITY SGMLREF
8321
8322 Dave Raggett Page 146
8323 HTML 3.0 28th March 1995
8324
8325 ATTSPLEN 2100
8326 LITLEN 1024
8327 NAMELEN 72 -- somewhat arbitrary; taken from
8328 internet line length conventions --
8329 PILEN 1024
8330 TAGLEN 2100
8331 GRPGTCNT 150
8332 GRPCNT 64
8333
8334 FEATURES
8335 MINIMIZE
8336 DATATAG NO
8337 OMITTAG YES
8338 RANK NO
8339 SHORTTAG YES
8340 LINK
8341 SIMPLE NO
8342 IMPLICIT NO
8343 EXPLICIT NO
8344 OTHER
8345 CONCUR NO
8346 SUBDOC NO
8347 FORMAL YES
8348 APPINFO "SDA" -- conforming SGML Document Access application
8349 --
8350 >
8351 <!--
8352 $Id: html.decl,v 1.1 1995/03/07 05:50:34 connolly Exp $
8353
8354 Author: Daniel W. Connolly <connolly@hal.com>
8355
8356 See also: http://www.hal.com/%7Econnolly/html-spec
8357 http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html
8358 -->
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379 Dave Raggett Page 147
8380 HTML 3.0 28th March 1995
8381
8382 Character Entity Set(s)
8383
8384 This section is undergoing revision ...
8385
8386 --In particular, we need to add a more complete list of character
8387 entities, e.g. for the characters below decimal 128 and missing
8388 codes such as currency signs.
8389
8390 The following entity names are used in HTML, always prefixed by
8391 ampersand (&) and followed by a semicolon as shown.
8392
8393 They represent particular graphic characters which have special
8394 meanings in places in the markup, or may not be part of the
8395 character set available to the writer.
8396
8397 ------------------------------------------------------------------------------
8398 Numeric and Special Graphic Entities
8399
8400 The following table lists each of the supported characters specified
8401 in the Numeric and Special Graphic entity set, along with its name,
8402 syntax for use, and description.
8403
8404 This list is derived from "ISO 8879:1986//ENTITIES Numeric and
8405 Special Graphic//EN" however HTML does not provide support for the
8406 entire entity set. Only the entities listed below are supported.
8407
8408
8409 Name Syntax Description
8410 lt &lt; Less than sign
8411 gt &gt; Greater than sign
8412 amp &amp; Ampersand
8413 quot &quot; Double quote sign
8414
8415
8416 ------------------------------------------------------------------------------
8417 ISO Latin 1 Character Entities
8418
8419 The following table lists each of the characters specified in the
8420 Added Latin 1 entity set, along with its name, syntax for use, and
8421 description.
8422
8423 This list is derived from "ISO 8879:1986//ENTITIES Added Latin
8424 1//EN", and HTML does provide support for the entire entity set.
8425
8426
8427 Name Syntax Description
8428 Aacute &Aacute; Capital A, acute accent
8429 Agrave &Agrave; Capital A, grave accent
8430 Acirc &Acirc; Capital A, circumflex accent
8431 Atilde &Atilde; Capital A, tilde
8432 Aring &Aring; Capital A, ring
8433 Auml &Auml; Capital A, dieresis or umlaut mark
8434 AElig &AElig; Capital AE dipthong (ligature)
8435
8436 Dave Raggett Page 148
8437 HTML 3.0 28th March 1995
8438
8439 Ccedil &Ccedil; Capital C, cedilla
8440 Eacute &Eacute; Capital E, acute accent
8441 Egrave &Egrave; Capital E, grave accent
8442 Ecirc &Ecirc; Capital E, circumflex accent
8443 Euml &Euml; Capital E, dieresis or umlaut mark
8444 Iacute &Iacute; Capital I, acute accent
8445 Igrave &Igrave; Capital I, grave accent
8446 Icirc &Icirc; Capital I, circumflex accent
8447 Iuml &Iuml; Capital I, dieresis or umlaut mark
8448 ETH &ETH; Capital Eth, Icelandic
8449 Ntilde &Ntilde; Capital N, tilde
8450 Oacute &Oacute; Capital O, acute accent
8451 Ograve &Ograve; Capital O, grave accent
8452 Ocirc &Ocirc; Capital O, circumflex accent
8453 Otilde &Otilde; Capital O, tilde
8454 Ouml &Ouml; Capital O, dieresis or umlaut mark
8455 Oslash &Oslash; Capital O, slash
8456 Uacute &Uacute; Capital U, acute accent
8457 Ugrave &Ugrave; Capital U, grave accent
8458 Ucirc &Ucirc; Capital U, circumflex accent
8459 Uuml &Uuml; Capital U, dieresis or umlaut mark
8460 Yacute &Yacute; Capital Y, acute accent
8461
8462 THORN &THORN; Capital THORN, Icelandic
8463 szlig &szlig; Small sharp s, German (sz ligature)
8464
8465 aacute &aacute; Small a, acute accent
8466 agrave &agrave; Small a, grave accent
8467 acirc &acirc; Small a, circumflex accent
8468 atilde &atilde; Small a, tilde
8469 atilde &atilde; Small a, tilde
8470 auml &auml; Small a, dieresis or umlaut mark
8471 aelig &aelig; Small ae dipthong (ligature)
8472 ccedil &ccedil; Small c, cedilla
8473 eacute &eacute; Small e, acute accent
8474 egrave &egrave; Small e, grave accent
8475 ecirc &ecirc; Small e, circumflex accent
8476 euml &euml; Small e, dieresis or umlaut mark
8477 iacute &iacute; Small i, acute accent
8478 igrave &igrave; Small i, grave accent
8479 icirc &icirc; Small i, circumflex accent
8480 iuml &iuml; Small i, dieresis or umlaut mark
8481 eth &eth; Small eth, Icelandic
8482 ntilde &ntilde; Small n, tilde
8483 oacute &oacute; Small o, acute accent
8484 ograve &ograve; Small o, grave accent
8485 ocirc &ocirc; Small o, circumflex accent
8486 otilde &otilde; Small o, tilde
8487 ouml &ouml; Small o, dieresis or umlaut mark
8488 oslash &oslash; Small o, slash
8489 uacute &uacute; Small u, acute accent
8490 ugrave &ugrave; Small u, grave accent
8491 ucirc &ucirc; Small u, circumflex accent
8492
8493 Dave Raggett Page 149
8494 HTML 3.0 28th March 1995
8495
8496 uuml &uuml; Small u, dieresis or umlaut mark
8497 yacute &yacute; Small y, acute accent
8498 thorn &thorn; Small thorn, Icelandic
8499 yuml &yuml; Small y, dieresis or umlaut mark
8500
8501
8502 ------------------------------------------------------------------------------
8503 Numerical Character References
8504
8505 This list, sorted numerically, is derived from the ISO 8859/1 8-bit
8506 single-byte coded graphic character set:
8507
8508
8509 Reference Description
8510 &#00;-&#08; Unused
8511 &#09; Horizontal tab
8512 &#10; Line feed
8513 &#11;-&#31; Unused
8514
8515 &32; Space
8516 &33; Exclamation mark
8517 &34; Quotation mark
8518 &35; Number sign
8519 &36; Dollar sign
8520 &37; Percent sign
8521 &38; Ampersand
8522 &39; Apostrophe
8523 &40; Left parenthesis
8524 &41; Right parenthesis
8525 &42; Asterisk
8526 &43; Plus sign
8527 &44; Comma
8528 &45; Hyphen
8529 &46; Period (fullstop)
8530 &47; Solidus (slash)
8531
8532 &#48; - &#57; Digits 0-9
8533
8534 &58; Colon
8535 &59; Semi-colon
8536 &60; Less than
8537 &61; Equals aign
8538 &62; Greater than
8539 &63; Question mark
8540 &64; Commercial at
8541
8542 &#65;-&#90; Letters A-Z
8543
8544 &91; Left square bracket
8545 &92; Reverse solidus (backslash)
8546 &93; Right square bracket
8547 &95; Horizontal bar
8548 &96; Acute accent
8549
8550 Dave Raggett Page 150
8551 HTML 3.0 28th March 1995
8552
8553
8554 &#97;-&#122; Letters a-z
8555
8556 &123; Left curly brace
8557 &124; Vertical bar
8558 &125; Right curly brace
8559 &126; Tilde
8560
8561 &#127;- &#160; Unused
8562
8563 &161; Inverted exclamation
8564 &162; Cent sign
8565 &163; Pound sterling
8566 &164; General currency sign
8567 &165; Yen sign
8568 &166; Broken vertical bar
8569 &167; Section sign
8570 &168; Umlaut (dieresis)
8571 &169; Copyright
8572 &170; Feminine ordinal
8573 &171; Left angle quote, guillemotleft
8574 &172; Not sign
8575 &173; Soft hyphen
8576 &174; Registered trademark
8577 &175; Macron accent
8578 &176; Degree sign
8579 &177; Plus or minus
8580 &178; Superscript two
8581 &179; Superscript three
8582 &180; Acute accent
8583 &181; Micro sign
8584 &182; Paragraph sign
8585 &183; Middle dot
8586 &184; Cedilla
8587 &185; Superscript one
8588 &186; Masculine ordinal
8589 &187; Right angle quote, guillemotright
8590 &188; Fraction one-fourth
8591 &189; Fraction one-half
8592 &190; Fraction three-fourths
8593 &191; Inverted question mark
8594
8595 &192; Capital A, acute accent
8596 &193; Capital A, grave accent
8597 &194; Capital A, circumflex accent
8598 &195; Capital A, tilde
8599 &196; Capital A, ring
8600 &197; Capital A, dieresis or umlaut mark
8601 &198; Capital AE dipthong (ligature)
8602 &199; Capital C, cedilla
8603 &200; Capital E, acute accent
8604 &201; Capital E, grave accent
8605 &202; Capital E, circumflex accent
8606
8607 Dave Raggett Page 151
8608 HTML 3.0 28th March 1995
8609
8610 &203; Capital E, dieresis or umlaut mark
8611 &204; Capital I, acute accent
8612 &205; Capital I, grave accent
8613 &206; Capital I, circumflex accent
8614 &207; Capital I, dieresis or umlaut mark
8615 &208; Capital Eth, Icelandic
8616 &209; Capital N, tilde
8617 &210; Capital O, acute accent
8618 &211; Capital O, grave accent
8619 &212; Capital O, circumflex accent
8620 &213; Capital O, tilde
8621 &214; Capital O, dieresis or umlaut mark
8622
8623 &215; Multiply sign
8624
8625 &216; Capital O, slash
8626 &217; Capital U, acute accent
8627 &218; Capital U, grave accent
8628 &219; Capital U, circumflex accent
8629 &220; Capital U, dieresis or umlaut mark
8630 &221; Capital Y, acute accent
8631
8632 &222; Capital THORN, Icelandic
8633 &223; Small sharp s, German (sz ligature)
8634
8635 &224; Small a, acute accent
8636 &225; Small a, grave accent
8637 &226; Small a, circumflex accent
8638 &227; Small a, tilde
8639 &228; Small a, tilde
8640 &229; Small a, dieresis or umlaut mark
8641 &230; Small ae dipthong (ligature)
8642 &231; Small c, cedilla
8643 &232; Small e, acute accent
8644 &233; Small e, grave accent
8645 &234; Small e, circumflex accent
8646 &235; Small e, dieresis or umlaut mark
8647 &236; Small i, acute accent
8648 &237; Small i, grave accent
8649 &238; Small i, circumflex accent
8650 &239; Small i, dieresis or umlaut mark
8651 &240; Small eth, Icelandic
8652 &241; Small n, tilde
8653 &242; Small o, acute accent
8654 &243; Small o, grave accent
8655 &244; Small o, circumflex accent
8656 &245; Small o, tilde
8657 &246; Small o, dieresis or umlaut mark
8658
8659 &247; Division sign
8660
8661 &248; Small o, slash
8662 &249; Small u, acute accent
8663
8664 Dave Raggett Page 152
8665 HTML 3.0 28th March 1995
8666
8667 &250; Small u, grave accent
8668 &251; Small u, circumflex accent
8669 &252; Small u, dieresis or umlaut mark
8670 &253; Small y, acute accent
8671 &254; Small thorn, Icelandic
8672 &255; Small y, dieresis or umlaut mark
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721 Dave Raggett Page 153
8722 HTML 3.0 28th March 1995
8723
8724 Math Entities
8725
8726 This list is in a very preliminary stage ...
8727
8728 --I hope to use ISO names where practical, and want to ensure that
8729 names are meaningful, rather than cryptic. The character codes for
8730 common fonts will be included, although which fonts to include is
8731 still under review.--
8732
8733 The following sets out the range of math symbols supported by HTML
8734 math, giving the HTML entity name, the corresponding LaTeX command
8735 name and a short description. Character codes are given in
8736 hexadecimal when available for the Postscript symbol set and HP's
8737 math-8 symbol set.
8738
8739 Continuation dots - ellipsis
8740
8741
8742 &ldots; \ldots three dots on the baseline
8743 &cdots; \cdots three dots on same level as a minus sign
8744 &vdots; \vdots three vertical dots
8745 &ddots; \ddots diagonal dots (top left to bottom right)
8746 &dotfill; \dotfill like cdots but fills column in an array
8747
8748
8749 Added Spacing
8750
8751
8752 &thinsp; \, thin space
8753 &sp; \: medium space
8754 &emsp; \; thick space
8755 &quad; \quad huge space
8756
8757
8758 Lower case Greek Letters
8759
8760 PS-Symbol Math-8
8761 &alpha; \alpha alpha 61 61
8762 &beta; \beta beta 62 62
8763 &gamma; \gamma gamma 67 63
8764 &delta; \delta delta 64 64
8765 &epsilon; \epsilon epsilon -- 65
8766 &vepsilon; \varepsilon var epsilon 65 3B
8767 &zeta; \zeta zeta 7A 66
8768 &eta; \eta eta 68 67
8769 &theta; \theta theta 71 68
8770 &vtheta; \vartheta var theta -- 79
8771 &iota; \iota iota 69 69
8772 &kappa; \kappa kappa 6B 6A
8773 &lambda; \lambda lambda 6C 6B
8774 &mu; \mu mu 6D 6C
8775 &nu; \nu nu 6E 6D
8776 &xi; \xi xi 78 6E
8777
8778 Dave Raggett Page 154
8779 HTML 3.0 28th March 1995
8780
8781 &omicron; .... omicron 6F 6F
8782 &pi; \pi pi 70 70
8783 &varpi; \varpi var pi 76 7B
8784 &rho; \rho rho 72 71
8785 &varrho; \varrho var rho -- --
8786 &sigma; \sigma sigma 73 72
8787 &vsigma; \varsigma var sigma 56 5B
8788 &tau; \tau tau 74 73
8789 &upsilon; \upsilon upsilon 75 74
8790 &phi; \phi phi 66 75
8791 &varphi; \varphi var phi 6A 7A
8792 &chi; \chi chi 63 76
8793 &psi; \psi psi 79 77
8794 &omega; \omega omega 77 78
8795
8796
8797 Note: LaTeX uses the latin letter o for omicron.
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835 Dave Raggett Page 155
8836 HTML 3.0 28th March 1995
8837
8838 <!-- Standard ISO/WWW icons courtesy of Bert Bos and Kevin Hughes
8839
8840 These can be used in place of default symbols for list items or as
8841 part of hypertext links, and save time needed to download images.
8842 Browsers can define them in terms of library images or as URL/URNs.
8843 -->
8844
8845
8846 <!ENTITY ftp SDATA "ftp" -- ftp server -->
8847 <!ENTITY gopher SDATA "gopher" -- gopher server -->
8848 <!ENTITY telnet SDATA "telnet" -- telnet connection -->
8849 <!ENTITY archive SDATA "archive" -- archive server -->
8850 <!ENTITY filing.cabinet SDATA "filing.cabinet" -- filing cabinet -->
8851 <!ENTITY folder SDATA "folder" -- folder or directory -->
8852 <!ENTITY fixed.disk SDATA "fixed.disk" -- fixed media drive -->
8853 <!ENTITY disk.drive SDATA "disk.drive" -- removeable media drive -->
8854 <!ENTITY document SDATA "document" -- unspecified document type -->
8855 <!ENTITY unknown.document SDATA "unknown.document" -- unrecognised document type -->
8856 <!ENTITY text.document SDATA "text.document" -- text/plain, text.html etc. -->
8857 <!ENTITY binary.document SDATA "binary.document" -- binary data -->
8858 <!ENTITY binhex.document SDATA "binhex.document" -- binhex format -->
8859 <!ENTITY audio SDATA "audio" -- audio sequence -->
8860 <!ENTITY film SDATA "film" -- film or animation, such as an MPEG movie -->
8861 <!ENTITY image SDATA "image" -- photograph, drawing or graphic of any kind -->
8862 <!ENTITY map SDATA "map" -- geographical or a schematic map -->
8863 <!ENTITY form SDATA "form" -- fill-out form -->
8864 <!ENTITY mail SDATA "mail" -- email messages -->
8865 <!ENTITY parent SDATA "parent" -- parent of current document -->
8866 <!ENTITY next SDATA "next" -- next document in current sequence -->
8867 <!ENTITY previous SDATA "previous" -- previous document in current sequence -->
8868 <!ENTITY home SDATA "home" -- home document -->
8869 <!ENTITY toc SDATA "toc" -- table of contents -->
8870 <!ENTITY glossary SDATA "glossary" -- glossary of terms etc. -->
8871 <!ENTITY index SDATA "index" -- searchable index -->
8872 <!ENTITY summary SDATA "summary" -- summary -->
8873
8874 <!ENTITY calculator SDATA "calculator" -- A calculator -->
8875 <!ENTITY caution SDATA "caution" -- Warnign sign -->
8876 <!ENTITY clock SDATA "clock" -- A clock -->
8877 <!ENTITY compressed.document SDATA "compressed.document">
8878 <!ENTITY diskette SDATA "diskette" -- A diskette -->
8879 <!ENTITY display SDATA "display" -- A computer screen -->
8880 <!ENTITY fax SDATA "fax" -- A fax machine -->
8881 <!ENTITY mail.in SDATA "mail.in" -- mail-in tray -->
8882 <!ENTITY mail.out SDATA "mail.out" -- mail-out tray -->
8883 <!ENTITY mouse SDATA "mouse" -- mouse/pointing device -->
8884 <!ENTITY printer SDATA "printer" -- hardcopy device -->
8885 <!ENTITY tn3270 SDATA "tn3270" --tn3270 terminal session -->
8886 <!ENTITY trash SDATA "trash" -- waste paper basket -->
8887 <!ENTITY uuencoded.document SDATA "uuencoded.document" -- uuencoded data -->
8888
8889
8890
8891
8892 Dave Raggett Page 156
8893 HTML 3.0 28th March 1995
8894
8895 <!--
8896 html3.dtd
8897
8898 Document Type Definition for the HyperText Markup Language (HTML DTD)
8899
8900 Draft: Fri 24-Mar-95 09:46:33
8901
8902 Author: Dave Raggett <dsr@hplb.hpl.hp.com>
8903
8904 W3O is developing a testbed browser to provide practical
8905 experience with HTML 3.0 before it becomes a standard.
8906 See: http://www.w3.org/hypertext/WWW/Arena/
8907
8908 This is an open process and comments are welcomed on the
8909 www-html mailing list.
8910
8911 Please use the following MIME content type:
8912
8913 Content-Type: text/html; version=3.0
8914
8915 This will allow clients to distinguish HTML 3.0 from current
8916 HTML documents. This is most easily achieved by saving
8917 files with the extension ".html3" or ".ht3" so that servers
8918 can easily distinguish these files from HTML 2.0 files.
8919
8920 The entity HTML.Recommended can be used to give a more rigorous
8921 version of the DTD suitable for use with SGML authoring tools.
8922 The default version of the DTD offers a laxer interpretation,
8923 e.g. allowing authors to omit leading <P> elements. You can
8924 switch on the more rigorous version of the DTD by including
8925 the following at the start of your HTML document.
8926
8927 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//"
8928 [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
8929
8930
8931 Design Objectives:
8932
8933 o Backwards compatibility with 2.0
8934
8935 o Tightening up HTML.Recommended and
8936 moving more things to HTML.Deprecated
8937
8938 o Keep HTML - simple don't compete with CALS
8939
8940 o Make it practical for people to edit HTML 3.0
8941 documents directly, i.e. avoid long names.
8942
8943 o Tables, figures and math from HTML+
8944 with tweaks based on recent experience
8945
8946 o Client-side event handling for figures
8947 and graphical form selection menus
8948
8949 Dave Raggett Page 157
8950 HTML 3.0 28th March 1995
8951
8952
8953 o Add limited presentational controls with
8954 a view to use of linked style sheets
8955 (style overrides are supported)
8956
8957 o Compatibility with ICADD as per Yuri's suggestions
8958
8959 HTML 3.0 relies on linked style info to give authors
8960 control over the appearence of documents. Such info is
8961 placed in a linked style sheet, or as overrides in the
8962 HTML document head, using the STYLE element. The generic
8963 CLASS attribute can be used to subclass elements when
8964 you want to use a different style from normal, e.g. you
8965 might use <h2 class=bigcaps> for headers with enlarged
8966 capital letters. Note that the class attribute has a
8967 wider scope than just style changes, e.g. browsers could
8968 provide the means for searching through documents,
8969 restricting search according to element class values.
8970
8971 The DTD contains a small number of attributes for direct
8972 control of basic alignment parameters; column widths for
8973 tables; support for custom bullets, sequence numbering for
8974 lists and headers; and text flow. These attributes offer
8975 control over appearence which would be inconvenient to
8976 express exclusively via associated style sheets.
8977
8978 The MD attribute for each hypertext or inline link specifies a
8979 message digest such as MD5 for the linked object and is needed
8980 to ensure someone hasn't tampered with a linked document.
8981
8982 History:
8983
8984 24th March '95
8985
8986 Changed ROLE->CLASS for HTML element
8987 Added dummy elements to fix problem with mixed
8988 content models for BODY, BLOCKQUOTE/BQ and FIG
8989 Dropped audio fields from FORMs
8990 Reinstated MIN/MAX for range fields
8991 Reinstated DISABLED and ERROR attributes for fields
8992
8993 22nd March '95
8994
8995 Changed from em to en units. The latter
8996 is a typographical unit = half point size
8997 Merged NEEDS into CLEAR for control of textflow
8998
8999 21st March '95
9000
9001 Added REL=Banner to LINK element
9002 Added BANNER element in place of <DIV CLASS=BANNER>
9003 Added RANGE and SPOT elements
9004 Added FN in place of <NOTE ROLE=FOOTNOTE>
9005
9006 Dave Raggett Page 158
9007 HTML 3.0 28th March 1995
9008
9009 Changed ROLE->CLASS for NOTE element
9010
9011 17th March '95
9012
9013 Fixed bug in PRE content model
9014 Changed external references to omit trailling //
9015 Dropped <!DOCTYPE HTML [ ... ]> wrapper to avoid problems
9016 with "real" sgml parsers
9017 Added NOFLOW attribute to FIG and TABLE
9018 Fixed typo in IMG ALIGN attribute
9019 Made SELECT match IMG for graphic attributes
9020 Added decimal alignment for tabs and table cells
9021 Added ALIGN attribute to TEXTAREA for parity
9022 with IMG and INPUT, including ALIGN=LEFT etc.
9023
9024 13th March '95
9025
9026 Dropped MARK tag on advice from SGML Open
9027 Allowed spaces in table colspec attribute
9028 Changed ARRAY element
9029 Added CHOOSE tag to BOX element
9030 Cleaned up PRE content model
9031 Obsoleted tags incompatible with SGML
9032
9033 6th March '95
9034
9035 Added several tags to MATH: %mathface, %mathvec
9036 and improved ROOT, with new SQRT convience tag
9037
9038 1st March '95
9039
9040 Dropped align attribute from BR element
9041 Added indent attribute to TAB
9042 Added optional CREDIT to end of BQ
9043 Changed FIG to %body.content to allow headers
9044
9045 22nd February '95
9046
9047 Added align attribute, and dropped before, after, center and right
9048 attributes to clean up TAB element
9049 Added INS and DEL for legal documents
9050 Added CREDIT to end of FIG element
9051 Dropped FN in favor of <NOTE ROLE=FootNote>
9052
9053 9th Feburuary '95
9054
9055 Dropped base attribute mechanism for scoping relative URLs
9056 Dropped nofold attribute for disabling whitespace folding
9057 Dropped border width attributes for FIG (-> style sheet)
9058 Dropped delims attribute from math BOX element
9059 Dropped stylistic attributes from OL such as inherit (-> stylesheet)
9060 Added baseline to list of valign attribute values for tables.
9061 Added DIV element for generic container class and static banners
9062
9063 Dave Raggett Page 159
9064 HTML 3.0 28th March 1995
9065
9066 Added MARK element for marked range class
9067 Added closed set of LINK REL values for toolbars
9068 Added numbering attributes to headers
9069 Added bullet attributes to headers
9070 Added TERM element to math for style sheet control of term rendering
9071 Changed to imagemap=URI for server-side event handling for FIG/OVERLAY
9072 Changed delimiter attributes for math arrays
9073 Changed ROOT element for maths to allow an arbitrary radix
9074 Simplified numbering attributes for ordered lists
9075 Simplified STYLE element to leave binding to style language
9076 -->
9077
9078 <!ENTITY % HTML.Version
9079 "-//IETF//DTD HTML 3.0//EN"
9080
9081 -- Typical usage:
9082
9083 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
9084 <html>
9085 ...
9086 </html>
9087 --
9088 >
9089
9090 <!--================== Flags for Marked Sections ==========================-->
9091
9092 <!ENTITY % HTML.Recommended "IGNORE"
9093 -- Certain features of the language are necessary for compatibility
9094 with widespread usage, but they may compromise the structural
9095 integrity of a document. This feature test entity enables
9096 a more prescriptive document type definition that eliminates
9097 the above features.
9098 -->
9099
9100 <![ %HTML.Recommended [
9101 <!ENTITY % HTML.Deprecated "IGNORE">
9102 ]]>
9103
9104 <!ENTITY % HTML.Deprecated "INCLUDE"
9105 -- Certain features of the language are necessary for compatibility
9106 with earlier versions of the specification, but they tend
9107 to be used an implemented inconsistently, and their use is
9108 deprecated. This feature test entity enables a document type
9109 definition that eliminates these features.
9110 -->
9111
9112 <!ENTITY % HTML.Obsoleted "IGNORE"
9113 -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
9114 and derive from very early versions of HTML. They require non-
9115 standard parsers and will cause problems for processing
9116 documents with standard SGML tools.
9117 -->
9118
9119
9120 Dave Raggett Page 160
9121 HTML 3.0 28th March 1995
9122
9123 <!--================== Imported Names =====================================-->
9124
9125 <!ENTITY % Content-Type "CDATA"
9126 -- meaning a MIME content type, as per RFC1521
9127 -->
9128
9129 <!ENTITY % HTTP-Method "GET | POST"
9130 -- as per HTTP specification
9131 -->
9132
9133 <!ENTITY % URI "CDATA"
9134 -- The term URI means a CDATA attribute
9135 whose value is a Uniform Resource Identifier,
9136 as defined by
9137 "Uniform Resource Identifiers" by Tim Berners-Lee
9138 aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
9139 aka RFC 1630
9140
9141 Note that CDATA attributes are limited by the LITLEN
9142 capacity (1024 in the current version of html.decl),
9143 so that URIs in HTML have a bounded length.
9144
9145 -->
9146
9147 <!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
9148
9149 <!ENTITY % SHAPE "CDATA"
9150 -- Shape of hotzone in image.
9151
9152 All coordinates are assumed to be numbers in the range 0 to 1
9153 and interpreted as fractional width/height and measured from
9154 the top left corner of the associated image.
9155
9156 The attribute value is a string taking one of the following forms:
9157
9158 "default"
9159
9160 Used to define a default link for the figure background.
9161
9162 "circle x, y, r"
9163
9164 (x, y) define the center and r the radius.
9165
9166 "rect x, y, w, h"
9167
9168 (x, y) defines upper left, and w and h the width and height.
9169
9170 "polygon x1, y1, x2, y2, ..."
9171
9172 Given n pairs of x, y coordinates, the polygon is closed by a
9173 line linking the n'th point to the first. Intersecting polygons
9174 use the non-zero winding number rule to determine if a point lies
9175 inside the polygon.I
9176
9177 Dave Raggett Page 161
9178 HTML 3.0 28th March 1995
9179
9180 --
9181 >
9182
9183 <!-- 3.0 Parameter Entities -->
9184
9185 <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
9186
9187 <![ %HTML.Obsoleted [
9188 <!ENTITY % preformatted "PRE | XMP | LISTING">
9189 ]]>
9190
9191
9192 <![ %HTML.Deprecated [
9193 <!ENTITY % list "UL | OL | DIR | MENU">
9194 <!ENTITY % blockquote "BLOCKQUOTE | BQ">
9195 ]]>
9196
9197 <!ENTITY % list "UL | OL">
9198
9199 <!ENTITY % blockquote "BQ">
9200
9201 <!ENTITY % preformatted "PRE">
9202
9203
9204 <!-- The CLASS attribute is used to subclass HTML elements for
9205 rendering purposes, when used with style sheets, e.g. DSSSL lite -->
9206
9207 <!ENTITY % attrs -- common attributes for elements --
9208 'id ID #IMPLIED -- as target for hrefs (link ends) --
9209 lang CDATA "en.us" -- ISO language, country code --
9210 class NAMES #IMPLIED -- for subclassing elements --'>
9211
9212 <!-- SGML standard forces different NAMES for all attribute values
9213 in the same element, regardless of the attribute name! As a result
9214 CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
9215
9216 <!--
9217 When text flows around a figure or table in the margin, you sometimes want
9218 to start an element like a header, paragraph or list below the figure rather
9219 than alongside it. The CLEAR attribute allows you to move down unconditionally:
9220
9221 clear=left move down until left margin is clear
9222 clear=right move down until right margin is clear
9223 clear=all move down until both margins are clear
9224
9225 Alternatively, you can decide to place the element alongside the figure just
9226 so long as there is enough room. The minimum width needed is specified as:
9227
9228 clear="40 en" move down until there is at least 40 en units free
9229 clear="100 pixels" move down until there is at least 100 pixels free
9230
9231 The style sheet (or browser defaults) may provide default minimum widths for
9232 each class of block-like elements.
9233
9234 Dave Raggett Page 162
9235 HTML 3.0 28th March 1995
9236
9237 -->
9238
9239 <!ENTITY % needs -- Attributes for controlling text flow. Used in headers
9240 and other elements to guarantee sufficient room --
9241 'clear CDATA #IMPLIED'>
9242
9243 <!--
9244 The following attribute may be included where ever a URL can be given:
9245
9246 md message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
9247 where the digest is base64 encoded and preceded by a prefix
9248 denoting the algorithm (in this case MD5).
9249 -->
9250
9251 <!ENTITY % url.link -- Attributes associated with URL based links --
9252 "md CDATA #IMPLIED -- message digest for linked object --">
9253
9254 <!--================ Character mnemonic entities ==========================-->
9255
9256 <!-- The HTML list of Latin-1 entities includes the full range
9257 of characters in widely available Latin-1 fonts, and as such
9258 is a mixture of ISOlat1 and other ISO publishing symbols -->
9259
9260 <!ENTITY % HTMLlat1 PUBLIC
9261 "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
9262 %HTMLlat1;
9263
9264 <!--================ Entities for special symbols =========================-->
9265
9266 <!ENTITY emsp SDATA "[emsp ]" -- em space -->
9267 <!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
9268 <!ENTITY mdash SDATA "[ndash ]" -- em dash -->
9269 <!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
9270 <!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
9271 <!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
9272 <!ENTITY copy SDATA "[copy ]" -- copyright sign -->
9273 <!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
9274 <!ENTITY reg SDATA "[reg ]" -- registered sign -->
9275
9276 <!--================ Entities for standard icons ==========================-->
9277
9278 <!-- a range of standard icons such as &folder; for use
9279 in speeding up display of directory listings etc. -->
9280
9281 <!ENTITY % HTMLicons PUBLIC
9282 "-//IETF//ENTITIES icons for HTML//EN">
9283 %HTMLicons;
9284
9285 <!--================ Entities for math symbols ============================-->
9286
9287 <!-- ISO subset chosen for use with the widely available Adobe math font -->
9288
9289 <!ENTITY % HTMLmath PUBLIC
9290
9291 Dave Raggett Page 163
9292 HTML 3.0 28th March 1995
9293
9294 "-//IETF//ENTITIES Math and Greek for HTML//EN">
9295 %HTMLmath;
9296
9297 <!--=================== Text Markup =======================================-->
9298
9299 <!ENTITY % font " U | S | TT | I | BIG | SMALL">
9300
9301 <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
9302
9303 <!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
9304
9305 <!ENTITY % special "TAB | MATH | A | IMG | BR">
9306
9307 <!ENTITY % notmath "%font | %phrase | %special | %misc">
9308
9309 <!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
9310
9311
9312 <!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
9313
9314 <!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
9315 <!ATTLIST (%font|B|%phrase|%misc) %attrs;>
9316
9317 <!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
9318
9319 <!ELEMENT (SUB|SUP) - - (%text)+>
9320 <!ATTLIST (SUB|SUP)
9321 %attrs;
9322 align (left|center|right) #IMPLIED
9323 >
9324
9325 <!-- Forced line break -->
9326
9327 <!ELEMENT BR - O EMPTY>
9328 <!ATTLIST BR
9329 %attrs;
9330 %needs; -- for control of text flow --
9331 >
9332
9333 <!-- Named left, center and right tab stops (independent of '\t' char) -->
9334
9335 <!ELEMENT TAB - O EMPTY>
9336 <!ATTLIST TAB
9337 id ID #IMPLIED -- defines named tab stop --
9338 indent NUMBER 0 -- en units before new tab stop --
9339 to IDREF #IMPLIED -- jump to named tab stop --
9340 align (left|center|right|decimal) left
9341 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
9342 >
9343
9344 <!--================== Link Markup ========================================-->
9345
9346 <!--
9347
9348 Dave Raggett Page 164
9349 HTML 3.0 28th March 1995
9350
9351 With HTML 3.0 you can use ID attributes on most elements for named
9352 link ends. The use of the NAME attribute on anchors is deprecated.
9353
9354 Do we want to support arbitrary elements for link starts? This would
9355 involve adding HREF and related attributes to most elements.
9356 -->
9357
9358 <![ %HTML.Deprecated [
9359 <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
9360 ]]>
9361
9362 <!ENTITY % linkName "">
9363
9364
9365 <!ENTITY % ToolBar "home|toc|index|glossary|copyright|
9366 up|previous|next|help|bookmark"
9367
9368 -- LINK RELationship values which are used to create toolbar
9369 buttons or menu items for navigation, where toc stands
9370 for table of contents and bookmark provides for an open
9371 ended set of links, i.e. you can use multiple bookmarks
9372 for key entry points. Use the optional TITLE attribute
9373 to override default names.
9374 -->
9375
9376 <!ENTITY % linkType "NAME"
9377 -- A definitive list will be specified at a later date.
9378
9379 They are used
9380
9381 a) by stylesheets to control how collections of
9382 html nodes are rendered into printed documents
9383
9384 b) for document specific toolbars/menus when used
9385 with the LINK element in document head:
9386
9387 "home|toc|index|glossary|copyright|
9388 up|previous|next|help|bookmark"
9389
9390 where toc stands for table of contents and
9391 bookmark provides for an open ended set of links,
9392 i.e. you can use several bookmarks for key entry
9393 points. Use the optional TITLE attribute to
9394 override default names.
9395
9396 c) for hypertext paths or guided tours,
9397 with REL=NODE and REL=PATH.
9398
9399 d) to make a link to a style sheet, e.g. rel=stylesheet
9400 (used only with the LINK element).
9401
9402 e) to make a link to a separate banner, e.g. rel=banner
9403 (used only with the LINK element).
9404
9405 Dave Raggett Page 165
9406 HTML 3.0 28th March 1995
9407
9408 -->
9409
9410
9411 <!ENTITY % linkExtraAttributes -- URN moved to %url.link --
9412 "rel %linkType #IMPLIED -- forward relationship type --
9413 rev %linkType #IMPLIED -- reversed relationship type
9414 to referent data --
9415 title CDATA #IMPLIED -- advisory only --
9416 methods NAMES #IMPLIED -- supported public methods of the object:
9417 TEXTSEARCH, GET, HEAD, ... --
9418 ">
9419
9420 <![ %HTML.Deprecated [
9421 <!ENTITY % A.content "(%heading|%text)+">
9422 ]]>
9423
9424 <!ENTITY % A.content "(%text)+">
9425
9426 <!ELEMENT A - - %A.content -(A)>
9427
9428 <!ATTLIST A
9429 %attrs;
9430 href %URI; #IMPLIED
9431 %url.link; -- standard link attributes --
9432 %linkName; -- name attribute is deprecated; use ID instead --
9433 shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
9434 %linkExtraAttributes;
9435 >
9436
9437 <!--=================== Images ============================================-->
9438
9439 <!-- Desired widths are used for negotiating image size
9440 with the module responsible for painting the image.
9441 align=left or right cause image to float to margin
9442 and for subsequent text to wrap around image -->
9443
9444 <!ELEMENT IMG - O EMPTY -- Embedded image -->
9445 <!ATTLIST IMG
9446 %attrs;
9447 src %URI; #REQUIRED -- URI of image to embed --
9448 %url.link; -- standard link attributes --
9449 alt CDATA #IMPLIED -- for display in place of image --
9450 align (top|middle|bottom|left|right) top -- relative to baseline
9451 -- width NUMBER #IMPLIED -- desired width in en's or pixels --
9452 height NUMBER #IMPLIED -- desired height in en's or pixels --
9453 units (en|pixels) pixels -- units for width and height --
9454 ismap (ismap) #IMPLIED -- pass clicks to server --
9455 >
9456
9457 <!--=================== Paragraphs=========================================-->
9458
9459 <!ELEMENT P - O (%text)+>
9460 <!ATTLIST P
9461
9462 Dave Raggett Page 166
9463 HTML 3.0 28th March 1995
9464
9465 %attrs;
9466 align (left|center|right|justify) #IMPLIED
9467 %needs; -- for control of text flow --
9468 nowrap (nowrap) #IMPLIED -- disable wordwrap --
9469 >
9470
9471 <!--=================== Headings, Titles, Sections ========================-->
9472
9473 <!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
9474 <!ATTLIST HR
9475 %attrs;
9476 src %URI; #IMPLIED -- URI of custom rule graphic --
9477 %url.link; -- standard link attributes --
9478 %needs; -- for control of text flow --
9479 >
9480
9481 <!--
9482 Headers can be numbered, although this is a matter for style sheets.
9483 The style sheet controls the numbering style:
9484
9485 a) whether the parent numbering is inherited, e.g. 5.i.c
9486 where 5 is the current sequence number for H1 headers, and
9487 1 is the number for H2 headers and 3 for H3 headers.
9488
9489 b) what style is used for current sequence number
9490 e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
9491 or a numbering scheme appropriate for the current language
9492
9493 The skip attribute is used to skip over sequence numbers for items
9494 which have been left out of the list, e.g. skip=3 advances the
9495 sequence number past 3 omitted items. The seqnum sets the sequence
9496 number to a specified value. Note that the style sheet may take
9497 advantage of the sequence number for higher level headers.
9498
9499 The dingbat or src attributes may be used to specify a bullet like
9500 image to be placed adjacent to the header. Defining this in the
9501 header element simplifies the document markup and avoids the need
9502 to use the clear or needs attribute in the following element to
9503 prevent it flowing around this image.
9504 -->
9505
9506 <!ELEMENT ( %heading ) - - (%text;)+>
9507 <!ATTLIST ( %heading )
9508 %attrs;
9509 align (left|center|right|justify) #IMPLIED
9510 %needs; -- for control of text flow --
9511 seqnum NUMBER #IMPLIED -- starting sequence number --
9512 skip NUMBER 0 -- skip seq nums for missing items --
9513 dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
9514 src (%URI;) #IMPLIED -- bullet defined by graphic --
9515 %url.link; -- standard link attributes --
9516 nowrap (nowrap) #IMPLIED -- disable wordwrap --
9517 >
9518
9519 Dave Raggett Page 167
9520 HTML 3.0 28th March 1995
9521
9522
9523 <!ELEMENT TITLE - - (#PCDATA)
9524 -- The TITLE element is not considered part of the flow of text.
9525 It should be displayed, for example as the page header or
9526 window title.
9527 -->
9528
9529 <!--=================== Text Flows ========================================-->
9530
9531 <!ENTITY % block
9532 "P | %list | DL
9533 | %preformatted
9534 | %blockquote
9535 | FORM | ISINDEX | FN
9536 | TABLE | FIG | NOTE">
9537
9538 <!--
9539 ((%block)* | (%text)*) would be much nicer as it would avoid the need
9540 for a <P> tag when all you want is a few words of text. The problem
9541 is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
9542 and hence the white space between the <LI> and the <P>.
9543 -->
9544
9545 <![ %HTML.Recommended [
9546 <!ENTITY % flow "(%block)*">
9547 ]]>
9548
9549 <!ENTITY % flow "(%text | %block)*">
9550
9551 <!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
9552
9553 <!ATTLIST PRE
9554 %attrs;
9555 width NUMBER #implied
9556 %needs; -- for control of text flow --
9557 >
9558
9559 <![ %HTML.Obsoleted [
9560
9561 <!ENTITY % literal "CDATA"
9562 -- special non-conforming parsing mode where
9563 the only markup signal is the end tag
9564 in full. This will cause problems for
9565 standard SGML tools!
9566 -->
9567
9568 <!ELEMENT XMP - - %literal>
9569 <!ELEMENT LISTING - - %literal>
9570 <!ELEMENT PLAINTEXT - O %literal>
9571
9572 ]]>
9573
9574 <!--=================== Lists =============================================-->
9575
9576 Dave Raggett Page 168
9577 HTML 3.0 28th March 1995
9578
9579
9580 <!ELEMENT DL - - (LH?, (DT|DD)+) -- this is perhaps too lax? -->
9581 <!ATTLIST DL
9582 %attrs;
9583 %needs; -- for control of text flow --
9584 compact (compact) #IMPLIED -- more compact style --
9585 >
9586
9587 <!ELEMENT DT - O (%text)+>
9588 <!ELEMENT DD - O %flow;>
9589 <!ATTLIST (DT|DD)
9590 %attrs;
9591 %needs; -- for control of text flow --
9592 >
9593
9594
9595 <!ELEMENT (OL|UL) - - (LH?, LI+) -- should we allow a list header ? -->
9596
9597 <!-- style sheet controls numbering style
9598 a) whether the parent numbering is inherited, e.g. 5.1.c
9599 b) what style is used for current sequence number
9600 e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
9601 or a numbering scheme for the current language
9602 -->
9603 <!ATTLIST OL
9604 %attrs;
9605 %needs; -- for control of text flow --
9606 continue (continue) #IMPLIED -- don't restart sequence number --
9607 seqnum NUMBER #IMPLIED -- starting sequence number --
9608 compact (compact) #IMPLIED -- reduced interitem spacing --
9609 >
9610
9611 <!-- Unordered lists:
9612
9613 o single or multicolumn with
9614 horizontal or vertical wrapping
9615
9616 o plain or bulletted list items
9617
9618 o bullets can be customised via:
9619 - entities (dingbats in HTMLicons)
9620 - external graphic via URL
9621 - individual attributes on LI tags
9622 -->
9623 <!ATTLIST UL
9624 %attrs;
9625 %needs; -- for control of text flow --
9626 wrap (vert|horiz|none) none -- multicolumn list style --
9627 plain (plain) #IMPLIED -- suppress bullets --
9628 dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
9629 src (%URI;) #IMPLIED -- bullet defined by graphic --
9630 %url.link; -- standard link attributes --
9631 compact (compact) #IMPLIED -- reduced interitem spacing --
9632
9633 Dave Raggett Page 169
9634 HTML 3.0 28th March 1995
9635
9636 >
9637
9638 <!ELEMENT LH - O (%text;)+ -- list header -->
9639 <!ATTLIST LH %attrs;>
9640
9641 <!--
9642 For unordered lists, you can override the standard bullet with
9643 a custom graphic specified via a URI e.g. src="splash.gif" or
9644 a reference to one of the HTMLicons graphics e.g. dingbat=folder
9645
9646 The skip attribute is used with ordered lists to skip over sequence
9647 numbers for items which have been left out of the list, e.g. skip=3
9648 advances the sequence number past 3 omitted items.
9649 -->
9650
9651 <!ELEMENT LI - O %flow; -- list item -->
9652 <!ATTLIST LI
9653 %attrs;
9654 %needs; -- for control of text flow --
9655 dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
9656 src (%URI;) #IMPLIED -- custom bullet graphic --
9657 %url.link; -- standard link attributes --
9658 skip NUMBER 0 -- skip seq nums for missing items --
9659 >
9660
9661 <!-- DIR and MENU are now subsumed by UL with type=plain. Use the
9662 wrap attribute to control wrapping style for multicolumn lists -->
9663
9664 <![ %HTML.Deprecated [
9665 <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
9666 <!ATTLIST (DIR|MENU)
9667 compact (compact) #IMPLIED>
9668 ]]>
9669
9670 <!--=================== Document Body =====================================-->
9671
9672 <![ %HTML.Recommended [
9673 <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
9674 -- <h1>Heading</h1>
9675 <p>Text ...
9676 is preferred to
9677 <h1>Heading</h1>
9678 Text ...
9679 -->
9680 ]]>
9681
9682 <!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
9683
9684 <!ELEMENT BODY O O (BANNER?, BODYTEXT) +(SPOT)>
9685 <!ATTLIST BODY
9686 %attrs;
9687 background %URI; #IMPLIED -- texture tile for document background --
9688 >
9689
9690 Dave Raggett Page 170
9691 HTML 3.0 28th March 1995
9692
9693
9694 <!ELEMENT BODYTEXT O O %body.content -- dummy element -->
9695
9696 <!--
9697 The BANNER element is used for a banner section which appears at
9698 the top of the window and doesn't scroll with window contents.
9699 This can be used for corporate logos, copyright statements and
9700 disclaimers, as well as customized navigation/search controls.
9701 -->
9702 <!ELEMENT BANNER - - %body.content>
9703 <!ATTLIST BANNER %attrs; >
9704
9705 <!-- SPOT is used to insert IDs at arbitrary places
9706 e.g. for end points of a marked range (see RANGE) -->
9707 <!ELEMENT SPOT - O EMPTY>
9708 <!ATTLIST SPOT id ID #REQUIRED>
9709
9710 <!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
9711 <!ATTLIST (%blockquote)
9712 %attrs;
9713 %needs; -- for control of text flow --
9714 nowrap (nowrap) #IMPLIED -- disable wordwrap --
9715 >
9716
9717 <!ENTITY % address.content "((%text;)* | P*)">
9718
9719 <!ELEMENT ADDRESS - - %address.content>
9720 <!ATTLIST ADDRESS
9721 %attrs;
9722 %needs; -- for control of text flow --
9723 >
9724
9725 <!--
9726 DIV can be used with the CLASS attribute to represent different
9727 kinds of container, e.g. chapter, section, abstract, appendix.
9728 -->
9729
9730 <!ELEMENT DIV - - %body.content>
9731 <!ATTLIST DIV
9732 %attrs;
9733 %needs; -- for control of text flow --
9734 align (left|center|right) left -- alignment of following text --
9735 nowrap (nowrap) #IMPLIED -- disable wordwrap --
9736 >
9737
9738 <!--================ Forms ===============================================-->
9739
9740 <!--
9741 As HTML 2.0 plus a few extensions:
9742
9743 a) A RANGE control which varies between pair of values
9744 specified with the size attribute, e.g. SIZE="1, 10"
9745
9746
9747 Dave Raggett Page 171
9748 HTML 3.0 28th March 1995
9749
9750 b) FILE widget for uploading one or more files to a server
9751
9752 c) SCRIBBLE on image widget that sends the "ink" to the server
9753
9754 d) SUBMIT/RESET buttons can now be customised with an image.
9755 This subsumes the IMAGE type which is now deprecated.
9756
9757 e) Graphical SELECTion menus are now supported, using
9758 the new SHAPE attribute on OPTION elements.
9759
9760 Further extensions are in the pipeline (e.g. table entry,
9761 multiple data formats for textarea fields and client-side
9762 scripts with custom widgets) but will have to wait until
9763 the backlog of implementation work diminishes.
9764 -->
9765
9766 <!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
9767 <!ATTLIST FORM
9768 action %URI #REQUIRED -- server-side form handler --
9769 method (%HTTP-Method) GET -- see HTTP specification --
9770 enctype %Content-Type; "application/x-www-form-urlencoded"
9771 script %URI #IMPLIED -- link to client-side script --
9772 >
9773
9774 <![ %HTML.Deprecated [
9775 <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
9776 | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
9777 ]]>
9778
9779 <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
9780 | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
9781
9782 <!ELEMENT INPUT - O EMPTY>
9783 <!ATTLIST INPUT
9784 %attrs;
9785 type %InputType TEXT
9786 name NAME #IMPLIED -- required for all but submit and reset --
9787 value CDATA #IMPLIED -- required for radio buttons & checkboxes --
9788 disabled (disabled) #IMPLIED -- read-only fields --
9789 error CDATA #IMPLIED -- why field is in error --
9790 checked (checked) #IMPLIED -- for radio buttons and check boxes --
9791 size NUMBER #IMPLIED -- visible width of TEXT fields --
9792 maxlength NUMBER #IMPLIED -- max number of chars for TEXT fields --
9793 min %REAL #IMPLIED -- lower limit for RANGE fields --
9794 max %REAL #IMPLIED -- upper limit for RANGE fields --
9795 accept CDATA #IMPLIED -- list of MIME types for file fields --
9796 src %URI #IMPLIED -- for fields with background images --
9797 %url.link; -- standard link attributes --
9798 align (top|middle|bottom|left|right) top
9799 >
9800
9801 <!--
9802 SRC attribute added for graphical selection menus
9803
9804 Dave Raggett Page 172
9805 HTML 3.0 28th March 1995
9806
9807 The WIDTH, HEIGHT and UNITS attributes apply to the
9808 image specified by the SRC attribute.
9809 -->
9810
9811 <!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
9812 <!ATTLIST SELECT
9813 %attrs;
9814 name CDATA #REQUIRED
9815 multiple (multiple) #IMPLIED
9816 disabled (disabled) #IMPLIED -- read-only menu --
9817 error CDATA #IMPLIED -- why selections are in error --
9818 src %URI #IMPLIED -- for graphical selection menus --
9819 %url.link; -- standard link attributes --
9820 width NUMBER #IMPLIED -- desired width of in en's or pixels --
9821 height NUMBER #IMPLIED -- desired height in en's or pixels --
9822 units (en|pixels) pixels -- units for width and height --
9823 align (top|middle|bottom|left|right) top
9824 >
9825
9826 <!ELEMENT OPTION - O (#PCDATA)>
9827 <!ATTLIST OPTION
9828 %attrs;
9829 selected (selected) #IMPLIED
9830 value CDATA #IMPLIED -- default to element content --
9831 shape %SHAPE; #IMPLIED -- for graphical selection menus --
9832 disabled (disabled) #IMPLIED -- unselectable option --
9833 error CDATA #IMPLIED -- why this choice is in error --
9834 >
9835
9836 <!--
9837 Multi-line text input field. align=left or right
9838 causes the field to float to margin and for
9839 subsequent text to wrap around the field.
9840 -->
9841
9842 <!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
9843 <!ATTLIST TEXTAREA
9844 %attrs;
9845 name CDATA #REQUIRED
9846 rows NUMBER #REQUIRED
9847 cols NUMBER #REQUIRED
9848 disabled (disabled) #IMPLIED -- read-only field --
9849 error CDATA #IMPLIED -- why field is in error --
9850 align (top|middle|bottom|left|right) top
9851 >
9852
9853 <!--======================= Captions ======================================-->
9854
9855 <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
9856 <!ATTLIST CAPTION
9857 %attrs;
9858 align (top|bottom|left|right) #IMPLIED
9859 >
9860
9861 Dave Raggett Page 173
9862 HTML 3.0 28th March 1995
9863
9864 <!--======================= Tables ========================================-->
9865
9866 <!--
9867 Tables and figures can be aligned in several ways:
9868
9869 bleedleft flush left with the left (window) border
9870 left flush left with the left text margin
9871 center centered (text flow is disabled for this mode)
9872 right flush right with the right text margin
9873 bleedright flush right with the right (window) border
9874 justify when applicable the table/figure should stretch
9875 to fill space between the text margins
9876
9877 Note: text will flow around the table or figure if the browser
9878 judges there is enough room and the alignment is not centered
9879 or justified. The table or figure may itself be part of the
9880 text flow around some earlier figure. You can in this case use
9881 the clear or needs attributes to move the new table or figure
9882 down the page beyond the obstructing earlier figure. Similarly,
9883 you can use the clear or needs attributes with other elements
9884 such as headers and lists to move them further down the page.
9885 -->
9886
9887 <!ENTITY % block.align
9888 "align (bleedleft|left|center|right|bleedright|justify) center">
9889
9890 <!--
9891 The HTML 3.0 table model has been chosen for its simplicity
9892 and the ease in writing filters from common DTP packages.
9893
9894 By default the table is automatically sized according to the
9895 cell contents and the current window size. Specifying the columns
9896 widths using the colspec attribute allows browsers to start
9897 displaying the table without having to wait for last row.
9898
9899 The colspec attribute is a list of column widths and alignment
9900 specifications. The columns are listed from left to right with
9901 a capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
9902 The letter is L for left, C for center, R for right alignment of
9903 cell contents. J is for justification, when feasible, otherwise
9904 this is treated in the same way as L for left alignment.
9905 Column entries are delimited by one or more space characters.
9906
9907 The number specifies the width in en's, pixels or as a
9908 fractional value of the table width, as according to the
9909 associated units attribute. This approach is more compact
9910 than used with most SGML table models and chosen to simplify
9911 hand entry. The width attribute allows you to specify the
9912 width of the table in pixels, en units or as a percentage
9913 of the space between the current left and right margins.
9914
9915 To assist with rendering to speech, row and column headers
9916 can be given short names using the AXIS attribute. The AXES
9917
9918 Dave Raggett Page 174
9919 HTML 3.0 28th March 1995
9920
9921 attribute is used to explicitly specify the row and column
9922 names for use with each cell. Otherwise browsers can follow
9923 up columns and left along rows (right for some languages)
9924 to find the corresponding header cells.
9925
9926 Table content model: Braille limits the width of tables,
9927 placing severe limits on column widths. User agents need
9928 to render big cells by moving the content to a note placed
9929 before the table. The cell is then rendered as a link to
9930 the corresponding note.
9931
9932 To assist with formatting tables to paged media, authors
9933 can differentiate leading and trailing rows that are to
9934 be duplicated when splitting tables across page boundaries.
9935 The recommended way is to subclass rows with the CLASS attribute
9936 For example: <TR CLASS=Header>, <TR CLASS=Footer> are used for
9937 header and footer rows. Paged browsers insert footer rows at
9938 the bottom of the current page and header rows at the top of
9939 the new page, followed by the remaining body rows.
9940 -->
9941
9942 <!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
9943 <!ATTLIST TABLE
9944 %attrs;
9945 %needs; -- for control of text flow --
9946 border (border) #IMPLIED -- draw borders --
9947 colspec CDATA #IMPLIED -- column widths and alignment --
9948 units (en|pixels|relative) en -- units for column widths --
9949 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
9950 width NUMBER #IMPLIED -- absolute or percentage width --
9951 %block.align; -- horizontal alignment --
9952 noflow (noflow) #IMPLIED -- noflow around table --
9953 nowrap (nowrap) #IMPLIED -- don't wrap words --
9954 >
9955
9956 <!ENTITY % cell "TH | TD">
9957 <!ENTITY % horiz.align "left|center|right|justify">
9958 <!ENTITY % vert.align "top|middle|bottom|baseline">
9959
9960 <!--
9961 Browsers should tolerate an omission of the first <TR>
9962 tag as it is implied by the context. Missing trailing
9963 <TR>s implied by rowspans should be ignored.
9964
9965 The alignment attributes act as defaults for rows
9966 overriding the colspec attribute and being in turn
9967 overridden by alignment attributes on cell elements.
9968 Use valign=baseline when you want to ensure that text
9969 in different cells on the same row is aligned on the
9970 same baseline regardless of fonts. It only applies
9971 when the cells contain a single line of text.
9972 -->
9973
9974
9975 Dave Raggett Page 175
9976 HTML 3.0 28th March 1995
9977
9978 <!ELEMENT TR - O (%cell)* -- row container -->
9979 <!ATTLIST TR
9980 %attrs;
9981 align (%horiz.align) #IMPLIED -- horizontal alignment --
9982 valign (%vert.align) top -- vertical alignment --
9983 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
9984 nowrap (nowrap) #IMPLIED -- don't wrap words --
9985 >
9986
9987 <!--
9988 Note that table cells can include nested tables.
9989 Missing cells are considered to be empty, while
9990 missing rows should be ignored, i.e. if a cell
9991 spans a row and there are no further TR elements
9992 then the implied row should be ignored.
9993 -->
9994
9995 <!ELEMENT (%cell) - O %body.content>
9996 <!ATTLIST (%cell)
9997 %attrs;
9998 colspan NUMBER 1 -- columns spanned --
9999 rowspan NUMBER 1 -- rows spanned --
10000 align (%horiz.align) #IMPLIED -- horizontal alignment --
10001 valign (%vert.align) top -- vertical alignment --
10002 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
10003 nowrap (nowrap) #IMPLIED -- don't wrap words --
10004 axis CDATA #IMPLIED -- axis name, defaults to element content --
10005 axes CDATA #IMPLIED -- comma separated list of axis names --
10006 >
10007
10008 <!--====================== Figures ========================================-->
10009
10010 <!--
10011 The element contains text for use in non-graphical displays. Note that
10012 you can use the shape attribute in anchors to specify hotzones on images.
10013 This provides for local processing of pointer clicks and a unified method
10014 for dealing with graphical and non-graphical displays.
10015
10016 Text is flowed around figures when the figure is left or right aligned.
10017 You can request the browser to move down until there is enough room for
10018 the next element, see the CLEAR and NEED attributes (in %needs)
10019
10020 Figures offer a path towards embedding arbitrary information formats
10021 via some kind of OLE/OpenDoc mechanism.
10022 -->
10023
10024 <!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
10025 <!ATTLIST FIG
10026 %attrs;
10027 %needs; -- for control of text flow --
10028 src %URI; #REQUIRED -- URI of document to embed --
10029 %url.link; -- standard link attributes --
10030 %block.align; -- horizontal alignment --
10031
10032 Dave Raggett Page 176
10033 HTML 3.0 28th March 1995
10034
10035 noflow (noflow) #IMPLIED -- noflow around figure --
10036 width NUMBER #IMPLIED -- desired width in units --
10037 height NUMBER #IMPLIED -- desired height in units --
10038 units (en|pixels) pixels -- specifies units as en's or pixels --
10039 imagemap (%URI) #IMPLIED -- pass background clicks to server --
10040 >
10041
10042 <!ELEMENT FIGTEXT O O %body.content -- dummy element -->
10043
10044 <!--
10045 Figure overlays. When combined with local caching, overlays
10046 provide a cheap way of modifying a larger base image sent as
10047 part of a previous page.
10048 -->
10049
10050 <!ELEMENT OVERLAY - O EMPTY -- image overlay -->
10051 <!ATTLIST OVERLAY
10052 src %URI; #REQUIRED -- URI of image overlay --
10053 %url.link; -- standard link attributes --
10054 units (en|pixels) pixels -- specifies units as en's or pixels --
10055 x NUMBER 0 -- offset from left in units --
10056 y NUMBER 0 -- offset from top in units --
10057 width NUMBER #IMPLIED -- desired width in units --
10058 height NUMBER #IMPLIED -- desired height in units --
10059 imagemap (%URI) #IMPLIED -- pass background clicks to server --
10060 >
10061
10062 <!ELEMENT CREDIT - - (%text;)* -- source of image -->
10063 <!ATTLIST CREDIT
10064 %attrs;
10065 >
10066
10067 <!--======================== Notes ========================================-->
10068
10069 <!--
10070 The NOTE element is used for admonishments. The CLASS attribute
10071 is used to differentiate NOTE's, e.g. Note, Caution or Warning.
10072 -->
10073
10074 <!ELEMENT NOTE - - %body.content; -- admonishment -->
10075 <!ATTLIST NOTE
10076 %attrs;
10077 src %URI; #IMPLIED -- URI of custom graphic --
10078 %url.link; -- standard link attributes --
10079 %needs; -- for control of text flow --
10080 >
10081
10082 <!--======================== Footnotes ====================================-->
10083
10084 <!--
10085 Typically rendered as popup note. These elements are referenced
10086 by hypertext links specified with the anchor element.
10087 -->
10088
10089 Dave Raggett Page 177
10090 HTML 3.0 28th March 1995
10091
10092 <!ELEMENT FN - - %body.content;>
10093 <!ATTLIST FN %attrs;>
10094
10095 <!--======================== Math ========================================-->
10096
10097 <!-- Use &thinsp; &emsp; etc for greater control of spacing. -->
10098
10099 <!-- Subscripts and Superscripts
10100
10101 <SUB> and <SUP> are used for subscripts and superscripts.
10102
10103 i j
10104 X <SUP>i</SUP>Y<SUP>j</SUP> is X Y
10105
10106 i.e. the space following the X disambiguates the binding.
10107 The align attribute can be used for horizontal alignment,
10108 e.g. to explicitly place an index above an element:
10109 i
10110 X<sup align=center>i</sup> produces X
10111
10112 Short references are defined for superscripts, subscripts and boxes
10113 to save typing when manually editing HTML math, e.g.
10114
10115 x^2^ is mapped to x<sup>2</sup>
10116 y_z_ is mapped to y<sub>z</sub>
10117 {a+b} is mapped to <box>a + b</box>
10118
10119 Note that these only apply within the MATH element and can't be
10120 used in normal text!
10121 -->
10122 <!ENTITY REF1 STARTTAG "SUP">
10123 <!ENTITY REF2 ENDTAG "SUP">
10124 <!ENTITY REF3 STARTTAG "SUB">
10125 <!ENTITY REF4 ENDTAG "SUB">
10126 <!ENTITY REF5 STARTTAG "BOX">
10127 <!ENTITY REF6 ENDTAG "BOX">
10128
10129 <!USEMAP MAP1 MATH>
10130 <!USEMAP MAP2 SUP>
10131 <!USEMAP MAP3 SUB>
10132 <!USEMAP MAP4 BOX>
10133
10134 <!SHORTREF MAP1 "^" REF1
10135 "_" REF3
10136 "{" REF5 >
10137
10138 <!SHORTREF MAP2 "^" REF2
10139 "_" REF3
10140 "{" REF5 >
10141
10142 <!SHORTREF MAP3 "_" REF4
10143 "^" REF1
10144 "{" REF5 >
10145
10146 Dave Raggett Page 178
10147 HTML 3.0 28th March 1995
10148
10149
10150 <!SHORTREF MAP4 "}" REF6
10151 "^" REF1
10152 "_" REF3
10153 "{" REF5 >
10154
10155 <!--
10156 The inclusion of %math and exclusion of %notmath is used here
10157 to alter the content model for the B, SUB and SUP elements,
10158 to limit them to formulae rather than general text elements.
10159 -->
10160
10161 <!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
10162 <!ENTITY % mathface "B|T|BT" -- control of font face -->
10163 <!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
10164 <!ENTITY % formula "#PCDATA|%math">
10165
10166 <!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
10167 <!ATTLIST MATH
10168 id ID #IMPLIED
10169 class NAMES #IMPLIED -- e.g. class=chem -->
10170
10171 <!-- The BOX element acts as brackets. Delimiters are optional and
10172 stretch to match the height of the box. The OVER element is used
10173 when you want a line between numerator and denominator. This line
10174 is suppressed with the alternative ATOP element. CHOOSE acts like
10175 ATOP but adds enclosing round brackets as a convenience for binomial
10176 coefficients. Note the use of { and } as shorthand for <BOX> and
10177 </BOX> respectively:
10178
10179 1 + X
10180 {1 + X<OVER>Y} is _______
10181 Y
10182
10183 a + b
10184 {a + b<ATOP>c - d} is
10185 c - d
10186
10187 The delimiters are represented using the LEFT and RIGHT
10188 elements as in:
10189
10190 {[<LEFT>x + y<RIGHT>]} is [ x + y ]
10191 {(<LEFT>a<RIGHT>]} is (a]
10192 {||<LEFT>a<RIGHT>||} is || a ||
10193
10194 Use &lbrace; and &rbrace; for "{" and "}" respectively as
10195 these symbols are used as shorthand for BOX, e.g.
10196
10197 {&lbrace;<LEFT>a+b<RIGHT>&rbrace;} is {a+b}
10198
10199 You can stretch definite integrals to match the integrand, e.g.
10200
10201 {&int;<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
10202
10203 Dave Raggett Page 179
10204 HTML 3.0 28th March 1995
10205
10206
10207 b
10208 / f(x)
10209 | ----- dx
10210 / 1 + x
10211 a
10212
10213 Note the complex content model for BOX is a work around
10214 for the absence of support for infix operators in SGML.
10215
10216 You can get oversize delimiters with the SIZE attribute,
10217 for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
10218
10219 Note that the names of common functions are recognized
10220 by the parser without the need to use "&" and ";" around
10221 them, e.g. int, sum, sin, cos, tan, ...
10222 -->
10223
10224 <!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
10225 ((OVER|ATOP|CHOOSE), (%formula)*)?,
10226 (RIGHT, (%formula)*)?)>
10227 <!ATTLIST BOX
10228 size (normal|medium|large|huge) normal -- oversize delims -->
10229
10230 <!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
10231
10232 <!-- Horizontal line drawn ABOVE contents
10233 The symbol attribute allows authors to supply
10234 an entity name for an accent, arrow symbol etc.
10235 Generalisation of LaTeX's overline command.
10236
10237 e.g. <above sym=ssmile>x</above>
10238 places an upwardly turning curve above the "x"
10239 -->
10240
10241 <!ELEMENT ABOVE - - (%formula)+>
10242 <!ATTLIST ABOVE sym ENTITY #IMPLIED>
10243
10244 <!-- Horizontal line drawn BELOW contents
10245 The symbol attribute allows authors to
10246 supply an entity name for an arrow symbol etc.
10247 Generalisation of LaTeX's underline command.
10248 -->
10249
10250 <!ELEMENT BELOW - - (%formula)+>
10251 <!ATTLIST BELOW sym ENTITY #IMPLIED>
10252
10253 <!-- Convenience tags for common accents:
10254 vec, bar, dot, ddot, hat and tilde
10255 -->
10256
10257 <!ELEMENT (%mathvec) - - (%formula)+>
10258
10259
10260 Dave Raggett Page 180
10261 HTML 3.0 28th March 1995
10262
10263 <!--
10264 T and BT are used to designate terms which should
10265 be rendered in an upright font (& bold face for BT)
10266 -->
10267
10268 <!ELEMENT (T|BT) - - (%formula)+>
10269 <!ATTLIST (T|BT) class NAMES #IMPLIED>
10270
10271 <!-- Roots e.g. <ROOT>3<OF>1+x</ROOT> -->
10272
10273 <!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
10274 <!ELEMENT OF - O (%formula)* -- what the root applies to -->
10275
10276 <!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
10277
10278 <!-- LaTeX like arrays. The COLDEF attribute specifies
10279 a single capital letter for each column determining
10280 how the column should be aligned, e.g. coldef="CCC"
10281
10282 "L" left
10283 "C" center
10284 "R" right
10285
10286 An optional separator letter can occur between columns
10287 and should be one of + - or =, e.g. "C+C+C+C=C".
10288 Whitespace within coldef is ignored. By default, the
10289 columns are all centered.
10290
10291 The ALIGN attribute alters the vertical position of the
10292 array as compared with preceding and following expressions.
10293
10294 Use LDELIM and RDELIM attributes for delimiter entities.
10295 When the LABELS attribute is present, the array is
10296 displayed with the first row and the first column as
10297 labels displaced from the other elements. In this case,
10298 the first element of the first row should normally be
10299 left blank.
10300
10301 Use &vdots; &cdots; and &ddots; for vertical, horizontal
10302 and diagonal ellipsis dots. Use &dotfill; to fill an array
10303 cell with horizontal dots (e.g. for a full row).
10304 Note &ldots; places the dots on the baseline, while &cdots;
10305 places them higher up.
10306 -->
10307
10308 <!ELEMENT ARRAY - - (ROW)+>
10309 <!ATTLIST ARRAY
10310 align (top|middle|bottom) middle -- vertical alignment --
10311 coldef CDATA #IMPLIED -- column alignment and separator --
10312 ldelim CDATA #IMPLIED -- stretchy left delimiter --
10313 rdelim CDATA #IMPLIED -- stretchy right delimiter --
10314 labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
10315
10316
10317 Dave Raggett Page 181
10318 HTML 3.0 28th March 1995
10319
10320 <!ELEMENT ROW - O (ITEM)*>
10321 <!ELEMENT ITEM - O (%formula)*>
10322 <!ATTLIST ITEM
10323 align CDATA #IMPLIED -- override coldef alignment --
10324 colspan NUMBER 1 -- merge columns as per TABLE --
10325 rowspan NUMBER 1 -- merge rows as per TABLE -->
10326
10327 <!--================ Document Head ========================================-->
10328
10329 <![ %HTML.Deprecated [
10330 <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
10331 & META* & LINK* & RANGE* & NEXTID?">
10332 ]]>
10333
10334 <!ENTITY % head.nextid "">
10335
10336 <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
10337 & META* & LINK* & RANGE*">
10338
10339 <!ELEMENT HEAD O O (%head.content)>
10340
10341 <!ELEMENT LINK - O EMPTY>
10342 <!ATTLIST LINK
10343 href %URI #REQUIRED
10344 %linkExtraAttributes; >
10345
10346 <!ELEMENT RANGE - O EMPTY>
10347 <!ATTLIST RANGE
10348 id ID #IMPLIED -- for naming marked range --
10349 class NAMES #IMPLIED -- for subclassing --
10350 from IDREF #REQUIRED -- start of marked range --
10351 until IDREF #REQUIRED -- end of marked range --
10352 >
10353
10354 <!ELEMENT ISINDEX - O EMPTY>
10355 <!ATTLIST ISINDEX
10356 href %URI #IMPLIED -- server handling queries --
10357 prompt CDATA #IMPLIED -- prompt message -->
10358
10359 <!--
10360 The BASE element gives the base URL for
10361 dereferencing relative URLs, e.g.
10362
10363 <BASE href="http://foo.com/images">
10364 ...
10365 <IMG SRC="bar.gif">
10366
10367 The image is deferenced to
10368
10369 http://foo.com/images/bar.gif
10370 -->
10371
10372 <!ELEMENT BASE - O EMPTY>
10373
10374 Dave Raggett Page 182
10375 HTML 3.0 28th March 1995
10376
10377 <!ATTLIST BASE
10378 id ID #IMPLIED
10379 href %URI; #REQUIRED
10380 >
10381
10382 <![ %HTML.Deprecated [
10383 <!ELEMENT NEXTID - O EMPTY>
10384 <!ATTLIST NEXTID N CDATA #REQUIRED>
10385 ]]>
10386
10387 <!ELEMENT META - O EMPTY -- Generic Metainformation -->
10388 <!ATTLIST META
10389 http-equiv NAME #IMPLIED -- HTTP response header name --
10390 name NAME #IMPLIED -- metainformation name --
10391 content CDATA #REQUIRED -- associated information --
10392 >
10393
10394 <!--
10395 A style sheet can be associated with the document using the
10396 LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
10397 Style overrides can be placed in the document head using the
10398 STYLE element, e.g.
10399
10400 <style notation=dsssl-lite>
10401 dsss-lite stuff
10402 </style>
10403
10404 Later on in the document you can use:
10405
10406 <h2 class=bigcaps>Header with bigger than normal capitals</h2>
10407 <p class=abstract>A paragraph with a unique style of its own
10408 ...
10409
10410 Statements in the given style notation
10411
10412 The tag names, class and id attributes are used in the style sheet
10413 notation to describe how to render matching elements.
10414 -->
10415
10416 <!ENTITY % style-notations "dsssl-lite | w3c-style">
10417 <!NOTATION dsssl-lite PUBLIC
10418 "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
10419
10420 <!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
10421
10422 <!ELEMENT STYLE - O (#PCDATA)>
10423 <!ATTLIST STYLE
10424 notation NOTATION (%style-notations;) #REQUIRED
10425 >
10426
10427 <!--================ Document Structure ===================================-->
10428
10429 <!ENTITY % html.content "HEAD, BODY">
10430
10431 Dave Raggett Page 183
10432 HTML 3.0 28th March 1995
10433
10434
10435 <!ELEMENT HTML O O (%html.content)>
10436 <!ENTITY % version.attr 'VERSION CDATA #FIXED "&HTML.Version;"'>
10437
10438 <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
10439
10440 <!ATTLIST HTML
10441 %version.attr; -- report DTD version to application --
10442 urn CDATA #IMPLIED -- universal resource name for this document --
10443 class NAMES #IMPLIED -- role of this document, eg table of contents --
10444 >
10445
10446 <!-- The END -->
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488 Dave Raggett Page 184
10489 HTML 3.0 28th March 1995
10490
10491 Glossary of Terms
10492
10493 Pasted from HTML 2.0 spec, this is now under revision ...
10494
10495 ------------------------------------------------------------------------------
10496 The HTML specification uses these words with precise meanings:
10497
10498
10499
10500 attribute
10501 A characteristic quality of an element, other than type or
10502 content.
10503
10504
10505
10506 browser
10507 A tool used to read electronic books.
10508
10509
10510
10511 document
10512 For the purposes of this standard, an HTML instance.
10513
10514
10515
10516 element
10517 A component of the hierarchical structure defined by the
10518 document type definition; it is identified in a document
10519 instance by descriptive markup, usually a start-tag and an
10520 end-tag.
10521
10522
10523
10524 HTML
10525 HyperText Markup Language.
10526
10527
10528
10529 HTTP
10530 A generic stateless object-oriented protocol, which may be used
10531 for many similar tasks by extending the commands, or "methods",
10532 used. For example, you might use HTTP for name servers and
10533 distributed object-oriented systems, With HTTP, the negotiation
10534 of data representation allows systems to be built independent of
10535 the development of new representations. For more information
10536 see: http://www.w3.org/hypertext/WWW/Protocols/Overview.html
10537
10538
10539
10540 markup
10541 Text added to the data of a document to convey information about
10542 it. There are four different kinds of markup: descriptive markup
10543 (tags), references, markup declarations, and processing
10544
10545 Dave Raggett Page 185
10546 HTML 3.0 28th March 1995
10547
10548 instructions.
10549
10550
10551
10552 MIME
10553 Multipurpose Internet Mail Extensions as defined in Mechanisms
10554 for Specifying and Describing the Format of Internet Message
10555 Bodies, 09/23/1993. (Pages=81) (Format=.txt, .ps) (Obsoletes
10556 RFC1341) (Updated by RFC1590).
10557
10558
10559
10560 representation
10561 The encoding of information for interchange. For example, HTML
10562 is a representation of hypertext.
10563
10564
10565
10566 rendering
10567 Formatting and presenting information to human readers.
10568
10569
10570
10571 SGML
10572 Standard Generalized Markup Language as defined in ISO
10573 8879:1986, Information Processing Text and Office Systems.
10574
10575
10576
10577 SGMLS
10578 An SGML parser by James Clark, jjc@jclark.com, derived from the
10579 ARCSGML parser materials which were written by Charles F.
10580 Goldfarb. The source is available at
10581 ftp.ifi.uio.no/pub/SGML/SGMLS.
10582
10583
10584
10585 tag
10586 Descriptive markup. There are two kinds of tags; start-tags and
10587 end-tags.
10588
10589
10590
10591 URI
10592 Universal Resource Identifiers. Available by anonymous FTP as
10593 Postscript (www.w3.org/pub/www/doc/url.ps) or text
10594 (www.w3.org/pub/www/doc/url.txt)
10595
10596
10597
10598 W3
10599 The World-Wide Web, a global information initiative. For
10600 bootstrap information, telnet www.w3.org or find documents at
10601
10602 Dave Raggett Page 186
10603 HTML 3.0 28th March 1995
10604
10605 ftp://www.w3.org/pub/www/doc
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659 Dave Raggett Page 187
10660 HTML 3.0 28th March 1995
10661
10662 References
10663
10664 Under revision ..
10665
10666 ------------------------------------------------------------------------------
10667 The HTML specification cites these works:
10668
10669
10670
10671 HTTP
10672 HTTP: A Protocol for Networked Information. This document is
10673 available at http://www.w3.org/WWW/Protocols/HTTP/HTTP2.html.
10674
10675
10676
10677 MIME
10678 N. Borenstein, N. Freed, MIME (Multipurpose Internet Mail
10679 Extensions) Part One: Mechanisms for Specifying and Describing
10680 the Format of Internet Message Bodies, 09/23/1993. (Pages=81)
10681 (Format=.txt, .ps) (Obsoletes RFC1341) (Updated by RFC1590).
10682
10683
10684
10685 SGML
10686 ISO 8879:1986, Information Processing Text and Office Systems
10687 Standard Generalized Markup Language (SGML).
10688
10689
10690
10691 SGMLS
10692 An SGML parser by James Clark, jjc@jclark.com, derived from the
10693 ARCSGML parser materials which were written by Charles F.
10694 Goldfarb. The source is available at
10695 ftp.ifi.uio.no/pub/SGML/SGMLS.
10696
10697
10698
10699 URI
10700 Universal Resource Identifiers. RFCxxx. Available by anonymous
10701 FTP as Postscript (info.cern.ch/pub/www/doc/url.ps) or text
10702 (info.cern.ch/pub/www/doc/url.txt)
10703
10704
10705
10706 W3
10707 The World-Wide Web , a global information initiative. For
10708 bootstrap information, telnet info.cern.ch or find documents by
10709 ftp://info.cern.ch/pub/www/doc.
10710
10711
10712
10713
10714
10715
10716 Dave Raggett Page 188
10717 HTML 3.0 28th March 1995
10718
10719 Acknowledgments
10720
10721 Pasted from HTML 2.0 spec, this section is under revision ...
10722
10723 ------------------------------------------------------------------------------
10724 The HTML document type was designed by Tim Berners-Lee at CERN as
10725 part of the 1990 World-Wide Web project. In 1992, Dan Connolly wrote
10726 the HTML Document Type Definition (DTD) and a brief HTML
10727 specification.
10728
10729 Since 1993, a wide variety of Internet participants have contributed
10730 to the evolution of HTML. NCSA Mosaic played a particularly
10731 important role in establishing HTML. Mosaic pioneered the addition
10732 of in-line images, image maps, nested lists and fill-out forms
10733 (derived from work on HTML+). Minor variations in the way extensions
10734 were supported by different browsers eventually led to the setting
10735 up of the HTML working group. The HTML 2.0 specification sets out a
10736 definitive standard for HTML, formalizing the de facto situation
10737 during 1994.
10738
10739 HTML+ was the result of my work on possible directions for extending
10740 HTML to meet the needs of information providers, e.g. to support
10741 forms, tables, text flow around figures and math. This work has now
10742 culminated in the current HTML 3.0 specification, which adds a range
10743 of important new features to HTML while preserving simplicity and
10744 backwards compatibility with existing documents.
10745
10746 I would like to express my special thanks to members of the Internet
10747 community on the www-talk, www-html and html-wg mailing lists; to
10748 people who have written to me in person, and to members of the
10749 SGML-Open who have been very supportive of the Web initiative.
10750 Thanks also to Hewlett Packard for funding my work on HTML.
10751
10752 Particular thanks are due to:
10753
10754 * Terry Allen; O'Reilly & Associates; terry@ora.com
10755
10756 * Marc Andreessen; Netscape Communications Corp;
10757 marca@netscape.com
10758
10759 * Eric Bina; Netscape Communications Corp; ebina@netscape.com
10760
10761 * Paul Burchard; The Geometry Center, University of Minnesota;
10762 burchard@geom.umn.edu
10763
10764 * James Clark; jjc@jclark.com
10765
10766 * Daniel W. Connolly; HaL Computer Systems; connolly@hal.com
10767
10768 * Stephen DeRose; EBT; ??? steve@ebt.com
10769
10770 * Roy Fielding; University of California, Irvine;
10771 fielding@ics.uci.edu
10772
10773 Dave Raggett Page 189
10774 HTML 3.0 28th March 1995
10775
10776
10777 * Jay Glicksman; Enterprise Integration Technology; jay@eit.com
10778
10779 * Eduardo Gutentag; Sun Microsystems; eduardo@Eng.Sun.com
10780
10781 * Bill Hefley; Software Engineering Institute, Carnegie Mellon
10782 University; weh@sei.cmu.edu
10783
10784 * Chung-Jen Ho; Xerox Corporation; cho@xsoft.xerox.com
10785
10786 * Mike Knezovich; Spyglass, Inc.; mike@spyglass.com
10787
10788 * Tim Berners-Lee; CERN; timbl@info.cern.ch
10789
10790 * Tom Magliery; NCSA; mag@ncsa.uiuc.edu
10791
10792 * Murray Maloney; SCO Canada; murray@sco.com
10793
10794 * Larry Masinter; Xerox Palo Alto Research Center;
10795 masinter@parc.xerox.com
10796
10797 * Karen Olson Muldrow; HaL Computer Systems; karen@hal.com
10798
10799 * Bill Perry, Spry, Inc., wmperry@spry.com
10800
10801 * E. Corprew Reed; Cold Spring Harbor Laboratory; corp@cshl.org
10802
10803 * Yuri Rubinsky; SoftQuad, Inc.; yuri@sq.com
10804
10805 * Eric Schieler; Spyglass, Inc.; eschieler@spyglass.com
10806
10807 * Eric Severson; Avalanche, Inc.; ??? severson@avalanche.com
10808
10809 * Eric W. Sink; Spyglass, Inc.; eric@spyglass.com
10810
10811 * Stuart Weibel; OCLC Office of Research; weibel@oclc.org
10812
10813 * Chris Wilson; Spry, Inc.; cwilson@spry.com
10814
10815 Dave Raggett <dsr@w3.org>, February 1995.
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830 Dave Raggett Page 190
10831

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24