Menu

HTML section Etiketi: section, article ve div Farkı

<section> elementi tek bir temaya ait içeriği kendi başlığı altında gruplar. <section> etiketini ne zaman kullanacağını, ne zaman <article> ya da <div> etiketinin daha iyi olduğunu, üçünün nasıl iç içe yazıldığını ve etiketlenmiş bir section'ın nasıl landmark olduğunu öğren.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

section etiketi ne işe yarar

<section> tek bir temaya ait içeriği gruplar ve o temayı adlandıran bir başlıkla başlar. "Features", "Pricing" ve "FAQ" bölümlerine ayrılmış bir açılış sayfası ders kitabı örneğidir:

Her section sayfanın bir bölümüdür ve her başlık sayfanın içindekiler tablosunda bir satırdır. Diğer semantik etiketler gibi <section> elementinin de varsayılan bir stili yoktur; kenarlıklar CSS'ten gelir.

section, article ve div farkı

Üçü ekranda aynı görünür. Farklı olan, içerik hakkında ne söyledikleridir:

ElementAnlamıTest
<article>Eksiksiz, kendi başına anlamlı bir parçaTek başına, başka bir sitede ya da bir akışta yayımlansa anlamlı olur mu?
<section>Daha büyük bir bütünün temaya ait bir parçasıBir başlığı var mı (ya da gerekiyor mu) ve bir şeyin bir bölümü mü?
<div>Hiçbir şey: bir stil ya da yerleşim kutusuYalnızca CSS ya da JavaScript için mi orada?

Blog yazıları, forum yorumları, haberler ve ürün kartları article'dır. "Features", "Chapter 2" ve "Related products" section'dır. Üç kartı yan yana dizen bir flex satırı div'dir.

Bir section içinde article'lar

İkisi iki yönde de iç içe yazılır. Burada bir "Latest posts" section'ı birkaç bağımsız article barındırıyor:

<div class="grid"> elementine dikkat et: yalnızca kartları yan yana dizmek için var, bu yüzden onun için doğru etiket div'dir. Her yazı kendi başına durduğu için her kart bir article'dır.

Bir article içinde section'lar

Uzun bir makale, tıpkı bir kitaptaki bölümler gibi section'lara ayrılabilir. Başlık seviyeleri makalenin kendi başlığından devam eder:

Mavi kutu article'dır (rehberin tamamı), yeşil çubuklar da onun section'larıdır. Bir section'a kendi başlık seviyesini ver: bir h2 article'ı h3 section'lar barındırır.

Adlandırılmış section'lar landmark olur

Ekran okuyucular bazı elementleri, kullanıcıların arasında atlayabildiği landmark'lar olarak listeler. Bir <section> yalnızca erişilebilir bir adı olduğunda bir region landmark'ı olur. aria-labelledby değerini başlığına yönlendir:

<section aria-labelledby="pricing-title">
  <h2 id="pricing-title">Pricing</h2>
  ...
</section>

Bunu her section için değil, bir kullanıcının doğrudan atlamak isteyeceği birkaç section için yap: yirmi landmark'ı olan bir sayfayı taramak, hiç olmayan bir sayfa kadar zordur. Adsız section'lar da yine işe yarar, çünkü başlıkları ekran okuyucunun başlık listesinde görünür.

Section'lar sayfa içi linkler için de iyi hedeflerdir. Birine bir id ver, href="#id" olan bir link ona atlar:

Sık yapılan hatalar

  • <section> elementini bir stil sarmalayıcısı olarak kullanmak. Başlık ve tema yoksa <div> kullan. Her yerleşim etiketinin nereye uyduğunu semantik HTML sayfası gösteriyor.
  • Tek bir blog yazısını <section> ile sarmak. Kendi başına duran bir yazı bir <article> olur.
  • Başlıksız section'lar. Görsel olarak gizli bile olsa bir başlık ekle ya da bunun bir section olup olmadığını yeniden düşün.
  • <main> yerine <section> kullanmak. Sayfanın ana içeriği <main> içine girer; section'lar onun içine girer.
  • Her section'ı adlandırmak. Landmark listesi kısa kalsın diye aria-labelledby değerini yalnızca önemli olanlara ekle.

Sıkça Sorulan Sorular

HTML'de section etiketi nedir?

<section>, bir belgenin bir bölümü ya da bir açılış sayfasının "Pricing" kısmı gibi tek bir temaya ait içeriği gruplar. Normalde bölümün ne hakkında olduğunu söyleyen bir başlıkla başlamalıdır.

section ile div arasındaki fark nedir?

<section>, içeriğin belgenin kendi başlığı olan, bir temaya ait bir parçası olduğunu söyler. <div> hiçbir şey söylemez; stil ya da yerleşim için bir kutudur. Yalnızca CSS için bir sarmalayıcıya ihtiyacın varsa <div> kullan.

section ile article arasındaki fark nedir?

<article>, sayfanın dışında kendi başına anlamlı olan içeriktir: bir blog yazısı, bir yorum, bir ürün kartı. <section> ise yalnızca kendi bağlamında anlamlı olan, daha büyük bir şeyin parçasıdır. Parçayı tek başına yayımlayıp yayımlayamayacağını sor: evetse, o bir article'dır.

Bir article section içerebilir mi, bir section da article içerebilir mi?

Evet, ikisi de. Uzun bir makale section'lara bölünebilir, "Latest posts" gibi bir section da bir article listesi barındırabilir.

Bir section'ın başlığı olmalı mı?

Neredeyse her durumda bir tane olmalı, çünkü temayı adlandıran şey başlıktır. Onun için bir başlık bulamıyorsan, içerik muhtemelen bir section değildir ve <div> daha uygun olur.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA