Introduction
Le Dynamic HTML est une extension du HTML qui, associée au javascript et aux feuilles de styles, permet de manipuler dynamiquement des éléments HTML sur une page. Le DHTML sans javascript ne sera jamais dynamique. C'est bien l'association avec le javascript qui lui donne vie.
La manipulation de ces éléments porte sur leur position, leur dimension, leur visibilité et leur style d'affichage (police, attributs de police, couleurs). Je vous invite à lire le tutorial sur les feuilles de styles.
Le mot dynamique de dynamic HTML signifie que les modifications peuvent se faire une fois que la page a fini de se charger, ce que ne permet pas le HTML classique. En HTML pur, une fois la page chargée et affichée, il n'est plus possible d'afficher de nouveaux éléments ou de les déplacer.
(In)Compatibilité
Le DHTML serait très intéressant à utiliser si il existait une norme officielle et suivie par les navigateurs. A l'heure actuelle, chaque navigateur gère le DHTML à sa façon. Ainsi, un script écrit pour un navigateur ne fonctionnera pas sur un autre sans un travail d'adaptation.
Le DHTML a été inventé par Netscape à partir de sa version 4. Microsoft a suivi cette voie en développant un autre langage de DHTML à partir de la version 4 de Internet Explorer. Actuellement, plus aucun internaute n'utilise de navigateur de version inférieure à la 4 ; donc tous les visiteurs peuvent profiter du DHTML.
Pour information, voici les proportions enregistrées sur le site Tout JavaScript.com en mars 2001 :
Internet Explorer 5 --> 86.5 %
Netscape Navigator 4.X --> 8.5 %
Internet Explorer 4 --> 4.3 %
Netscape Navigator 6 --> 0.4 %
Entre mars 2000 et mars 2001, la proportion était de :
Internet Explorer 5 --> 82.7 %
Netscape Navigator 4.X --> 10.4 %
Internet Explorer 4 --> 6.4 %
On note une augmentation progressive de la dominance de Internet Explorer 5. Netscape, toutes versions confondues, perd des parts de marché et Netscape 6 n'arrive pas à s'imposer.
Même si la grosse majorité utilise Internet Explorer 5, on ne peut pas négliger les utilisateurs de Netscape, environ 10% des visiteurs. Il est donc nécessaire de développer les scripts DHTML en tenant compte de cette minorité. Attention :
1 - ce tableau ne reflète pas la proportion générale, mais juste celle des visiteurs de Tout JavaScript.com.
2 - Le mot minorité utilisé pour les adeptes de Netscape n'est pas péjoratif, il représente simplement une réalité constatée.
3 - Le mot adepte n'est pas non plus péjoratif. Même si j'ai du mal à comprendre l'intérêt de ce navigateur...
Comment faire ?
La principale difficulté est causée par les incompatibilités entre navigateurs. On peut définir 3 grandes manières de gérer le DHTML pour les 2 grands navigateurs du marché : Internet Explorer et Netscape.
Internet Explorer 4 et Internet Explorer 5 sont compatibles.
Netscape 4.X utilise un langage propre incompatible avec Internet Explorer et Netscape 6.
Netscape 6 et Internet Explorer 5 sont compatibles.
Cela signifie en fait que :
Internet Explorer 4 a une notation qui lui est propre, mais que la version 5 supporte correctement.
Netscape 4.X est isolé.
Netscape 6 et Internet Explorer 5 respectent tous les 2 la norme officielle du W3C.
En contrepartie, Netscape 6 ne reconnaît plus le DHTML de ses versions antérieures.
Au final, 3 versions sont nécessaires pour assurer la compatibilité avec tous les navigateurs possibles :
Une version pour Internet Explorer 4,
Une pour Netscape 4,
Et une qui respecte la norme pour Netscape 6 et Internet Explorer 5.