Berners-Lee, Tim, and Dan Connolly. "Hypertext markup language-2.0." (1995).
Raggett, Dave. "A History of HTML, Chapter 2." (1998).
wikipedia's html page
Mozilla's resources page, including some nice introductory material
Head First HTML, Robson & Freeman, O'Reilly
Invented by Berners-Lee in 1990
He was a physicist, not a computer scientist
He requested funding with Robert Cailliau, but his request was denied by CERN.
Initial specification online in late 1991
By Berners-Lee alone
Included 18 elements, 11 of which are still in html4.
Links aside, heavily influenced by SGML and CERN's SGMLguid documentation.
SGML is "standard generalized markup language"
versions
HTML1: first formal specification in 1993
By Berners-Lee and Dan Connelly
Published by IETF
included the image tag adopted from Mosaic project
HTML2: first standard version in 1995
published by an IETF working group
Capabilities: form file upload, tables, client image maps.
HTML3: in early 1997
This and later versions maintained by W3C, with corporate advice
This version not really adopted by commerce, which was leaving the standard behind
Browser wars had companies creating non-standard features.
Capabilities: dropped math formulas and blinks
HTML4: published in late 1997
an ISO standard in 2000
Largely unified the non standard html components out there.
Capabilities: deprecates Netscape's presentational markup in favor of CSS
HTML5: published in 2008
Breaks direct links back to SGML
Makes presentational markup obsolete (but still rendered)
Adds new technologies such as graphics and video
HTML (content)
structure
order
importance
CSS (presentation)
appearance
layout
Javascript and server scripting (behavior)
Javascript: client side
PHP, Perl, Python: server side
Elements
Everything in an html document is an element
Syntax: <tag attrib1="value1" attrib2="value2">content</tag>
ending tag always begins with /
empty elements (without content) can skip the end tag
Examples:
<p>...</ p>
<head>...</ head>
<!-- comment -->
Lists of elements
At Mozilla
Important examples
<br> breaks a line, but not a paragraph. Don't use it for spacing!
<div> creates a group ("box") around several elements (a "block")
Can be visible or not
Serves a function something like a section in a normal text
<img> inserts an image into the page
<span> creates a group within an element ("inline")
<table> creates a table. Often used for layout, but discouraged since beginning in 4.0 in favor of CSS.
Attributes
Usually, name-value pairs
E.g. name="value"
Some "boolean" attributes need have values
Inside the start tag of an element
Specific examples
id is a document wide identifier for a single element, used to reference from a style sheet or URL
class is similar, but used to reference several elements
style can change appearance, but should be used sparingly in favor of style sheets
Lists of attributes
At Mozilla
Important examples
align: obsoleted
alt: alternative text for images etc. An accessibility feature.
class: used to group several elements so that they may be affected by styles.
id: used as a reference to an individual element for
linking within a page
referencing by a style
rel: describes the relationship of the document to the linked to item
e.g., use "nofollow" to tell search engines that your link is not an indication that the referenced item is good, that is don't count it in search rank.
more...
Character references
Enable referencing and use of characters that are part of html as text, or of characters that are not available otherwise
Unicode is used for this
There are many reference tables
Examples
& is ampersand
" is double quote
é is acute-accented e
Document type declaration
Every html document must begin with one
E.g. <!docttype html>
Html versions 4 and earlier had to reference a document type definition
Html 5 doesn't