J'ai souvent vu un espace précédant la barre oblique de fermeture dans les balises XML et HTML. Le saut de ligne XHTML est probablement l'exemple canonique:
<br />
au lieu de:
<br/>
L'espace semble superflu. En fait, je pense que c'est superflu.
Quelle est la raison d'écrire cet espace?
J'ai lu que l'espace résout certains "problèmes de compatibilité descendante". Quels problèmes de rétrocompatibilité? Ces problèmes sont-ils toujours pertinents ou ajoutons-nous encore des espaces supplémentaires pour, par exemple, la compatibilité avec IE3? Existe-t-il des spécifications avec la réponse définitive à ce sujet?
Si ce n'est pas la rétrocompatibilité, s'agit-il d'un problème de lisibilité? Semblable au débat sur la grande boucle ouverte?
void it_goes_up_here() {
int no_you_fool_it_goes_down_there()
{
Je peux certainement respecter des opinions stylistiques différentes, alors je serai heureux d'apprendre que l'écriture de l'espace est simplement une question de goût.
la source
Réponses:
La réponse est que les gens souhaitent adhérer à l' annexe C de la spécification XHTML1.0 . Ce que vous ne devez faire que si vous servez du XHTML sous forme de texte / html . Ce que font la plupart des gens, car le vrai type MIME de XHTML (application / html + xml) ne fonctionne pas dans Internet Explorer.
Aucun navigateur actuel ne se soucie de l'espace. Les navigateurs sont très tolérants à l'égard de ces choses.
L'espace était auparavant nécessaire pour garantir que les analyseurs HTML traitaient la barre oblique de fin comme un attribut non reconnu.
la source
Soutenir la réponse de bobince avec capture d' écran de Netscape 4,80 documents montrant
(en haut à gauche, saut de ligne rendu) et
(en bas à gauche, saut de ligne ignoré).
Publier comme réponse pour montrer l'image
Tangentiellement lié: en fait, j'ai eu une longue réponse identifiant la cause d'un tel mauvais comportement des anciens navigateurs (et la recommandation résultante d'inclure de l'espace) dans des spécifications SGML mal comprises, à savoir SGML Null End Tag ( NET ) (où
1<tag/2/3
égal à1<tag>2</tag>3
cela1<tag/>2
signifierait en fait1<tag>>2
), mais non seulement j'étais incapable de trouver une bonne preuve et une version concrète de la norme, mais je n'étais même pas capable de comprendre le comportement conforme aux normes. Si peu de liens bruts pour référence:(Impossible de s'y reproduire maintenant, mais prend en charge la déclaration de Lee Kowalkowski concernant plusieurs navigateurs concernés.)
NET "/>"
la source
Vous étiez proche - c'est pour Netscape 4.
Il est intéressant de voir d'autres rationalisations, mais c'est tout ce pour quoi il était destiné.
la source
Non, l'espace n'est pas nécessaire mais certains navigateurs plus anciens ont besoin de rendre correctement ces balises. La bonne façon de le faire est de ne pas utiliser d'espace supplémentaire car c'est quelque chose de XHTML hérité de XML.
la source
En XHTML, les balises br doivent être fermées, mais l'espace n'est pas nécessaire . C'est une chose stylistique. En HTML, les balises br ne peuvent pas être fermées, donc les deux sont fausses.
la source
L'espace rend simplement les balises plus lisibles. Je suis un grand partisan du formatage pour un code plus lisible. De petites choses comme ça vont très loin. Sans l'espace, la balise de fermeture se fond dans la balise d'ouverture. Il me faut juste un instant de plus pour le traiter car je lis rapidement le code.
la source
Et s'il y avait un écrivain html très paresseux là-bas ou peut-être qu'il avait peur des guillemets. Considérez ce qui suit si vous étiez son robot d'exploration de page ...
<img src=http://myunquotedurl.com/image.jpg />
contre
<img src=http://myunquotedurl.com/image.jpg/>
Cela peut sembler petit, mais regardez ce que cela peut faire si l'espace n'est pas là. Le robot ne saura pas si la barre oblique fait partie de l'URL ou de la balise de fermeture.
la source
Je pense que l'espace blanc est un moyen de renforcer l'idée que cette balise est vide et qu'elle se ferme.
Aujourd'hui, je n'utilise plus l'espace blanc car je n'ai jamais eu de problème sans espace blanc.
la source