---
title: Listeler
source: 'https://academia.sh/tr/kurslar/web-temelleri-ve-html/listeler'
course: "Web'in Temelleri ve HTML"
language: tr
updated: '2026-08-17T18:09:31+00:00'
license: 'CC BY-SA 4.0'
---

# Listeler

Sırasız, sıralı ve tanım listelerinin ayrımı; sıralı liste numaralandırmasının kuralı, iç içe yazım ve liste seçiminin yapısal gerekçesi.

Metin içi işaretleme paragrafın içini yapılandırdı. Bazı içerikler ise paragraf değildir:
sıralı adımlar, birbirine denk maddeler, terim–açıklama çiftleri. Bunları paragraf olarak
yazmak yapı bilgisini yok eder — okuyucu maddelerin sayısını, sırasının anlamlı olup
olmadığını ve nerede bittiğini kestiremez.

Üç liste türü vardır ve seçim, içeriğin doğasına göre yapılır.

## Üç Tür

**Sırasız liste (`ul`)**, maddelerin sırasının anlam taşımadığı listedir. Maddeler yer
değiştirse belgenin anlamı değişmez.

**Sıralı liste (`ol`)**, sıranın anlam taşıdığı listedir: adımlar, sıralama, öncelik. Yer
değiştirme anlamı bozar.

**Tanım listesi (`dl`)**, ad–değer çiftlerinden oluşur: terim ve açıklaması, alan ve
içeriği, soru ve yanıtı.

Seçim ölçütü görünüm değildir. Bir sırasız listenin madde imlerini kaldırmak ya da bir
sıralı listenin numaralarını gizlemek sunum katmanının işidir; hangi ögenin seçileceğini
sıranın anlamlı olup olmadığı belirler.

## Madde Ögesi ve Kapsayıcısı

`li` ögesi bir liste maddesidir ve yalnızca bir liste ögesinin doğrudan çocuğu olabilir.
Doğrudan gövdeye yazılmış bir `li` ögesi geçersizdir.

`li` ögesinin kapanış etiketi yazılmayabilir; Belge Nesne Modeli dersinde görüldüğü gibi
yeni bir `li` açıldığında öncekisi kendiliğinden kapanır. Yazılması yine de yeğlenir.

Liste ögesinin doğrudan çocuğu olarak metin yazmak geçersizdir: `ul` ve `ol` ögelerinin
çocukları yalnızca `li` olabilir. Aradaki boşluk ve satır sonları yok sayılır, ancak
gerçek metin ayrıştırıcı tarafından listenin dışına taşınır.

```html
<ul>
  <li>Sıcaklık</li>
  <li>Bağıl nem</li>
  <li>Rüzgâr hızı</li>
  <li>Yağış</li>
</ul>
```

## Numaralandırma Kuralı

Sıralı listenin numaraları varsayılan olarak birden başlar ve birer artar. Üç öznitelik bu
davranışı değiştirir: `start` başlangıç değerini, `reversed` azalan sıralamayı, `value` tek
bir maddenin değerini belirler. `value` yazıldığında sonraki maddeler oradan devam eder.

```js
// listeler.mjs — sirali liste numaralandirma kurali
function numarala(liste) {
  const n = liste.ogeler.length;
  const baslangic = liste.start ?? (liste.reversed ? n : 1);
  const sonuc = [];
  let sayac = baslangic;
  for (const oge of liste.ogeler) {
    const deger = oge.value ?? sayac;
    sonuc.push([deger, oge.metin]);
    sayac = deger + (liste.reversed ? -1 : 1);
  }
  return sonuc;
}

const listeler = [
  { ad: "varsayilan", ogeler: [{ metin: "gövde açılır" }, { metin: "sensör okunur" }, { metin: "kayıt yazılır" }] },
  { ad: "start=5", start: 5, ogeler: [{ metin: "gövde açılır" }, { metin: "sensör okunur" }] },
  { ad: "reversed", reversed: true, ogeler: [{ metin: "gövde açılır" }, { metin: "sensör okunur" }, { metin: "kayıt yazılır" }] },
  { ad: "value ile atlama", ogeler: [{ metin: "gövde açılır" }, { metin: "sensör okunur", value: 7 }, { metin: "kayıt yazılır" }] },
];

for (const liste of listeler) {
  console.log("[" + liste.ad + "]");
  for (const [numara, metin] of numarala(liste)) console.log("  " + numara + ". " + metin);
}
```

```
[varsayilan]
  1. gövde açılır
  2. sensör okunur
  3. kayıt yazılır
[start=5]
  5. gövde açılır
  6. sensör okunur
[reversed]
  3. gövde açılır
  2. sensör okunur
  1. kayıt yazılır
[value ile atlama]
  1. gövde açılır
  7. sensör okunur
  8. kayıt yazılır
```

`reversed` durumunda başlangıç değerinin madde sayısından geldiğine dikkat edilmelidir:
liste üç maddeliyse üçten başlar. `start` yazılırsa o değer geçerli olur.

Bu değerler yalnızca görünüm değildir; belgenin taşıdığı veridir. Uzun bir yordamın ikinci
sayfasında `start="8"` yazmak, numaraları sunum katmanında elle yazmaktan farklıdır:
sekizinci adım olduğu belgede bildirilmiş olur.

Numaraların biçimi —rakam, harf, roma sayısı— bir sunum kararıdır ve sunum katmanında
belirlenir.

## Tanım Listeleri

