Merci pour ces explications.
J'ai tenté ce genre d'explication, mais ça ne parle pas à grand monde en
fait.
Les concepteurs de sites que je côtoie utilisent des outils sans savoir
comment ça tourne (comme trop souvent).
Ce qui fait que parler de DOM et de XML a un adepte de Dreamweaver n'a
aucun sens... pour lui.
Dois-je en conclure qu'un navigateur se connecte systématiquement au DOM
(ou l'implémente de lui même) lorsqu'il lit l'entête du fichier ?
Mais c'est un sujet passionnant !!!
Cédric.
Mitch a écrit :
Bonjour Cédric,
La raison de l'utilisation de balises autofermantes provient de
l'ascendant XML du XHTML, et ce pour une raison simple: en XML, auxune
balise ne peut être considéré automatiquement fermée, elles doivent
toutes être explicitement fermées; ceci provient du fait que le XML
est une spécification plus simple que le HTML 'réel': en HTML, une
balise P ouverte peut être considérée fermée dès que:
- une nouvelle balise P s'ouvre,
- certains éléments de type bloc s'ouvrent (comme les listes, mais pas
les images),
- son parent se ferme,
- la balise est explicitement fermée.
Pour couper court à toutes ces règles qui peuvent être différemment
interprétées selon les navigateurs (par exemple, selon le mode
d'affichage, une TABLE fermera ou pas une balise P), XHTML utilise la
règle que toute balise doit être explicitement fermée - même les
balises autocontenues.
Dans ce dernier cas, le XML utilise la notation <balise /> pour
indiquer la fermeture de balise; par chance, la barre / est ignorée
par les navigateurs HTML si elle est précédée d'un espace, ce qui
autorise la création de pages XHTML lisibles par un navigateur HTML
"classique" (note: en SGML, dont le HTML est un sous-ensemble, la
barre oblique signifie la fermeture de la balise; le caractère >
suivant serait donc une aberration. Seulement, aucun navigateur actuel
n'implémente la syntaxe SGML complète).
Finalement: le XHTML ne vise pas à simplifier le code en en réduisant
la quantité. Il vise à simplifier la syntaxe, via ces tenants:
- séparation du contenu et de la forme: les paramètres de style ne
sont plus valides;
- séparation du contenu et des actions: les paramètres d'action ne
sont plus valides;
déjà, rien que là, ça diminue la quantité de paramètres par objet à
connaître (tout est réuni dans 'script' et 'style' si tu veux rester
en mode atomique, mais bien entendu getElementById ou #id en
ECMAscript et CSS ont la même efficacité)
- simplification de la construction du DOM: comme les balises doivent
être correctement imbriquées et fermées, le navigateur n'a plus besoin
de faire d'efforts pour reconstruire un arbre correct;
- simplification de la navigation du DOM: le DOM étant désormais
contruit formellement, sans erreur et avec (normalement) aucune
variation quel que soit le navigateur, tout code manipulant/modifiant
le DOM ou les propriétés d'éléments du DOM fonctionnera avec moins de
problèmes;
avec ces points-là, la conclusion précédente devient beaucoup plus
intéressante: tu peux vraiement sortir de ta page tout ce qui est
présentation et script, pour les réunir dans des fichiers externes.
Perso, depuis que je me force à utiliser le XHTML 1.0 Strict, je passe
beaucoup moins de temps à déboguer mon code, et celui-ci est beaucoup
mieux rangé.
Mitch
Cédric Schmitz a écrit :
Bonjour.
Voilà plusieurs semaines que je me documente sur le XHTML.
J'ai quelques interrogations, et je voulais savoir si vous aviez des
pistes sur une liste de diffusion tout aussi sympathique que celle
d'OOo.
J'ai par exemple du mal à répondre à cette critique: passer de <br>
en HTML à <br /> en XHTML allourdi le code...
Filiation XML ou pas.
Les discours technique de filiation XML et sémantique sont encore peu
considérés tout comme utiliser un standard ouvert...
Merci d'avance.
Cédric.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]