CSS Breakpoint’ler
Media Queries @media'nın nasıl tetiklendiğini öğretti. Responsive Images, sorguların açtığı slot'lara görsellerin nasıl oturduğunu anlattı. Breakpoint'ler plandır: layout stratejisinin değiştiği kısa bir genişlik listesi — sütunlar, nav, boşluk — bir kez adlandırırsınız, her yerde aynı değerleri kullanırsınız; site adım adım birlikte hareket eder.
Breakpoint araç seti
📊 Breakpoint'lere kısa bakış
| Parça | Günlük iş |
|---|---|
| Breakpoint | Layout kurallarının değiştiği planlı genişlik |
| İçerik odaklı seçim | Tasarımın sıkıştığı veya boş kaldığı genişlikler — telefon SKU'ları değil |
Adlandırılmış adımlar (sm, md, lg…) |
Her yerde aynı token; denetim ve ekip çalışması kolay |
| Mobile-first merdiven | Taban = dar; min-width adımları iyileştirme ekler |
| Adımlar arası akışkan | Yeni sorgudan önce %, rem, Flex/Grid |
| Belgeli set | Yorum veya token'da kısa liste — yirmi tek seferlik değer değil |
Breakpoint «iPhone» değildir. «Yan panel artık makalenin yanına sığmıyor» veya «nav satır olabilir» demektir. İçeriği ölçün; sonra tek paylaşılan adım yazın.
Önce içerik — cihaz kataloğu değil
Tarayıcıyı bir şey kırılana kadar küçültün: satır çok uzun, kartlar ezilmiş, yer varken hamburger menü. O genişliği rem (veya em) ile not edin. Bu aday, telefon piksel tablosunu kopyalamaktan iyidir.
/* Break when article + sidebar need two columns (~48rem content width) */
@media (min-width: 48rem) {
.layout {
display: grid;
grid-template-columns: 1fr 16rem;
gap: 1.5rem;
}
}
Telefon telefon piksel listeleri çabuk eskir — her yıl yeni modeller gelir. Birkaç içerik odaklı adım daha uzun ömürlüdür ve stylesheet okunaklı kalır.
Adımları adlandırın — aynı genişlikleri tekrar kullanın
Tipik bir site için iki–dört adım yeter. Yorumlarda (veya genişlik değerlerini tutan CSS custom property'lerde) kısa isim verin. «Geniş layout'u başlatan» her bileşen aynı sayıyı kullanmalı — header'da 720px, grid'de 768px değil.
:root {
--bp-md: 40rem;
--bp-lg: 64rem;
}
/* Usage still needs a literal in @media in classic CSS —
keep tokens and queries in sync, or use a preprocessor/build step. */
@media (min-width: 40rem) {
.card-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 64rem) {
.card-grid {
grid-template-columns: repeat(3, 1fr);
}
}
Klasik CSS'te @media her tarayıcıda custom property'yi koşul olarak ummadığınız gibi okuyamaz — :root token'larını belgeleme ve JS/tooling yardımcısı sayın; eşleşen literal'ları tutarlı tutun. Önemli alışkanlık: paylaşılan bir merdiven, dosya başına rastgele genişlik değil.
Mobile-first merdiven
Sorgusuz dar varsayılanları yazın. Her min-width adımı sütun, daha büyük tip veya yatay nav ekler. Her adımda tüm sayfayı yeniden yazmayın — tek net katmanı değiştirin.
.nav {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.card-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
@media (min-width: 40rem) {
.card-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 64rem) {
.nav {
flex-direction: row;
align-items: center;
gap: 1.5rem;
}
.card-grid {
grid-template-columns: repeat(3, 1fr);
}
}
Desktop-first sıkıştırma (genişten başlıyorsanız)
Proje zaten geniş layout veriyorsa max-width sorguları küçük viewport'larda sütunları daraltabilir. Tutarlı kalın: aynı bileşen için sebepsiz min-width ve max-width karıştırmayın.
.sidebar {
width: 18rem;
float: left;
margin-right: 1.5rem;
}
@media (max-width: 39.99rem) {
.sidebar {
float: none;
width: auto;
margin-right: 0;
}
}
Proje başına bir yön tercih edin. Media Queries min-width / max-width sözdizimini işledi — burada kural strateji: paylaşılan adımlar, her yerde aynı felsefe.
Tek adım, birçok bileşen
--bp-lg (veya 64rem) tetiklendiğinde nav, grid ve boşluk aynı layout bölümüne aitse birlikte güncelleyin. Dağınık «neredeyse aynı» genişlikler hata üretir: header ana grid'den önce değişir.
@media (min-width: 64rem) {
.site-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.main {
display: grid;
grid-template-columns: minmax(0, 1fr) 18rem;
gap: 2rem;
}
}
Önce akışkan — sonra sorgular
Breakpoint'ler arasında Flex, Grid, % ve rem küçük genişlik değişimlerini zaten karşılamalı. Yeni sorgu yalnızca yapısal değişim gerektiğinde (sütun sayısı, farklı nav deseni). Daha çok sorgu daha profesyonel demek değildir.
Kendiniz deneyin
- Bir alıştırma sayfasını yeniden boyutlandırın; layout'un gerçekten değişmesi gereken iki genişliği listeleyin.
- Bu genişlikleri
rem'e çevirin ve adlandırın (md,lg). - Aynı iki
min-widthdeğerini hem kart grid'ine hem nav'a uygulayın. - CSS'te başka
min-width/max-widthsayılarını arayın — yakın kopyaları birleştirin. - Akışkan tabanı iyileştirerek (gap,
minmax, wrap) gereksiz bir sorguyu kaldırın.
Sık yapılan hatalar
- İçerik acı noktaları yerine her telefon genişliği kataloğu
- Birbirine yakın piksel değerleriyle on iki üst üste sorgu
- Header
768px'te, main800px'te, footer720px'te kırılıyor - Akışkan CSS'i atlayıp her düzeltmeyi yeni
@mediaile çözmek - Merdiven planlamak yerine burada
@mediaparantezleri veyasrcsettekrar öğretmek
Özet
- Breakpoint'ler planlı layout adımlarıdır — kısa bir set adlandırın ve tekrar kullanın
- Genişlikleri cihaz pazarlama tablolarından değil, içerik stresinden seçin
- Mobile-first
min-widthmerdivenini tercih edin; proje başına tek yön - Adımlar arası akışkan kalın; sorgu yalnızca yapısal değişim için
- Bu Responsive modülünü kapatır — sırada: Effects & Motion'da Box Shadow
🧠 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