`dl` ögesi ad–değer çiftlerini taşır. `dt` adı, `dd` değeri işaretler. İkisi arasındaki
ilişki komşuluktan çıkar: bir `dt` ögesini izleyen `dd` ögeleri ona aittir.

```html
<dl>
  <dt>Kuruluş yüksekliği</dt>
  <dd>1840 m</dd>

  <dt>Ölçüm aralığı</dt>
  <dd>10 dakika</dd>

  <dt>Sıcaklık</dt>
  <dt>Bağıl nem</dt>
  <dd>Aynı sensör gövdesinde ölçülür.</dd>
</dl>
```

Son grup, birden çok adın tek bir açıklamayı paylaşabildiğini gösterir. Tersi de
geçerlidir: bir ada birden çok `dd` ögesi verilebilir.

Bir çifti tek bir birim olarak gruplamak gerekirse `dt` ve `dd` ögeleri bir `div` içine
alınabilir; bu, `dl` ögesinin doğrudan çocuğu olarak izin verilen tek ek ögedir.

Tanım listesi, adı düşündürdüğünün ötesinde kullanılır: bir künye, bir üstveri çizelgesi,
bir soru–yanıt kümesi de ad–değer yapısındadır. Ölçüt sözlük olmak değil, her maddenin bir
adı ve ona bağlı bir değeri olmasıdır.

## İç İçe Listeler

Bir alt liste, üst listenin maddesinin **içine** yazılır — maddeler arasına değil.

```html
<ul>
  <li>Sıcaklık
    <ul>
      <li>Gövde sıcaklığı</li>
      <li>Toprak sıcaklığı</li>
    </ul>
  </li>
  <li>Bağıl nem</li>
</ul>
```

Alt listeyi `li` ögeleri arasına, doğrudan `ul` ögesinin çocuğu olarak yazmak yapıyı
bozar: alt liste hangi maddeye ait olduğunu bildirmez. Görünüm çoğu durumda benzer
kalacağı için kusur gözden kaçar; ekran okuyucuda ise iç içelik yanlış duyurulur.

İç içe yazımda kapanış etiketlerinin yazılması özellikle önemlidir. Dış maddenin kapanışı
yazılmazsa, kendiliğinden kapanma kuralı alt listenin bitiminde değil, sonraki `li`
açılışında işler; sonuç genellikle beklenendir ama kaynak metin yanıltıcı hâle gelir.

## Listenin Duyurduğu Bilgi

Liste ögesinin değeri madde imlerinde değil, taşıdığı sayımdadır. Ekran okuyucular bir
listeye girildiğinde madde sayısını ve o an kaçıncı maddede olunduğunu duyurur. Aynı
içeriği ard arda paragraflar olarak yazmak bu bilgiyi yok eder: kullanıcı kaç maddenin
olduğunu ancak sonuna vardığında öğrenir.

Bu ölçüt, listenin ne zaman kullanılmayacağını da belirler. Tek maddelik bir liste bir
sayım bilgisi taşımaz ve yalnızca girinti için yazılmışsa gereksizdir. Her satırı ayrı bir
liste olan bir yapı da aynı biçimde yanıltıcıdır: sayım her seferinde bire iner.

İki boyutlu veri de liste değildir. Her maddenin birden çok alanı varsa —her ölçümün
saati, değeri ve birimi gibi— yapı bir çizelgedir ve konunun son dersinde ele alınacak
tablo ögeleriyle yazılır. Listeyi tabloya çeviren ölçüt, maddelerin karşılaştırılabilir
alanlara bölünüp bölünmediğidir.

## İstasyon Belgesinde

Ölçüm istasyonu sayfasının iki listesi vardır ve türleri farklıdır:

```html
<h2>Ölçülen Büyüklükler</h2>
<ul>
  <li>Sıcaklık</li>
  <li>Bağıl nem</li>
  <li>Rüzgâr hızı</li>
  <li>Yağış</li>
</ul>

<h2>Kalibrasyon Yordamı</h2>
<ol>
  <li>Gövde kapağı açılır.</li>
  <li>Sensör bağlantıları sökülmeden okuma alınır.</li>
  <li>Referans değerle karşılaştırılır.</li>
  <li>Sapma kaydedilir ve gövde kapatılır.</li>
</ol>
```

Ölçülen büyüklüklerin sırası anlam taşımaz; kalibrasyon adımlarınınki taşır. Ayrım, iki
ögenin görünümüyle değil, içeriğin doğasıyla verilmiştir.

## Özet

- Sırasız liste sıranın anlamsız, sıralı liste anlamlı olduğu durumdadır; tanım listesi
  ad–değer çiftlerini taşır.
- `li` ögesi yalnızca bir liste ögesinin doğrudan çocuğu olabilir; liste ögesinin doğrudan
  çocuğu olarak metin yazılamaz.
- Sıralı listede `start`, `reversed` ve `value` numaralandırmayı belirler; `value`
  yazıldığında sonraki maddeler oradan devam eder.
- Tanım listesinde bir ada birden çok değer, bir değere birden çok ad bağlanabilir; ilişki
  komşuluktan çıkar.
- Alt liste, ait olduğu maddenin içine yazılır; maddeler arasına yazmak iç içelik bilgisini
  bozar.

## Sonraki Adım

Listeler içeriği gruplandırdı ama belge hâlâ kendi içine kapalıdır: başka bir belgeye
geçmenin yolu yoktur. Sonraki ders bağlantıları ele alır ve göreli bir adresin nasıl
çözüldüğünü —hangi tabana göre, hangi kuralla— gerçek çözümleme çıktıları üzerinden
gösterir.
