Jump to content
  • entries
    21
  • comments
    0
  • views
    418

CSS line-height Özelliği


CSS'teki line-height (satır yüksekliği) özelliğinin değeri, modern web tasarımında metin okunabilirliğini ve dikey ritmi sağlamak için kritik öneme sahiptir. CSS'in en kritik tipografi özelliklerinden biridir. Duyarlı (responsive) tasarımlarda okunabilirliği artırmak temel hedeftir.

line-height temel olarak, bir metin satırının yukarısındaki ve aşağısındaki görünmez boşluğu (leading) belirler. Bu boşluk, satırın kendisinin yüksekliğini oluşturur ve metin boyutuyla (font-size) ilişkilidir.

Modern CSS değer birimi, Unitless (birimsiz)'dir. Adaptif ve Ölçeklenebilir bir çözüm sunar. Bu, dikey ritmin ve okuma konforunun tüm cihaz ve boyutlarda korunmasını sağlar.

 

Değer türü Örnek Kabul edilir mi? Açıklama
Unitless (birimsiz) 1.5 Oransal, en önerilen yöntem
Pixel 20px Sabit uzunluk
Em 1.2em Yazı boyutuna bağlı
Rem 1.4rem Root font-size’a bağlı
Yüzde 120% Oran olarak
Normal normal Tarayıcı varsayılanı
Viewport 3vh Geçersiz
fr 1fr Grid’e özeldir

 

Temel Konsept

line-height, bir satırın toplam yüksekliğini belirler (font yüksekliği + üst/alt boşluk):

┌─────────────────────┐ ← Line box top
│     ↑ Leading       │
│   ┌─────────┐       │
│   │  Text   │       │ ← Font size
│   └─────────┘       │
│     ↓ Leading       │
└─────────────────────┘ ← Line box bottom

Leading = (line-height - font-size) / 2

 

Değer Tipleri ve Davranışları

1. Unitless (Oran) - EN İYİ UYGULAMA

p {
  font-size: 16px;
  line-height: 1.5; /* Oransal - font-size'ın 1.5 katı */
  /* = 16px * 1.5 = 24px */
}

Miras davranışı:

.parent {
  font-size: 16px;
  line-height: 1.5; /* ORAN miras alınır */
}

.child {
  font-size: 32px;
  /* line-height: 1.5 ORANI miras alır */
  /* = 32px * 1.5 = 48px  DOĞRU */
}

 

2. Piksel (px) - KÖTÜ UYGULAMA

p {
  font-size: 16px;
  line-height: 24px; /* Sabit değer */
}

Miras davranışı:

.parent {
  font-size: 16px;
  line-height: 24px; /* HESAPLANMIŞ DEĞER miras alınır */
}

.child {
  font-size: 32px;
  /* line-height: 24px sabit değer miras alır */
  /* Metin üst üste biner!  SORUNLU */
}

 

3. Yüzde (%) - YANILTICI

p {
  font-size: 16px;
  line-height: 150%; /* = 24px olarak HESAPLANIR */
}

Miras davranışı:

.parent {
  font-size: 16px;
  line-height: 150%; /* Parent'ta 24px olarak hesaplanır */
}

.child {
  font-size: 32px;
  /* line-height: 24px (hesaplanmış değer) miras alır */
  /* Yine sorunlu!  */
}

 

4. Em Birimi - KARMAŞIK

p {
  font-size: 16px;
  line-height: 1.5em; /* = 16px * 1.5 = 24px olarak HESAPLANIR */
}

Miras davranışı:

.parent {
  font-size: 16px;
  line-height: 1.5em; /* = 24px hesaplanır */
}

.child {
  font-size: 32px;
  /* line-height: 24px miras alır  */
}

 

5. Rem Birimi - ⚠️ ÖZELLİKLE KULLAN

:root {
  font-size: 16px;
}

p {
  font-size: 1rem; /* 16px */
  line-height: 1.5rem; /* = 24px sabit */
}

h1 {
  font-size: 2rem; /* 32px */
  /* Eğer line-height belirtilmezse, parent'tan miras alır */
  /* 24px alırsa sorunlu olur */
}

 

Detaylı Karşılaştırma

/* Test senaryosu */
.container {
  font-size: 16px;
}

/* Senaryo 1: Unitless  */
.container-unitless {
  line-height: 1.5; /* Oran */
}

.container-unitless .small {
  font-size: 12px;
  /* line-height = 12px * 1.5 = 18px  */
}

.container-unitless .large {
  font-size: 32px;
  /* line-height = 32px * 1.5 = 48px  */
}

/* Senaryo 2: Piksel  */
.container-px {
  line-height: 24px; /* Sabit */
}

.container-px .small {
  font-size: 12px;
  /* line-height = 24px (geniş boşluk) ⚠️ */
}

.container-px .large {
  font-size: 32px;
  /* line-height = 24px (metin üst üste biner!)  */
}

/* Senaryo 3: Yüzde  */
.container-percent {
  line-height: 150%; /* 16px * 150% = 24px hesaplanır */
}

.container-percent .large {
  font-size: 32px;
  /* line-height = 24px miras alır  */
}

/* Senaryo 4: Em  */
.container-em {
  line-height: 1.5em; /* 16px * 1.5 = 24px hesaplanır */
}

.container-em .large {
  font-size: 32px;
  /* line-height = 24px miras alır  */
}

 

Line-height Değeri Nasıl Hesaplanır?

İdeal Değerler:

  • Kısa Satırlar (Başlıklar, Navigasyon): Daha küçük değerler (örneğin, 1.2 - 1.4) kullanılabilir. Çünkü satır uzunluğu kısaldıkça gözün bir sonraki satıra geçme zorluğu azalır.

  • Uzun Satırlar (Gövde Metni/Paragraf): Okunabilirliği artırmak için daha büyük değerler (örneğin, 1.5 - 1.6) kullanılır. Satır uzadıkça, okuyucunun kaybolmadan bir sonraki satırın başına kolayca dönmesi için daha fazla boşluğa ihtiyacı vardır.

  • Font Tasarımı: Her yazı tipi, büyük ve küçük harflerinin boyutunu ve tasarımını (x-yüksekliği) farklı şekilde yönetir. Kullanılan fonta göre line-height değeri değişebilir. X-yüksekliği büyük olan fontlar daha kolay okunur. X-yüksekliği azaldıkça line-height değeri artar.

Leading (Satır Aralığı)

.text {
  font-size: 16px;
  line-height: 1.5; /* = 24px */
}

/* Leading hesaplama:
   Leading = line-height - font-size
   Leading = 24px - 16px = 8px
   
   Üst boşluk = 8px / 2 = 4px
   Alt boşluk = 8px / 2 = 4px
*/

Normal Değeri

p {
  line-height: normal; /* Tarayıcı varsayılanı */
  /* Çoğu tarayıcıda ~1.2 */
  /* Font'a göre değişebilir */
}

Dikkat: normal değeri font'a bağlı olarak değişir, tahmin edilemez. Daima açık değer belirt.

 

Tipografi için İdeal Değerler

Genel Kurallar

/* Body metni - Paragraflar */
body {
  line-height: 1.6; /* Optimal okunabilirlik */
  /* 1.5 - 1.8 arası genelde iyi */
}

/* Başlıklar */
h1, h2, h3, h4, h5, h6 {
  line-height: 1.2; /* Sıkı - başlıklar tek/iki satırlık */
  /* 1.1 - 1.3 arası */
}

/* Küçük metinler */
.small-text {
  font-size: 0.875rem; /* 14px */
  line-height: 1.4;
}

/* Büyük display metinler */
.display {
  font-size: 4rem;
  line-height: 1; /* Çok sıkı veya 1.1 */
}

/* Kod blokları */
code, pre {
  line-height: 1.6; /* Kod okunabilirliği için */
}

/* Butonlar - Tek satır */
.button {
  line-height: 1; /* Dikey ortalama için */
  padding: 0.75em 1.5em; /* Em ile oransal padding */
}

/* Liste elemanları */
li {
  line-height: 1.8; /* Listeler için daha geniş */
}

/* İnce/uzun yazı kolonları */
.narrow-column {
  max-width: 40ch;
  line-height: 1.8; /* Dar kolonlarda daha geniş */
}

/* Geniş yazı kolonları */
.wide-column {
  max-width: 80ch;
  line-height: 1.5; /* Geniş kolonlarda daha sıkı */
}

Bilimsel Temeller

Okunabilirlik araştırmaları:

  • Optimal: 45-75 karakter genişliğinde satırlar için line-height: 1.5-1.6
  • Dar kolonlar (<45 karakter): line-height: 1.7-1.8
  • Geniş kolonlar (>75 karakter): line-height: 1.4-1.5
  • Başlıklar: line-height: 1.1-1.3

 

lh Birimi (Yeni)

/* Line-height'a göre oransal birim */
.text-box {
  line-height: 1.5; /* = 24px (16px font için) */
  
  /* Padding line-height'ın yarısı */
  padding-block: 0.5lh; /* = 12px */
  
  /* Margin line-height kadar */
  margin-bottom: 1lh; /* = 24px */
}

/* Dikey ritim için mükemmel */
.rhythm-element {
  line-height: 1.6;
  margin-bottom: 1lh; /* Her zaman line-height kadar */
}

 

0 Comments


Recommended Comments

There are no comments to display.

×
×
  • Create New...

Important Information