Existe errado alguma coisa com a escrita de partes de uma página da Web em XHTML com um tipo de documento HTML?

StackOverflow https://stackoverflow.com/questions/1040969

  •  22-07-2019
  •  | 
  •  

Pergunta

Eu comecei apenas recentemente aprender HTML / CSS e eu tenho tentado me ensinar boas práticas de programação web. Estou familiarizado com XML, então a codificação até páginas web em XHTML foi bastante intuitivo e ele só parecia ser uma coisa boa para fazer. No entanto, eu estive lendo artigos como esta e agora eu sou ambivalente.

As minhas preocupações com codificação em qualquer HTML e XHTML decorrem do seguinte:

  1. tags img não precisa ser fechada em HTML, e que faz sentido para mim. Mas, em XHTML, tags img exigem uma tag perto que parece tipo de. Eu só acho que é estranho ter um par de tags de abertura e fechamento com nada entre eles.
  2. Tags
  3. p (como no parágrafo) não precisa ser fechada em HTML, e que é funky para mim. Faz sentido para a seção fora um parágrafo entre as tags de abertura e fechamento como faria em XHTML.

Estes são os únicos exemplos básicos que podem surgir com no momento, mas eu estou esperando que eles, pelo menos, mostram como dividir Estou entre HTML e XHTML. Então aqui está a minha pergunta real: Está tudo bem para jogar em código XHTML (quando eu sinto que ele apropriadamente esclarece alguma coisa) quando eu estou codificação de uma página web que deve ser em HTML (com uma DTD HTML)? Tenho certeza que o site seria a mesma aparência, mas se as pessoas estavam a olhar para a minha fonte, que eles pensam que eu fosse um codificador terrivelmente pouco profissional?

Além disso, eu fui tipo de cegamente olhando através de tutoriais e guias via Google em práticas de programação web de som e eu queria saber se você pessoas tinha algum conselho / recursos para compartilhar comigo. Eu realmente quero ter certeza que eu estou aprendendo como fazer isso da maneira certa. Eu realmente aprecio isso.

Obrigado por ler!

Edit: Uau, tais respostas rápidas; caras, vocês são incríveis! Então eu entendo que os navegadores da web são vai ser muito tolerante quando se trata deste tipo de coisa. Meu problema é então uma questão de vaidade e como outros profissionais sentem sobre a escrita de uma espécie de mistura de XHTML e HTML. código estritamente compatível é o caminho a percorrer? Eu honestamente só não quero parecer um idiota, haha.

Foi útil?

Solução

tags img não precisa ser fechada em HTML, e que faz sentido para mim.

Sem tag precisa ser fechado. Todos os elementos precisam ser fechados.

A maioria dos elementos consistem de uma marca de início, algum conteúdo, e uma tag final.

Uma vez que um elemento de imagem não pode ter conteúdo, não é necessário a tag final. Em HTML, os elementos que não podem ter conteúdo ( "elementos vazios") têm as tags de fim proibido.

Mas, em XHTML, tags img exigem uma tag perto que parece tipo de.

XHTML é uma aplicação XML em vez de uma aplicação SGML e XML não tem todas as características que SGML faz -. Incluindo a capacidade de especificar que uma tag final é proibido

Eu só acho que é estranho ter um par de tags de abertura e fechamento com nada entre eles.

XML introduz um novo tipo de tag -. Uma auto-fechamento tag (<foo />) que atua como uma marca de início e fim combinado

Se você estiver escrevendo XHTML compatível com HTML (que você deve estar se você optar por usar XHTML e quer apoiar os navegadores que não suportam que a linguagem - como o Internet Explorer), então você deve uso que a sintaxe . (I preferem ficar com HTML eu)

tag p (como no parágrafo) não precisa ser fechada em HTML, e que é funky para mim.

Muitos elementos HTML têm marcas opcional finais. Isso permite que a marca de fim de ser omitidos quando pode ser implícita.

Por exemplo:

<p>Hello, world
<p>A second paragraph

Uma vez que um elemento p não pode conter outro elemento p, você pode implicar (com 100% de confiabilidade) que iniciar um novo parágrafo irá fechar a anterior.

Dito isto, eles são opcional , não é proibido

. Você pode escrever HTML 4.01 com tags de fim explícitas para qualquer elemento que não está intrinsecamente esvaziar.

Está tudo bem para jogar em código XHTML (Quando eu sinto que ele apropriadamente esclarece alguma coisa) quando eu estou codificação -se uma página que deve ser em HTML (Com um DTD HTML)? Tenho certeza que o site seria a mesma aparência, mas se pessoas estavam a olhar para a minha fonte, se eles pensam que eu fosse um terrivelmente codificador profissional?

