CSS Çoklu Sütun
Optional Advanced az önce görsel sprite’ları işledi — bir sheet, birçok kare. Bu oturum başka bir isteğe bağlı araç: çoklu sütun. Araç çubuğu değil, gazete düşünün. CSS’ten uzun bir yazıyı iki veya üç dikey akışa dökmesini istersiniz. Grid üzerine bağımsız kart yerleştirmezsiniz.
Doğrudan yanıt
CSS çoklu sütun yerleşimi akan bir içerik bloğunu — genelde uzun metin — gazete sütunlarına böler. Sayıyı (column-count), rahat bir sütun genişliğini (column-width), oluğu (column-gap) ve isteğe bağlı dikey çizgiyi (column-rule) verirsiniz. Metin, listeler ve satır içi içerik önce ilk sütunu, sonra sonrakini doldurur. Uzun metin için. Navigasyon, kart destesi ve sayfa iskeleti için Flexbox veya Grid’de kalın ki her kutu bütün bir birim kalsın.
Sütunlar neden var
Uzun satırlar zor okunur. Dergiler bunu bir sayfada birkaç daha kısa sütunla çözdü. CSS aynı fikri web’e aldı: bir öğe, bir metin akışı, otomatik sütunlara sarılma. Bu Flexbox değil (öğelerin satırı/sütunu) ve Grid değil (iki boyutlu alan haritası). Çoklu sütun bir parçalama aracıdır — durdurmazsanız tarayıcı paragrafı sütun sınırında kesebilir.
Sayı: «üç sütun istiyorum»
column-count bir sayı ister. Tarayıcı kabın genişliğini o kadar sütuna böler (boşluklar düşülerek):
.article {
column-count: 3;
max-width: 60rem;
}
Geniş bir yazıda üç akış görürsünüz. Dar telefonda üç ince sütun okunmaz — media query ile eşleyin veya yer daralınca sayının düşmesi için column-width tercih edin.
Genişlik: «her sütun kabaca bu kadar»
column-width bir ipucu, kilitli piksel kafesi değil. Tarayıcı en az o genişlikte sığabildiği kadar sütun üretir:
.article {
column-width: 16rem;
max-width: 60rem;
}
Kutu ~48rem artı boşluksa üç sütun görebilirsiniz; küçülürse iki, sonra bir. Her görünümde sabit column-count: 3’ten genelde daha sakin. İkisini de koyabilirsiniz: sayı tavan, genişlik rahat taban. columns kısaltması önce genişlik sonra sayı, örneğin columns: 16rem 3.
Boşluk ve çizgi
Sütunlar nefes ister. column-gap oluktur. column-rule oraya ince bir çizgi çizer (kalınlık, stil, renk — border gibi ama kutu kenarı kadar ekstra yer kaplamaz):
.article {
column-width: 16rem;
column-gap: 2rem;
column-rule: 1px solid #cbd5e1;
}
Parça kısaltmalar var (column-rule-width, column-rule-style, column-rule-color). Çizgiyi sakin tutun; gazete ayırıcısı, ikinci bir tasarım sistemi değil.
Tüm sütunlara yayılan başlık
Başlık çoğu zaman tam genişlikte oturmalı, sütunlar altından başlamalı. Çocukta column-span: all bunu yapar:
.article h2 {
column-span: all;
margin: 0 0 1rem;
}
.article {
column-count: 2;
column-gap: 1.5rem;
}
Günlük kullanımda none ve all. Span başlık, öne çıkan görsel veya vurgu kutusu içindir — her paragraf için değil.
Kutular yarılmasın
Kart, altyazılı figure veya alıntı sütun kırılması ortadan keserse bozuk görünür. break-inside: avoid tarayıcıdan mümkünse o kutuyu tek sütunda tutmasını ister:
.article figure,
.article .callout {
break-inside: avoid;
margin: 0 0 1rem;
}
Baskı benzeri akışlarda break-before / break-after da; eski tarayıcılarda page-break-inside: avoid. Her savaşı kazanmazsınız — çok yüksek kutular yine taşar — ama hedef genelde altyazının görselle kalmasıdır. column-fill: balance (çoğu zaman varsayılan) yükseklikleri dengelemeğe çalışır; auto önce ilk sütunu doldurur (gazete atlamasına daha yakın).
Sütun vs Flex vs Grid
📊 Multi-column vs Flex vs Grid
| Tool | Job | Poor fit |
|---|---|---|
Multi-column (column-*) |
Long article, glossary, name list that should read like a newspaper | Card galleries, nav bars, full page shells |
| Flexbox | One-dimensional rows/columns of whole items (toolbar, chips, simple stacks) | Pouring a novel into three text streams |
| Grid | Two-dimensional page or component map (header / main / aside) | Replacing column-count on a <p> soup |
Sprites (background-position) |
Decorative icon tiles on a sheet | Laying out article text |
Flexbox ve Grid modülleri öğe yerleştirmeyi öğretti. Çoklu sütun justify-content veya adlı alan vermez. Tek akış döker. Her çocuk tıklanabilir dikdörtgen kalmalıysa Flex veya Grid kullanın.
Sayfa iskeleti Flex veya Grid kalsın
Tüm siteyi column-count: 3 yapmayın. Başlık, nav ve kart destesi bütün kutu ister:
.site-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.card-deck {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
gap: 1rem;
}
.prose {
column-width: 18rem;
column-gap: 1.75rem;
}
.prose çok sütunlu olabilir. .card-deck olmamalı. Aynı öğede ikisini karıştırmak görselleri keser, düğmeleri yanlış akışa düşürür.
Dar ekranlar ve okuma sırası
Sütunlar rahat bir satırdan ince olacaksa (kabaca 12–16rem metin) tek sütuna inin. Ekran okuyucu ve klavye belge sırasını izler, görsel tarama gibi «bir sütun aşağı sonra sonraki» değil — makale için uygun; ilgisiz widget panosunu sütunla taklit ederseniz tuhaf. RTL dillerde sütunlar writing mode’a göre dolar; çizgi yine olukta kalır.
Kendiniz deneyin
- Birkaç paragrafı
.proseiçine alın,column-count: 2vecolumn-gap. column-width: 16rem’e geçin, pencereyi çekin — sayının değişmesini izleyin.- Sakin gri
column-rule: 1px solidekleyin. column-span: all’lı bir<h2>koyun.- Bir figure’u
break-inside: avoidile sarın. Sonra aynı CSS’i kart ızgarasında deneyin — orada Flex/Grid neden daha sakin, görün.
Sık hatalar
- Çoklu sütunu kart galerisi veya tüm sayfa yerleşimi sanmak
- Telefonda
column-count: 3zorlamak, satırda üç sözcük kalana dek column-gapunutup akışları yapıştırmak- Görsel ve altyazının sütun sınırında yarılması
- Sütunlara Flex muamelesi: akış için
flex-growyok - Sprite ile karıştırmak — sprite arka planı kırpar; sütunlar metni böler
Özet
- Çoklu sütun tek akan akışı gazete sütunlarına döker
column-countsayı;column-widthrahat taban; ikisi birleştirilebilircolumn-gapvecolumn-ruleoluğu süsler; başlıklarcolumn-span: allbreak-inside: avoidmümkünse figure ve vurgu kutusunu bütün tutar- Sayfa iskeleti ve kart desteleri hâlâ Flex ve Grid’in
- Optional Advanced sonraki konu: maskeleme (
masking)
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek