Estoy tratando de crear un diseño en HTML5 y después de leer varios artículos diferentes estoy confundido. Estoy tratando de obtener información sobre cómo debería usarse.
A continuación se muestran las variaciones con las que voy y vienen:
1)
<section id="content">
<h1>Heading</h1>
<div id="primary">
Some text goes here...
</div>
</section>
¿Puedes usar la etiqueta de sección para actuar como un contenedor?
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>
¿Cuál es el método correcto para usar la <section>
etiqueta?
<section>
es una etiqueta semántica y no un contenedor genérico como<div>
.Respuestas:
La respuesta está en la especificación actual:
Referencia:
Ver también:
Parece que ha habido mucha confusión acerca del propósito de este elemento, pero la única cosa que está acordado es que es no un contenedor genérico, como
<div>
es. Debe usarse con fines semánticos, y no como un gancho CSS o JavaScript (aunque ciertamente puede tener un estilo o un "script").Un mejor ejemplo, a mi entender, podría verse así:
Tenga en cuenta que
<div>
, al ser completamente no semántico, se puede usar en cualquier parte del documento que la especificación HTML lo permita, pero no es necesario.fuente
En la página wiki de W3 sobre la estructuración de HTML5 , dice:
Y luego muestra una imagen que limpié:
También es importante saber cómo usar la
<article>
etiqueta (del mismo enlace W3 anterior):fuente
<main>
etiqueta de uno por documento en lugar de<section id="main"
?<main>
sería ideal.Tengo entendido que SECCIÓN contiene una sección con un encabezado que es una parte importante del "flujo" de la página (no un aparte). Las SECCIONES serían capítulos, partes numeradas de documentos, etc.
ARTÍCULO es para contenido sindicado, por ejemplo, publicaciones, noticias, etc. ARTÍCULO y SECCIÓN son completamente independientes; puede tener uno sin el otro, ya que son casos de uso muy diferentes.
Otra cosa acerca de SECCIÓN es que no debe usarla si su página solo tiene una sección. Además, cada sección debe tener un encabezado (H1-6, HGROUP, HEADING). Los encabezados tienen "alcance" dentro de la SECCIÓN, por lo que, por ejemplo, si usa un H1 en la página principal (fuera de una SECCIÓN) y luego un H1 dentro de la sección, este último será tratado como un H2.
Los ejemplos en la especificación son bastante buenos al momento de escribir.
Entonces, en su primer ejemplo, sería correcto si tuviera varias secciones de contenido que no pudieran describirse como ARTÍCULOS. (Con un punto menor de que no necesitaría el DIV #primary a menos que lo quisiera para un gancho de estilo, las etiquetas P serían mejores).
El segundo ejemplo sería correcto si eliminara todas las etiquetas de SECCIÓN; los datos de ese documento serían artículos, publicaciones o algo así.
Las SECCIONES no deben usarse como contenedores; DIV sigue siendo el uso correcto para eso, y cualquier otra caja personalizada que se le ocurra.
fuente
Definitivamente puede usar la etiqueta de sección como contenedor. Está ahí para agrupar contenido de una manera más semánticamente significativa que con un div o como dice la especificación html5:
fuente
El método correcto es el # 2. Usó la etiqueta de sección para definir una sección de su documento. De las especificaciones http://www.w3.org/TR/html5/sections.html :
fuente
<article>
), pero es imposible saberlo realmente con solo texto ficticio como ejemplo y dos secciones con elid
"primario" ...eso es simplemente incorrecto: no es un envoltorio. El elemento denota una sección semántica de su contenido para ayudar a construir un esquema de documento. Debe contener un encabezado. Si está buscando un elemento de envoltura de página (para cualquier tipo de HTML o XHTML), considere aplicar estilos directamente al elemento como lo describe Kroc Camen. Si aún necesita un elemento adicional para diseñar, use un. Como explica el Dr. Mike, div no está muerto, y si no hay nada más apropiado, probablemente sea donde realmente desee aplicar su CSS.
puede comprobar esto: http://html5doctor.com/avoiding-common-html5-mistakes/
fuente