Seria olhar profissional.

Dito isto, existem apenas três vezes quando sintaxe XHTML não está em conformidade HTML sintaxe:

elementos vazios -. Tais como <img> e <br> necessidade de ser explicitamente fechado em XHTML ... mas você disse que não gostava que a sintaxe

Scripts e estilos - você precisa usar referências de caracteres ou marcadores de CDATA se você usar determinados caracteres em seu incorporado JS e CSS em XHTML, mas esses elementos são marcados como CDATA no DTD de HTML, de modo que este seria errado lá ... mas você não deve usar scripts ou estilos embutidos de qualquer maneira.

Namespaces -., Mas não há tempo quando se usa um namespace XML no meio de um documento HTML viria perto de esclarecer algo

Outras dicas

HTML 5 permite o uso de sintaxe XHTML.

Você pode começar a usar um doctype HTML 5 agora que vai empurrar todos os navegadores em modo de padrões, mas esteja ciente de que novos recursos do HTML 5 são suportados apenas em alguns navegadores.

A partir do href="http://wiki.whatwg.org/wiki/FAQ#Should_I_close_empty_elements_with_.2F.3E_or_.3E.3F" rel="nofollow noreferrer"> Web Application Hypertext Technology Group :

Devo elementos perto vazios com /> ou>?

elementos vazio em HTML (por exemplo, os elementos de br, img e entrada) não requerem uma barra final. por exemplo. Em vez de escrever <br />, você só precisa escrever <br>. Este é o mesmo que em HTML 4.01. No entanto, devido às tentativas generalizados para usar XHTML 1,0, há um número significativo de páginas usando a barra final. Devido a isso, a sintaxe barra final foi permitida sobre elementos nulos em HTML, a fim de facilitar a migração de XHTML 1.0 para HTML5.

Os maravilhosamente simples HTML 5 doctype esta aparência:

<!DOCTYPE html>

Então, sim, você pode escrever padrões HTML compatível com etiquetas auto fechamento e ele irá validar contra um HTML 5 validador . A indústria tem amplamente escolhido para adotar HTML5 sobre XHTML2 e, consequentemente, eu não recomendo o uso de XHTML para quaisquer novos projectos.


Edit: Assim como um ponto de esclarecimento, é seguro usar o doctype HTML 5 agora, e também é seguro supor que o HTML 5 será amplamente adotado ao longo do XHTML 2 dado o apoio da indústria. Você pode certamente HTML autor 5 documentos agora, no entanto, muitas das características do HTML5, como <canvas> (nomeadamente falta de apoio do MS, dado que compete com Silverlight) não têm suporte cross-browser e estão sujeitos a mudança.

É 'ok' no sentido de que quase todos os navegador irá torná-lo corretamente, mas apenas porque eles são construídos para lidar com malformado HTML / XHTML / XML / whatever. No entanto, qualquer elemento (s) não coincida com o doctype declarado (no seu caso, o DTD HTML) irá impedir o seu código de validação, e é, tecnicamente, malformados.

Por outro lado, a grande maioria dos sites (mesmo aqueles que prestam corretamente) não validam, por isso não é um enorme problema. Eu cumpri-(estrita) XHTML; etiquetas auto-fechamento de comentário sobre a nota de jimr (por exemplo <img src="foo" />).

Não, não está tudo bem. Em teoria, pelo menos. Se você escrever sintaxe XHTML em um documento HTML, é inválido. Browsers provavelmente irá torná-lo da mesma forma, mas ainda é inválido. Além disso, a única coisa válida em XHTML e inválida no HTML é uma tag de fecho automático (<br />). Apenas beacuse em HTML você não está obrigado a tag próximos, não significa que você não pode fechar-los. Você pode escrever marcação como este:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at enim sit amet urna placerat porttitor ut quis justo. Quisque posuere nisl ac libero dictum posuere. Suspendisse in magna neque. Donec et vestibulum sapien. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at nulla dui.</p>

<img src="" alt="">

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at enim sit amet urna placerat porttitor ut quis justo.</p>

Veja? É HTML válida, e boa aparência.

BTW:. ler este

<DOCTYPE> é uma licença-over de SGML e deve aparecer apenas uma vez, no topo do documento. Adicionando outras declarações DOCTYPE no documento seria uma violação de HTML e XHTML -. Embora a maioria dos navegadores provavelmente perdoá-lo

Se você deve usar tanto em uma página, talvez colocando o documento aninhada em um IFRAME seria mais consistente com os padrões desde IFRAMEs de casa definição de um contexto janela / documento separado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top