Freqüentemente, vejo um espaço antes da barra de fechamento em tags XML e HTML. A quebra de linha XHTML é provavelmente o exemplo canônico:
<br />
ao invés de:
<br/>
O espaço parece supérfluo. Na verdade, acho que é supérfluo.
Qual a razão de escrever este espaço?
Eu li que o espaço resolve alguns "problemas de compatibilidade com versões anteriores". Quais problemas de compatibilidade com versões anteriores? Essas questões ainda são relevantes ou ainda estamos adicionando espaços extras para, digamos, compatibilidade com o IE3? Existe alguma especificação com a resposta definitiva sobre isso?
Se não for compatibilidade com versões anteriores, é um problema de legibilidade? Semelhante ao debate do Great Open Curly Brace?
void it_goes_up_here() {
int no_you_fool_it_goes_down_there()
{
Certamente posso respeitar as diferentes opiniões estilísticas, então ficarei feliz em saber que escrever o espaço é simplesmente uma questão de gosto.
fonte
Respostas:
A resposta é que as pessoas desejam aderir ao Apêndice C da especificação XHTML1.0 . O que você só precisa fazer se estiver servindo XHTML como texto / html . O que a maioria das pessoas faz, porque o tipo MIME real do XHTML (aplicativo / html + xml) não funciona no Internet Explorer.
Nenhum navegador atual se preocupa com o espaço. Os navegadores são muito tolerantes com essas coisas.
O espaço costumava ser necessário para garantir que os analisadores HTML tratassem a barra final como um atributo não reconhecido.
fonte
Apoiando a resposta de bobince com a captura de tela do Netscape 4.80 mostrando documentos
(canto superior esquerdo, quebra de linha renderizado) e
(canto inferior esquerdo, quebra de linha ignorada).
Postando como resposta para mostrar a foto
Tangencialmente relacionados: na verdade eu tinha uma resposta longa identificar a causa de tal mau comportamento dos navegadores antigos (e recomendações resultantes de incluir espaço) em especificações incompreendido SGML, nomeadamente Tag SGML Null End ( NET ) (onde
1<tag/2/3
é igual1<tag>2</tag>3
modo1<tag/>2
significaria realmente1<tag>>2
), mas não apenas fui incapaz de encontrar uma boa prova e uma versão concreta do padrão, como também não fui capaz de compreender o comportamento adequado de conformidade com o padrão. Poucos links brutos para referência:(Não é possível reproduzir lá agora, mas apóia a declaração de Lee Kowalkowski sobre vários navegadores afetados por isso.)
NET "/>"
fonte
Você chegou perto - é para o Netscape 4.
É interessante ver outras racionalizações, mas era só para isso.
fonte
Não, o espaço não é necessário, mas é necessário para alguns navegadores mais antigos renderizar essas tags corretamente. A maneira correta de fazer isso é sem o espaço extra, pois isso é algo que o XHTML herdou do XML.
fonte
Em XHTML, as tags br devem ser fechadas, mas o espaço não é necessário . É uma coisa estilística. Em HTML, as tags br não podem ser fechadas, então ambas estão erradas.
fonte
O espaço apenas torna as tags mais legíveis. Sou um grande defensor da formatação para um código mais legível. Coisas pequenas como essa vão longe. Sem o espaço, a tag de fechamento se mistura com a tag de abertura. Demoro apenas um instante a mais para processá-lo, pois estou lendo o código rapidamente.
fonte
E se houvesse um escritor de html muito preguiçoso por aí ou talvez ele tivesse medo de aspas? Considere o seguinte se você fosse o rastreador de página do robô dele ...
<img src=http://myunquotedurl.com/image.jpg />
versus
<img src=http://myunquotedurl.com/image.jpg/>
Pode parecer pequeno, mas veja o que pode fazer se não houver espaço. O robô não saberá se a barra faz parte do url ou da tag de fechamento.
fonte
Acho que o espaço em branco é uma forma de reforçar a ideia de que essa tag está vazia e se fecha sozinha.
Hoje eu não uso mais o espaço em branco porque nunca tive um problema sem espaço em branco.
fonte