L'Espace Avant Le Slash De Fermeture?
J'ai souvent vu un espace avant la barre oblique de fermeture XML et HTML tags. Le XHTML saut de ligne 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 de l'écriture de cet espace?
J'ai lu que l'espace résout certains "à rebours des problèmes de compatibilité." Qui renverse les problèmes de compatibilité? Sont ces questions toujours pertinentes, ou sommes-nous encore ajouter des espaces supplémentaires pour l'amour de, disons, IE3 compatibilité? Existe-t-il certains spec avec la réponse définitive sur ce point?
Si pas de rétro-compatibilité, alors est-ce un problème de lisibilité? Similaire à la Grande Ouvert Accolade débat?
void it_goes_up_here() {
int no_you_fool_it_goes_down_there()
{
Je peux certainement respecter les différents stylistique avis, donc je vais être heureux d'apprendre que l'écriture de l'espace est simplement une question de goût.
- Je suis tellement habitué à ce que les <br /> juste l'air tellement mieux que <br/>
Vous devez vous connecter pour publier un commentaire.
La réponse est que les gens désirent adhérer à L'annexe C de la XHTML1.0 spécifications. Qui vous avez seulement besoin de faire si vous êtes servir XHTML en tant que texte/html. La plupart des gens le faire, parce que XHTML est réel, type MIME application/html+xml) ne fonctionne pas dans Internet Explorer.
Pas de navigateur actuel se préoccupe de l'espace. Les navigateurs sont très tolérants à l'égard de ces choses.
De l'espace utilisé pour être requises pour assurer les analyseurs HTML traités de la barre oblique comme un méconnu de l'attribut.
Vous étiez proche - c'est pour Netscape 4.
Il est intéressant de voir d'autres rationalisations, mais c'est tout, elle était destinée.
Soutenir bobince réponse avec capture d'écran de Netscape 4.80 montrant documents
(en haut à gauche, linebreak rendus) et
(en bas à gauche, linebreak ignoré).
Poste en tant que réponse à montrer l'image
Tangentiellement liés: en fait j'ai eu une longue réponse à identifier la cause de ces débordements des anciens navigateurs (et la recommandation d'inclure l'espace) en mal compris SGML spécifications, à savoir SGML Null Balise de Fin (NET) (où
1<tag/2/3
est égal à1<tag>2</tag>3
donc1<tag/>2
signifierait en réalité1<tag>>2
), mais pas seulement, j'ai été incapable de trouver une bonne preuve de béton et de version de la norme, je n'étais même pas capable de saisir la bonne norme-conforme comportement. Si peu de raw liens de référence:(Incapables de se reproduire là maintenant, mais prend en charge Lee Kowalkowski sur plusieurs navigateurs touchés par ce problème.)
NET "/>"
Non, l'espace n'est pas nécessaire, mais il est nécessaire que certains anciens navigateurs à rendre ces balises correctement. La bonne façon de le faire est sans l'espace supplémentaire que c'est quelque chose XHTML hérité de XML.
En XHTML, br balises doivent être fermées, mais l'espace n'est pas nécessaire. C'est une stylistique chose. En HTML, les balises br ne peut pas être fermé, de sorte que les deux sont mauvais.
L'espace est tout simplement les étiquettes plus lisibles. Je suis un grand partisan de la mise en forme d'un code plus lisible. Ce genre de petites choses qui vont un long chemin. Sans l'espace de la balise de fermeture se confond avec la balise d'ouverture. Il suffit d'un instant de plus pour me traiter comme je suis rapidement la lecture du code.
Que s'il y avait un très paresseux html écrivain, ou peut-être qu'il avait peur de guillemets.
Considérer les points suivants si vous étiez son robot crawler la page...
<img src=http://myunquotedurl.com/image.jpg />
contre
<img src=http://myunquotedurl.com/image.jpg/>
Cela peut sembler petit, mais regardez ce qu'il peut faire, si l'espace n'est pas là. Le robot ne saura pas si la barre oblique est la partie de l'url ou partie de la balise de fermeture.
Je pense que le blanc de l'espace est un moyen de renforcer l'idée que cette balise est vide et il se ferme de lui-même.
Aujourd'hui je n'utilise pas l'espace blanc de plus, parce que je n'ai jamais eu un problème avec aucun espace.