CSS öğrenmenin en sağlam yolu, dili üç temel fikir üzerine kurmaktır: kural (hangi öğeye hangi bildirimlerin uygulanacağı), cascade (çakışan bildirimlerden hangisinin kazanacağı) ve kutu (her öğenin sayfada dikdörtgen bir alan kaplaması). Bu rehber, bu üç fikri kısaca anlatır ve serideki 49 yazının tamamını sekiz öğrenme yoluna göre sıralar; her bağlantının yanında o yazının size ne öğreteceğini bulabilirsiniz.

Rehberdeki bilgiler MDN Web Docs CSS belgelerinin Kasım 2026 kopyasına dayanır. Her yazı tek bir konuya odaklanır ve komşu konulara bağlantı verir; böylece aynı bilgiyi iki kez okumazsınız. HTML yapısını henüz bilmiyorsanız önce HTML ile web sayfası oluşturma rehberi yazısına göz atmanız işinizi kolaylaştırır; çünkü CSS her zaman bir belgenin üzerine uygulanır.

CSS nedir, neyi tanımlar?

CSS nedir, neyi tanımlar? Bildirim (declaration), Kural (ruleset), Seçici (selector), Cascade

CSS (Cascading Style Sheets), HTML ya da XML ile yazılmış bir belgenin nasıl sunulacağını tanımlayan bir stil sayfası dilidir. MDN, SVG, MathML ve XHTML gibi XML lehçelerini de bu kapsamda sayar. CSS yalnızca ekrandaki görünümü değil, belgenin kâğıda basıldığında, hatta sesli okunduğunda nasıl sunulacağını da tarif edebilir. Yani HTML içeriğin ne olduğunu, CSS ise o içeriğin nasıl görüneceğini söyler.

Sık duyulan "CSS3" ya da "CSS4" adlarına dair MDN'in açıklaması nettir: CSS 2.1'den sonra belirtim tek bir sürüm numarasıyla ilerlemeyi bıraktı. Konular modüllere ayrıldı ve her modül kendi düzey (level) numarasıyla gelişiyor; örneğin renkler için "CSS Color Module Level 5" gibi. Bu yüzden bir CSS3 ya da CSS4 sürümü olmayacak; bugün yazdığınız dilin adı yalnızca CSS'tir. W3C ise belirli aralıklarla belirtimin en güncel kararlı durumunun bir anlık görüntüsünü yayımlar.

KavramKısaca anlamıAyrıntılı yazı
Bildirim (declaration)özellik ve değer çifti, örneğin color: redCSS sözdizimi
Kural (ruleset)seçici listesi ve süslü parantezli bildirim bloğuCSS sözdizimi
Seçici (selector)kuralın hangi öğelere uygulanacağını belirleyen desenCSS seçiciler
Cascadeçakışan bildirimlerden hangisinin uygulanacağına karar veren algoritmaCascade ve kalıtım
Özgüllük (specificity)aynı katmandaki seçicilerin ağırlığıÖzgüllük hesaplama
Kutu modeliiçerik, padding, border ve margin alanlarıKutu modeli

CSS nasıl çalışır: kural, cascade ve kutu

1. Kural: seçici ve bildirim bloğu

CSS'in en küçük yapı taşı bildirimdir: bir özellik adı, iki nokta ve bir değer. Bildirimler süslü parantezlerle sınırlanan bir bildirim bloğunda toplanır ve noktalı virgülle ayrılır. Bloğun önüne virgülle ayrılmış bir veya daha fazla seçici yazdığınızda bir kural elde edersiniz. Tarayıcı, sayfadaki her öğe için hangi kuralların seçicisinin o öğeyle eşleştiğini bulur ve o kuralların bildirimlerini aday olarak toplar.

css
/* seçici listesi: h1 ve h2 */
h1,
h2 {
  color: navy;        /* bildirim 1 */
  font-weight: bold;  /* bildirim 2 */
}
/* sonuç: tüm h1 ve h2 başlıkları lacivert ve kalın görünür */

Kuralların yanında @ işaretiyle başlayan at-rule ifadeleri de vardır. @import başka bir stil dosyasını içeri alır, @media içindeki kuralları yalnızca belirli bir koşul doğruysa uygular, @font-face bir yazı tipi kaynağı tanımlar. Sözdiziminin ayrıntıları ve yorum yazımı CSS sözdizimi yazısında anlatılıyor.

