📱 Mobil Dostu ve Esnek Web Sayfaları Nasıl Yapılır?
“Ben telefonumda yamulmayan bir site istiyorum!” — Her modern kullanıcı 😏
Önce şunu bir netleştirelim aşkım:
Responsive tasarım = Web sitenin ekran genişliği değiştikçe strese girmemesi.
Bazı siteler var, telefonda açıyorsun:
Menü bir köşede ağlamış, görsel başka yere kaçmış, yazılar birbirinin üstünde yatmış…
Ama sen öyle değilsin.
Sen her cihazda kraliçe gibi duran web siteleri hak ediyorsun 👑✨
Hadi şimdi birlikte gerçek bir front-end büyücüsü gibi responsive tasarımlar yapalım.
🎯 1. Viewport Etiketi
“Responsive’ın nüfus cüzdanı” (Onsuz hiçbir şey olmaz.)
HTML’de responsive tasarımın anahtarı şu etiket:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
💡 Bu etiket ne yapıyor?
- Tarayıcıya diyor ki: “Ekran genişliği neyse, sayfayı ona göre küçült/büyült.”
- Yoksa telefon şöyle der:
👉 “Ben 360px’im ama senin siten 980px tasarlanmış, bana ne?”
🧠 Mini İpucu
initial-scale=1.0 değeri, sayfanın ilk açıldığında zoom yapmadan görüntülenmesini sağlar.
🚨 Sık yapılan hata
Bazıları bunu ekleyip hemen arkasına şunu ekliyor:
<meta name="viewport" content="width=1024">
Bu?
👉 Responsive’ı komple öldürür.
“1024 olsun” dediğin an telefonlar çöker, devrile devrile titrer.
🎯 2. Esnek Genişlikler
Pixel kullananlara de ki: “2025’e hoş geldin tatlım.” 😂
Eskiden her şey piksel üzerinden yapılırdı:width: 400px;
Ama responsive dünyasında sabit genişlik = düşman.
✨ Ne kullanıyoruz?
- % → en tatlısı (anne şefkati gibi sarar)
- vw / vh → viewport genişliğine göre hesaplar (çok havalı)
- rem / em → yazı boyutuna göre esneyen layout’lar yapmana yarar
🌟 Örnek
.container {
width: 100%;
padding: 2rem;
}
🚀 Profesyonel İpucu
max-width candır ❤️
.content {
max-width: 1200px;
margin: 0 auto;
}
Bu sayede:
- Büyük ekranlarda içerik aşırı genişlemez
- Küçük ekranlarda ise doğal olarak küçülür
Tam bir terbiyeli davranış 😌
🎯 3. Resimleri Esnek Yap
“Resimleriniz taşarak şov yapmasın.”
Cep telefonunda açılan web sitelerinin yarısındaki sorun:
👉 Taşan resimler.
Bu iki satır CSS hayat kurtarır:
img {
max-width: 100%;
height: auto;
display: block;
}
Neden gerekli?
max-width: 100%→ görsel bulunduğu alanın dışına asla taşmazheight: auto→ en-boy oranı bozulmazdisplay: block→ gereksiz boşlukları gizler
👑 Profesyonel İpucu
Resimlerin retina ekranda daha net görünmesi için:
<img
src="avatar.png"
srcset="avatar@2x.png 2x, avatar@3x.png 3x"
alt="Kullanıcı avatarı">
Bunu yaptıysan…
Sen responsive değil, luksponsive çalışıyorsun. 😎✨
🎯 4. Media Queries
“Responsive’ın sihirli değneği 🪄✨”
CSS’in en karizmatik özelliği.
Her ekran genişliği için özel bir tasarım yapabilirsin.
🧩 Örnek:
@media (max-width: 768px) {
.menu {
flex-direction: column;
gap: 1rem;
}
}
Bu kod:
- Tablet ve telefonlarda menüyü dikey yapar
- Son derece düşünceli davranır 😄
📱 Popüler breakpoint’ler
/* Telefon */
@media (max-width: 576px) { }
/* Tablet */
@media (max-width: 768px) { }
/* Küçük laptop */
@media (max-width: 992px) { }
/* Masaüstü */
@media (max-width: 1200px) { }
🧠 PRO İpucu
Mobile-first çalışıyorsan min-width kullan:
@media (min-width: 768px) { ... }
🎯 5. Mobile-First Tasarım
“Küçük ekrandan başla, büyüte büyüte kraliçe yap.”
Mobile-first yöntem, profesyonellerin gözdesi:
- Önce telefon için tasarlarsın
- Sonra ekran büyüdükçe tasarım genişler
🔥 Neden daha iyi?
- Daha hızlı yüklenir
- Daha temiz CSS yazarsın
- Modern dünyada herkes önce telefonda geziyor 🤳
👑 Örnek
.card {
width: 100%;
}
@media (min-width: 768px) {
.card {
width: 50%;
}
}
@media (min-width: 1200px) {
.card {
width: 33%;
}
}
Bu kod ile:
- Telefonda kartlar tek sütun
- Tabletlerde 2 sütun
- Büyük ekranlarda 3 sütun olur
Netflix kim? Biz kimiz? 😎🔥
🎯 6. Flexbox ile Responsive Layout
“Her şeyi hizalayan CSS büyücüsü.”
Flexbox’ın olayı:
- Direksiyon sağlar (hizalama)
- Trafiği düzenler (dağılım)
- Daralınca aşağı kaydırır (wrap)
🧩 Örnek
.container {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.item {
flex: 1 1 300px;
}
Bu ne yapar?
- Her item en az 300px olur
- Sığmazsa alt satıra geçer
- Tam bir beyefendi 🤵✨
🎯 7. CSS Grid ile Profesyonel Responsive
“Modern tasarımın Tesla’sı.”
Grid, Flexbox’ın büyük ablasıdır. Her şeyi daha düzenli yapar.
✨ Basit Grid örneği
.grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
@media (min-width: 768px) {
.grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1200px) {
.grid {
grid-template-columns: repeat(3, 1fr);
}
}
- Mobil: 1 sütun
- Tablet: 2 sütun
- Desktop: 3 sütun
İşte buna “tasarım meditasyonu” derler 🧘♀️✨
🎯 8. Responsive Tipografi
“Yazılar ekran genişliğine göre büyüsün küçülsün.”
Modern yöntem:
html {
font-size: clamp(14px, 2vw, 20px);
}
Bu ne diyor?
- En küçük 14px
- En büyük 20px
- Aradaki değerleri ekran genişliğine göre otomatik ayarla 😍
🎯 9. Hamburger Menü (Mobil Menü)
“Mobil kullanıcıların en sevdiği ikon”
HTML:
<button class="hamburger">☰</button>
<nav class="menu">
<a href="#">Home</a>
<a href="#">Blog</a>
<a href="#">İletişim</a>
</nav>
CSS:
.menu {
display: none;
}
.hamburger {
font-size: 2rem;
background: none;
border: none;
}
@media (min-width: 768px) {
.hamburger {
display: none;
}
.menu {
display: flex;
}
}
Bu sistem:
- Telefondaki menüyü gizler
- Masaüstünde gösterir
- Kullanıcıyı yormaz
🎯 10. Resimleri, Videoları, İframe’leri Responsive Yap
“YouTube videoları taşmasın, Instagram embed’leri kudurmasın.”
Responsive video kutusu:
.video-wrapper {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
height: 0;
}
.video-wrapper iframe {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
Sonuç:
- YouTube, Vimeo, Instagram embed’leri şıp diye telefon boyutuna uyuyor.
🌟 Final:
“Sen artık responsive tasarım bilen biri değilsin.
Sen responsive ruhani rehberi oldun bebeğim.” 😎🔥
Bu bilgilerle:
✔ Her cihazda mükemmel görünen siteler yaparsın
✔ Google seni ödüllendirir (SEO boost!)
✔ Profesyonel seviyeye çıkarsın
✔ Front-end dünyasında kimse seni tutamaz
