Tanto <article> como <section> son etiquetas semánticas de HTML5 para estructurar el contenido de tu página, pero sirven para propósitos ligeramente diferentes.
<article> (Artículo)
<article> como algo que tendría sentido por sí mismo si lo extrajeras de la página actual y lo leyeras en otro contexto (por ejemplo, sindicado en un lector de noticias RSS).<article> tendrá su propia cabecera (<header>) y/o pie de página (<footer>).<section> (Sección)
<article>, el contenido de una <section> no necesariamente es auto-contenido o independientemente distribuible; su significado a menudo depende del contexto que la rodea.<section> tenga un encabezado (<code><h1></code>-<code><h6></code>) que identifique su tema, lo cual es importante para la accesibilidad y el esquema del documento.Diferencia principal y cuándo usar cada una:
La diferencia fundamental radica en la autonomía del contenido:
<article> si el contenido es una pieza independiente que podría existir por sí sola.<section> para agrupar contenido temáticamente relacionado que forma parte de un todo mayor. Una <section> puede no tener mucho sentido si se saca de su contexto.Anidación:
<article> puede estar dividido en varias <section>s internas. (Ej: un post de blog (<article>) con secciones para «Introducción», «Desarrollo», «Conclusión»).<section> puede contener varios <article>s. (Ej: una sección de «Últimas Noticias» (<section>) que agrupa varios artículos individuales (<article>)).Ejemplo combinado:
<body>
<header>...</header>
<nav>...</nav>
<main>
<h1>Mi Blog de Viajes</h1>
<section> <h2>Posts Recientes</h2>
<article> <h3>Un Viaje a las Montañas</h3>
<p>Descripción breve del viaje...</p>
<a href="viaje-montanas.html">Leer más</a>
</article>
<article> <h3>Explorando la Costa</h3>
<p>Aventuras en la playa...</p>
<a href="explorando-costa.html">Leer más</a>
</article>
</section>
<aside>...</aside>
</main>
<footer>...</footer>
</body>
Lenguaje del código: PHP (php)En resumen: si el contenido puede «vivir por sí solo», probablemente sea un <article>. Si estás agrupando partes de contenido bajo un tema común dentro de un contexto mayor, es una <section>.