2. Cascade: çakışmayı kim kazanır?

Bir öğeyle birden fazla kural eşleştiğinde aynı özellik için farklı değerler gelebilir. Hangisinin uygulanacağına cascade algoritması karar verir. MDN'e göre algoritma şu sırayla ilerler: önce o öğeye gerçekten uygulanabilen bildirimleri süzer (alaka), sonra bildirimleri kaynaklarına ve !important işaretine göre sıralar, eşitlik kalırsa seçicilerin özgüllüğüne bakar, ardından @scope yakınlığını değerlendirir ve en sonunda belgede en son yazılan bildirimi seçer.

  • Kaynak (origin): tarayıcının varsayılan stilleri (user-agent), kullanıcının kendi stilleri ve sitenin yazarının stilleri ayrı kaynaklardır. Normal bildirimlerde yazar stilleri kazanır.
  • Önem: !important ile işaretlenen bildirimlerde kaynak sırası tersine döner.
  • Özgüllük: aynı kaynak ve katmandaki seçiciler ID, CLASS ve TYPE sütunlarıyla karşılaştırılır.
  • Görünüm sırası: her şey eşitse sonra gelen bildirim kazanır.

Cascade'in bir de tamamlayıcısı vardır: kalıtım. Bir öğe için hiçbir bildirim bulunmadığında, kalıtılan özellikler (örneğin color) değerini ebeveynden alır; kalıtılmayan özellikler (örneğin border) başlangıç değerine döner. Bu iki konu cascade ve kalıtım ile özgüllük hesaplama yazılarında örneklerle açıklanıyor.

3. Kutu: her öğe bir dikdörtgendir

Tarayıcı belgeyi yerleştirirken her öğeyi standart CSS kutu modeline göre dikdörtgen bir kutu olarak temsil eder. Her kutunun dört alanı vardır: içerik, padding (iç boşluk), border (kenarlık) ve margin (dış boşluk). Bir öğenin genişliği, yanındaki öğeyle arasındaki mesafe ya da arka planın nereye kadar uzandığı bu dört alanın nasıl hesaplandığına bağlıdır. Flexbox ve grid gibi yerleşim araçları da sonuçta bu kutuları düzenler.

css
/* basit bir kart kutusu */
.kart {
  padding: 1rem;              /* içerik ile kenarlık arası */
  border: 1px solid gray;     /* kenarlık */
  margin: 2rem 0;             /* komşu kutularla arası */
}

Kutu modelinin ayrıntıları ve box-sizing ile genişlik hesabının nasıl değiştiği kutu modeli ve box-sizing yazılarında yer alıyor.

Hatalı CSS sayfayı bozmaz, sessizce yok sayılır

CSS'i JavaScript'ten ayıran önemli bir özellik de hata davranışıdır. Tarayıcı geçersiz bir bildirimle karşılaştığında hata mesajı göstermez; yalnızca o bildirimi atlar ve sonraki geçerli bildirimden devam eder. MDN bunu bir hata değil, dilin bilinçli bir özelliği olarak tanımlar: eski tarayıcılar yeni bir özelliği tanımasa bile sayfa çalışmaya devam eder. Öte yandan bu sessizlik, bir yazım hatasının neden etkisiz kaldığını anlamayı zorlaştırır. Neyin neden yok sayıldığını CSS çalışmıyor: sık hatalar yazısında adım adım ele alıyoruz.

Öğrenme yolu 1: Temeller

Bu aşama, sonraki her konunun üzerine kurulduğu dil kurallarını kapsar. Sırayla okumanızı öneririz.

Öğrenme yolu 2: Kutu ve akış

Öğrenme yolu 2: Kutu ve akış: CSS kutu modeli, CSS box-sizing ve border-box, CSS margin collapsing, CSS display

Öğelerin sayfada nasıl yer kapladığını ve normal akıştan nasıl çıkarıldığını bu bölümde öğrenirsiniz.

Öğrenme yolu 3: Flexbox, grid ve hizalama

