article, section, aside
<article>, <section>, <aside> гурав нь агуулгыг утга учиртайгаар зохион байгуулдаг semantic элементүүд. Гурвыг ялгаж сурах нь анхандаа хэцүү боловч дараах зарчмыг санавал хялбарна.
<article> — бие даасан нийтлэл
<article> нь хуудсаас тусгаарлагдан гарсан ч утгаа алдахгүй, бие даасан агуулгыг бүлэглэнэ.
Тест: "Энэ агуулгыг RSS feed, өөр сайт, эсвэл и-мэйлд оруулж болох уу?" — Хэрэв тийм бол <article>.
<!-- Блог нийтлэл -->
<article>
<header>
<h2>JavaScript-ийн шинэ онцлогууд</h2>
<time datetime="2024-03-15">2024 оны 3 сарын 15</time>
</header>
<p>ES2024-д олон шинэ онцлог нэмэгдлээ...</p>
<footer>
<a href="/blog/js-features">Дэлгэрэнгүй унших →</a>
</footer>
</article>
<!-- Мэдэгдэл карт -->
<article>
<h3>Шинэ курс нэмэгдлээ</h3>
<p>Docker курс одоо ашиглах боломжтой боллоо.</p>
</article>
<!-- Сэтгэгдэл -->
<article>
<header>
<strong>Бат</strong>
<time datetime="2024-03-16">Өчигдөр</time>
</header>
<p>Маш хэрэгтэй хичээл байлаа, баярлалаа!</p>
</article>
<section> — сэдвийн хэсэг
<section> нь нэг сэдвийн хүрээнд нэгтгэгдсэн агуулгын бүлэг. <article>-аас ялгаа: section нь хуудсын нэг хэсэг — тусдаа гарч болохгүй.
Тест: "Энэ хэсгийн гарчиг байх уу?" — Хэрэв тийм бол <section>.
<main>
<section>
<h2>Онцлох сургалтууд</h2>
<article>...</article>
<article>...</article>
</section>
<section>
<h2>Сүүлийн мэдээ</h2>
<article>...</article>
<article>...</article>
</section>
<section>
<h2>Хэрэглэгчдийн сэтгэгдэл</h2>
<article>...</article>
<article>...</article>
</section>
</main>
Nested section
<section> дотор <section> байж болно — агуулгын шатлал үүсгэхэд:
<article>
<h1>HTML гарын авлага</h1>
<section>
<h2>Үндэс</h2>
<section>
<h3>Tag гэж юу вэ</h3>
<p>...</p>
</section>
<section>
<h3>Attribute гэж юу вэ</h3>
<p>...</p>
</section>
</section>
<section>
<h2>Form</h2>
<p>...</p>
</section>
</article>
<aside> — хажуугийн агуулга
<aside> нь үндсэн агуулгатай холбоотой боловч гол утгаас тусдаа байж болох агуулга. Sidebar, нэмэлт мэдээлэл, сурталчилгаа, холбоотой нийтлэлийн жагсаалтад ашиглана.
<main>
<!-- Гол нийтлэл -->
<article>
<h1>CSS Grid-ийн бүрэн гарын авлага</h1>
<p>Grid-ийн бүтэц...</p>
<!-- Нийтлэлийн дотоод aside — холбоотой тэмдэглэл -->
<aside>
<p><strong>Тэмдэглэл:</strong> Grid нь IE11-д бүрэн дэмжигддэггүй.</p>
</aside>
<p>Grid-ийн column тохируулга...</p>
</article>
<!-- Хуудасны sidebar -->
<aside>
<section>
<h2>Холбоотой нийтлэл</h2>
<ul>
<li><a href="/css/flexbox">Flexbox гарын авлага</a></li>
<li><a href="/css/responsive">Responsive дизайн</a></li>
</ul>
</section>
<section>
<h2>Хамгийн их үзсэн</h2>
<ol>
<li><a href="/js/async">Async/Await тайлбар</a></li>
<li><a href="/html/forms">HTML form бүрэн жишээ</a></li>
</ol>
</section>
</aside>
</main>
Гурвын харьцуулалт
| Элемент | Утга | Тест асуулт |
|---------|------|-------------|
| <article> | Бие даасан агуулга | Тусдаа гарч болох уу? |
| <section> | Сэдвийн хэсэг | Гарчигтай хэсэг үү? |
| <aside> | Хажуугийн нэмэлт | Гол агуулгаас тусгаарлаж болох уу? |
Практик жишээ — блог хуудас
<!DOCTYPE html>
<html lang="mn">
<head>
<meta charset="UTF-8" />
<title>Технологийн блог</title>
</head>
<body>
<header>
<a href="/">Технологийн блог</a>
<nav>
<a href="/html">HTML</a>
<a href="/css">CSS</a>
<a href="/js">JavaScript</a>
</nav>
</header>
<main>
<!-- Үндсэн нийтлэлүүдийн хэсэг -->
<section>
<h1>Сүүлийн нийтлэлүүд</h1>
<article>
<header>
<h2><a href="/html/semantic">Semantic HTML яагаад чухал вэ</a></h2>
<time datetime="2024-03-20">2024.03.20</time>
</header>
<p>Semantic HTML нь SEO, accessibility, код уншигдах чанарт...</p>
</article>
<article>
<header>
<h2><a href="/css/grid">CSS Grid дэлгэрэнгүй</a></h2>
<time datetime="2024-03-18">2024.03.18</time>
</header>
<p>CSS Grid нь хоёр хэмжээст layout хийх хамгийн хүчирхэг арга...</p>
</article>
</section>
</main>
<!-- Sidebar -->
<aside>
<section>
<h2>Сэдвүүд</h2>
<ul>
<li><a href="/html">HTML (15)</a></li>
<li><a href="/css">CSS (22)</a></li>
<li><a href="/js">JavaScript (31)</a></li>
</ul>
</section>
</aside>
<footer>
<p>© 2024 Технологийн блог</p>
</footer>
</body>
</html>
Дараагийн хичээлд:
<div> ба <span> элементүүдийг хэзээ, хэрхэн ашиглах талаар үзнэ. Semantic элементтэй харьцуулан аль тохиолдолд <div> зөв сонголт болохыг тайлбарлана.