Historique du HTML
Définition :
HTML est initialement dérivé d'un langage de description à balises : le SGML (Standard Generalized Markup Language). Il a été inventé par Tim Berners-Lee dans les années 1990 et n'a jamais cessé d'évoluer.


HTML 1.0
Apparu au début des année 1990.
Version simple et indépendante qui permet de faire une structure de page très basique. De plus, le langage étant hypertextuel, il permet de passer d'une page à une autre à l'aide d'hyperliens.
Obsolète de nos jours.
HTML 2.0
Validation en septembre 1995 par le W3C.
Apparition de nouveaux navigateurs engendrant l'apparition de nouvelles balises.
Nouvelles balises de structure pour le document (les entêtes, lignes de titres, différents niveaux de titre, etc.) ainsi que pour l'ajout d'images (formats xbn et gif initialement).
Insertions de graphiques, de tableaux, de formulaires pour interagir avec l'utilisateur.
Pendant la période séparant les deux premières versions, beaucoup de navigateurs ont cherché à améliorer le HTML suivant leur code, ce qui a fini par créer des "dialectes" et donc des problèmes dans l'harmonisation des navigateurs.
HTML 3.0
Désir des webmasters d'améliorer la création de leurs sites au niveau du rendu visuel.
Netscape Navigator introduit de nouvelles balises ainsi que de nouvelles propriétés dans leur navigateur, appelées Netscape extension tags, à l'origine de plusieurs problèmes de compatibilité avec les autres navigateurs tentant de reproduire ces mêmes propriétés mais sans succès. Les pages web créées avec Netscape étaient bien affichées sur leur navigateur mais pas sur les autres.
HTML 3.0 a été introduit afin de fournir aux webmasters de meilleurs moyens pour créer des pages web.
N'a pas rencontré le succès escompté car les navigateurs n'étaient pas assez rapides dans l'implémentation des nouveautés que nécessitait HTML 3.0.
Il a été finalement décidé que les améliorations futures se feraient de façon progressive de manière à laisser le temps aux différents navigateurs web de se mettre à jour.
HTML 3.2
Version 3 la plus célèbre du HTML qui à été standardisée en fin 1996 par le W3C.
Le HTML 3.2, aussi appelé WILBUR, a introduit des nouveautés pour les polices et pour les images. Mais la grande nouveauté de cette version reste l'introduction des applets Java et JavaScript.
Cette version, contrairement aux deux précédentes, n'a pas encore totalement disparu.
HTML 4.0
Version aussi appelé COUGAR, devenue un standard du W3C en 1998.
Contient des améliorations des propriétés précédentes (scripts, frames...).
Permet une plus grande démarcation entre la présentation d'un document et sa structure ainsi que des formulaires et des tableaux plus complexes.
Trois variantes de format ont été créées et permettent d'avoir un balisage plus signifiant :
La variante strict (recommandée par le W3C) :
Exclut tout élément ou attribut utilisé pour le formatage et la visualisation du texte, ils seront remplacés dans un fichier CSS. De plus, tout élément entre les balises <body></body>doit être placé dans des balises "bloc".
Toute page HTML de variante exclusivement strict doit commencer par :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
La variante transitional :
Autorise l'utilisation de balises en cours d'abandon en plus des balises de la variante strict. De plus, il n'y a plus d'utilisation exclusive de balises bloc entre les balises <body></body>, il est possible d'utiliser aussi des éléments incorporés.
Toute page HTML de variante exclusivement transitional doit commencer par :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
La variante frameset :
Cette variante est la même que la transitional, sauf que l'élément body est remplacé par l'élément frameset (contenant lui même des des éléments frame).
Toute page HTML de variante exclusivement frameset doit commencer par :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Rappel : Type d'éléments HTML : inline vs block
En HTML, l'affichage par défaut d'un élément dépend de son type. On distingue ainsi les éléments de type "bloc" (div, p, h1...h6, ul, ol, table, form, etc.) des éléments de type "en ligne" (span, a, img, em, strong, etc.).
Élément de type "bloc" (block) :
Un élément block commence systématiquement sur une nouvelle ligne et occupe toute la largeur disponible (définie par son parent).
Élément de type "en ligne" (inline) :
Un élément inline ne force pas de retour à la ligne et n'occupe que la largeur nécessaire (définie par son contenu).
Rappel : Éléments frameset et frame
Les cadres HTML (frameset) correspondent à des balises permettant de structurer le contenu des pages web en plusieurs fenêtres (frame) indépendantes ou enchâssées. Il est possible d'utiliser les balises <noframes></noframes> qui afficheront un contenu alternatif si le navigateur ne supporte pas l'usage des cadres.
Voir ici [fr] pour une présentation détaillée des cadres HTML.