Modern sayfa yerleşiminin iki temel aracı flexbox ve grid'dir. Tek eksenli düzenler için flexbox, satır ve sütunlu düzenler için grid ile başlayın.

Öğrenme yolu 4: Renk, arka plan ve yazı tipi

Görsel kimliği oluşturan renkler, arka planlar, kenarlar ve yazı tipleri bu bölümde toplanıyor.

Öğrenme yolu 5: Metin, değişkenler ve fonksiyonlar

Bu aşamada metin kaydırma kurallarını, yeniden kullanılabilir değişkenleri, hesaplama fonksiyonlarını ve ileri seçicileri öğrenirsiniz.

Öğrenme yolu 6: Hareket ve efektler

Öğrenme yolu 6: Hareket ve efektler: CSS transition geçiş efektleri, CSS animation ve @keyframes, transform, filter ve backdrop-filter

Geçişler, animasyonlar ve dönüşümler arayüze hareket katar. Kullanıcının hareket tercihlerine saygı göstermeyi de bu bölümde bulacaksınız.

Öğrenme yolu 7: Koşullu kurallar ve mimari

Büyüyen stil dosyalarını düzenli tutmak ve kuralları koşullara bağlamak için bu bölümdeki araçlara ihtiyaç duyarsınız.

Öğrenme yolu 8: Yeni özellikler, pratik desenler ve sık hatalar

Son aşama, daha yeni eklenen özellikleri ve günlük işte en sık karşılaşılan sorunları bir araya getirir.

Seri dışında kalan konular

Bu seri CSS dilinin kendisine odaklanır. Duyarlı (responsive) tasarım kavramı, viewport meta etiketi ve kırılma noktası seçimi mobil uyumluluk nedir yazısında, sayfa hızı ve düzen kayması Core Web Vitals yazısında anlatılıyor. Utility sınıflarıyla çalışan bir çerçeve arıyorsanız Tailwind CSS rehberi yazısına bakabilirsiniz. Sass, Bootstrap ve PostCSS bu serinin kapsamı dışında kalıyor. WordPress temalarındaki style.css başlık bloğu ise WordPress tema style.css yazısının konusudur.

CSS'i denemek için ayrı bir araç kurmanız gerekmez. Bir HTML dosyası ve onun içinden bağlanan bir .css dosyası yeterlidir; dosyayı tarayıcıda açıp geliştirici araçlarındaki stil panelinden hangi kuralın uygulandığını, hangisinin üstünün çizildiğini görebilirsiniz. Üstü çizili bildirim genellikle cascade'de kaybeden ya da geçersiz sayılan bir bildirimin işaretidir; bu panel, öğrendiğiniz kuralları canlı olarak gözlemlemenin en kolay yoludur.

html
<!-- index.html içinde, head bölümünde -->
<link rel="stylesheet" href="style.css" />

Sık Sorulan Sorular

CSS3 ve CSS4 diye bir sürüm var mı?

Hayır. MDN'e göre CSS 2.1'den sonra belirtim modüllere ayrıldı ve her modül kendi düzey numarasıyla ilerliyor. CSS3 ya da CSS4 adında bir sürüm olmayacak; dilin adı bugün yalnızca CSS'tir.

CSS öğrenmek için JavaScript bilmem gerekir mi?

Gerekmez. CSS ayrı bir dildir ve bu serideki örneklerin tamamı JavaScript olmadan çalışır. Etkileşimli arayüzlere geçtiğinizde JavaScript öğrenme rehberi size yol gösterebilir.

Hangi sırayla çalışmalıyım?

Önce temeller (sözdizimi, seçiciler, cascade, özgüllük, birimler), ardından kutu modeli ve akış, sonra flexbox ve grid. Renk, yazı tipi ve efektler bu temel oturduktan sonra çok daha hızlı öğrenilir.

Yazdığım CSS neden hiçbir hata vermeden çalışmıyor?

Çünkü tarayıcılar geçersiz bildirimleri sessizce yok sayar. En sık nedenler yazım hatası, eksik noktalı virgül, geçersiz bir seçici ve daha özgül başka bir kuraldır. Ayrıntılar için sık hatalar yazısına bakın.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: CSS sözdizimi · Cascade ve kalıtım · Kutu modeli · Flexbox rehberi · HTML sayfa oluşturma