Estou tentando construir um layout em HTML5 e depois de ler vários artigos diferentes, estou apenas confuso. Estou tentando obter informações sobre como ele deve ser usado.
Abaixo estão as variações com as quais estou indo e voltando:
1)
<section id="content">
<h1>Heading</h1>
<div id="primary">
Some text goes here...
</div>
</section>
Você pode usar a tag de seção para agir como um contêiner?
2)
<div id="content">
<h1>Heading</h1>
<section id="primary">
<article>
<h2>Post Title</h2>
<p>Some text goes here...</p>
</article>
</section>
<section id="primary">
<article>
<h2>Post Title</h2>
<p>Some text goes here...</p>
</article>
</section>
</div>
Qual é o método correto para usar a <section>
tag?
<section>
é uma tag semântica e não um wrapper genérico como<div>
.Respostas:
A resposta está na especificação atual:
Referência:
Veja também:
Parece que houve muita confusão sobre o propósito desse elemento, mas a única coisa que foi acordada é que ele não é um wrapper genérico, como
<div>
é. Deve ser usado para fins semânticos, e não um gancho CSS ou JavaScript (embora certamente possa ser estilizado ou "script").Um exemplo melhor, do meu entendimento, pode ser algo assim:
Observe que
<div>
, sendo totalmente não-semântico, pode ser usado em qualquer lugar no documento que a especificação HTML permitir, mas não é necessário.fonte
Na página wiki W3 sobre estruturação de HTML5 , diz:
E então exibe uma imagem que eu limpei:
Também é importante saber como usar a
<article>
tag (do mesmo link W3 acima):fonte
<main>
tag um por documento em vez de<section id="main"
?<main>
seria o ideal.Meu entendimento é que SECTION contém uma seção com um título que é uma parte importante do "fluxo" da página (não um aparte). As SEÇÕES seriam capítulos, partes numeradas de documentos e assim por diante.
ARTICLE é para conteúdo distribuído - por exemplo, postagens, notícias, etc. ARTICLE e SECTION são completamente separados - você pode ter um sem o outro, pois são casos de uso muito diferentes.
Outra coisa sobre SECTION é que você não deve usá-la se sua página tiver apenas uma seção. Além disso, cada seção deve ter um título (H1-6, HGROUP, HEADING). Os títulos têm "escopo" dentro da SEÇÃO, então, por exemplo, se você usar um H1 na página principal (fora de uma SEÇÃO) e um H1 dentro da seção, o último será tratado como H2.
Os exemplos nas especificações são muito bons no momento da escrita.
Portanto, em seu primeiro exemplo, estaria correto se você tivesse várias seções de conteúdo que não poderiam ser descritas como ARTIGOS. (Com um ponto menor de que você não precisaria do #primary DIV a menos que você quisesse um gancho de estilo - tags P seriam melhores).
O segundo exemplo estaria correto se você removesse todas as tags SECTION - os dados nesse documento seriam artigos, postagens ou algo assim.
SECTIONs não devem ser usados como recipientes - DIV ainda é o uso correto para isso, e qualquer outra caixa personalizada que você possa criar.
fonte
Você pode definitivamente usar a tag de seção como um contêiner. Ele existe para agrupar o conteúdo de uma forma mais semanticamente significativa do que com um div ou como a especificação html5 diz:
fonte
O método correto é # 2. Você usou a tag de seção para definir uma seção de seu documento. Das especificações http://www.w3.org/TR/html5/sections.html :
fonte
<article>
s), mas é impossível dizer realmente com apenas um texto fictício como exemplo e duas seções com oid
"primário" ...isso é simplesmente errado: não é um invólucro. O elemento denota uma seção semântica de seu conteúdo para ajudar a construir um esboço do documento. Deve conter um título. Se você estiver procurando por um elemento de wrapper de página (para qualquer sabor de HTML ou XHTML), considere aplicar estilos diretamente ao elemento, conforme descrito por Kroc Camen. Se você ainda precisar de um elemento adicional para estilizar, use a. Como o Dr. Mike explica, div não está morto e, se não houver nada mais apropriado, é provavelmente onde você realmente deseja aplicar seu CSS.
você pode verificar isso: http://html5doctor.com/avoiding-common-html5-mistakes/
fonte