Comparison of layout engines (HTML)
From Wikipedia, the free encyclopedia
HTML |
---|
Character encodings |
The following tables compare HTML compatibility and support for a number of layout engines. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.
Only HTML 4 and XHTML 1 served as text/html
(so called "HTML compatible" XHTML) are considered. XHTML 2 is not considered as it is a redefinition of XHTML, which is not backward compatible. For more XHTML-related comparisons, please refer to comparison of layout engines (XHTML).
Version number, if possible, is provided for feature that is fully supported (based on HTML 4.01). Proprietary extensions are not included.
[edit] NB: Engine Nomenclature
Layout Engine | Used By |
---|---|
Trident | Internet Explorer |
Tasman | Internet Explorer for Mac |
Gecko | All Mozilla software |
WebCore | Mac OS X (Safari) |
KHTML | KDE |
Presto | Opera |
Robin | The Bat! |
iCab | iCab |
[edit] DOCTYPE sniffing
The way that the engines determine standards mode, quirks mode, or almost standards mode.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | Robin | iCab | ||
---|---|---|---|---|---|---|---|---|---|
XHTML 1.1 | |||||||||
Strict | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | Standards | ? | Standards | ? | Standards | Standards | ? | ? |
XHTML 1.0 | |||||||||
Strict | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | Standards | ? | Standards | ? | Standards | Standards | ? | ? |
Transitional | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | Standards | ? | Almost | ? | Standards | Standards | ? | ? |
Frameset | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> | Standards | ? | Almost | ? | Standards | Standards | ? | ? |
HTML 4.01 | |||||||||
Strict | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | Standards | ? | Standards | ? | Standards | Standards | ? | ? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> | Standards | ? | Standards | ? | Standards | Standards | ? | ? | |
Transitional | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | Standards | Standards | Almost | ? | Standards | Standards | ? | ? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | Quirks | Quirks | Quirks | ? | Quirks | Quirks | ? | ? | |
Frameset | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> | Standards | ? | Almost | ? | Standards | Standards | ? | ? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> | Quirks | ? | Quirks | ? | Quirks | Quirks | ? | ? | |
HTML 4.0 | |||||||||
Strict | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> | Standards | Standards | Standards | ? | Standards | Standards | ? | ? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> | Standards | ? | Standards | ? | Standards | Standards | ? | ? | |
Transitional | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> | Standards | ? | Quirks | ? | Quirks | Standards | ? | ? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | Quirks | ? | Quirks | ? | Quirks | Quirks | ? | ? | |
Frameset | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd"> | Standards | ? | Quirks | ? | Quirks | Standards | ? | ? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"> | Quirks | ? | Quirks | ? | Quirks | Quirks | ? | ? | |
Trident | Tasman | Gecko | WebCore | KHTML | Presto | Robin | iCab |
[edit] General DOCTYPE sniffing notes
- Quirks mode — Emulates non-standard behaviors in Navigator 4 and MSIE. Generally used in HTML without DOCTYPE and HTML 3 or below. The amount of emulation differs between the layout engines, e.g. Gecko and Presto use the standardized W3C box layout model even in quirks mode. Thus the results are quite unpredictable in this mode.
- Standards mode — Follows W3C's recommendations.
[edit] Gecko DOCTYPE sniffing notes
- Almost standards mode — Implements the vertical sizing of table cells traditionally and not rigorously according to the CSS2 specification. Almost standards mode was created after 1.0 and 1.1alpha, but before 1.0.1 and 1.1beta. This mode is, however, similar to the standard modes of Trident, Presto and WebCore. Before almost standards mode was created these DOCTYPEs triggered standards mode.
[edit] Global structure elements
The global structure of the document.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | Robin | iCab | |
---|---|---|---|---|---|---|---|---|
Basic structure | ||||||||
html | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
head | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
body | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
Metadata | ||||||||
title | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
meta | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
Headings | ||||||||
h1 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
h2 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
h3 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
h4 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
h5 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
h6 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
Grouping elements | ||||||||
div | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
span | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
[edit] Text elements
Elements that represent text.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | Robin | iCab | |
---|---|---|---|---|---|---|---|---|
Phrase | ||||||||
em | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
strong | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
dfn | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
code | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
samp | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
kbd | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
var | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
cite | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
abbr | 7.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
acronym | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
Quotations | ||||||||
blockquote | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
q | No | Yes | 1.8 | Yes | Yes | 7.0 | ? | Yes |
Subscripts and superscripts | ||||||||
sub | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
sup | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
Lines and paragraphs | ||||||||
p | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
pre | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
br | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
Marking document changes | ||||||||
ins | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
del | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? | Yes |
[edit] Gecko text element notes
- q — Does not support nested quotes prior to 1.8 [1].
[edit] List elements
Elements that represent lists of information.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Unordered and ordered lists | |||||||
ul | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
ol | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
li | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Definition lists | |||||||
dl | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
dt | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
dd | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Table elements
Elements that represent tabular information.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Basic table elements | |||||||
table | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
caption | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
tr | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
th | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
td | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Row groups | |||||||
thead | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
tfoot | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? |
tbody | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Column groups | |||||||
colgroup | 4.0 | ? | No | Yes | Yes | 7.0 | Yes |
col | 4.0 | ? | No | Yes | Yes | 7.0 | Yes |
[edit] Link elements
Hyperlinks, one of the primary forces driving the success of the World Wide Web.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
a | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
link | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
base | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Multimedia elements
Multimedia features including images, applets , video clips, and other HTML documents.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Images | |||||||
img | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Generic inclusion | |||||||
object | Incorrect | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
param | 6.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Image maps | |||||||
map | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
area | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Deprecated | |||||||
applet | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Trident multimedia element notes
- object — For images, a frame will be added to the object. Other content types are not supported and the element is incorrectly implemented as an ActiveX wrapper. Nested objects fallback mechanism is not supported prior to version 7. [2] [3]
[edit] Frame elements
Elements to present documents in multiple views, which may be independent windows or subwindows. Frame layout is only available in the frameset profiles. All frames are not available in XHTML 1.1 (use generic object elements instead for inline frames).
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Frame layout | |||||||
frameset | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
frame | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
noframes | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Inline frames | |||||||
iframe | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Form elements
The user interface controls for interacting with the web server.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Basic structure | |||||||
form | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
fieldset | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
legend | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Form controls and labels | |||||||
input | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
textarea | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
button | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
label | 4.0 | Yes | 1.0 | Partial | 3.4.2 | 7.0 | Yes |
List boxes (combo boxes) | |||||||
select | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
optgroup | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
option | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] WebCore form elements notes
- label — Clicking on label does not focus on the corresponding form control. This has been fixed in the nightly build of WebCore.
[edit] KHTML form elements notes
- label — Label is focusable prior to 3.4.2.
[edit] Presentational elements
Elements that specify presentational information. Although not all elements are deprecated, their use is discouraged in favor of stylesheets. Deprecated elements are not available in the strict profiles and XHTML 1.1.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Font styles | |||||||
b | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
i | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
big | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
small | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
tt | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Horizontal rules | |||||||
hr | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Deprecated | |||||||
u | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
s | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
strike | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Stylesheet elements
The ways to apply stylesheets (CSS) to the document.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Using link element | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
style | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Script elements
Elements for embedding client-side script (JavaScript). See also DOM Events for a list of attributes used to attach an event handler to an element.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
script | 6.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] Language elements
Elements related to language information.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
bdo | 5.0 | ? | 1.0 | Yes | Partial | 7.0 | ? |
[edit] KHTML language element notes
- bdo — While alphabetic and alphanumeric words are affected, numeric (numbers only) words are not.
[edit] Generic attributes
Attributes that can be used in any elements.
Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
---|---|---|---|---|---|---|---|
Element identifiers | |||||||
id | 3.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
class | 3.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Inline styles | |||||||
style | 3.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Advisory information | |||||||
title | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Language information | |||||||
lang | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
dir | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
[edit] References
- MSDN Library. CSS Enhancements in Internet Explorer 6. Retrieved on May 1, 2005.
- Mozilla Developer Documentation. Mozilla's DOCTYPE sniffing. Retrieved on May 1, 2005.
- Opera Documentation. The Opera 7 and 8 DOCTYPE Switches. Retrieved on May 1, 2005.
- Opera Documentation. Specification support - HTML. Retrieved on May 1, 2005.
- O'Reilly Network. Use the Right Doctype. Retrieved on May 1, 2005.
- Apple Developer Connection. Safari HTML Reference. Retrieved on July 14, 2005.
[edit] See also
- Comparison of layout engines
- Comparison of layout engines (XML)
- Comparison of layout engines (XHTML)
- Comparison of layout engines (graphics)
- Comparison of layout engines (CSS)
- Comparison of layout engines (DOM)
- Comparison of layout engines (WHATWG)
[edit] External links
- webref.info HTML Reference
- Activating the Right Layout Mode Using the Doctype Declaration
- Doctypes and their respective layout mode
- HTML Support History
- Web browser HTML support
- W3Schools XHTML 1.0 Reference