Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

CSS Grid'de named grid lines kullanarak karmaşık layout'ları daha okunabilir ve sürdürülebilir nasıl yaptığım

✖ Kapat
Duyuru
✖ Kapat
Duyuru

pixero

Üye
Katılım
14 Mart 2026
Mesajlar
53
Merhaba arkadaşlar, bugün sizlere CSS Grid ile uğraşırken beni deli eden bir sorundan ve onun nasıl üstesinden geldiğimden bahsedeceğim. Karmaşık, çok bölmeli bir layout tasarlıyordum ve grid-template-areas kullanıyordum. Ama bir yerden sonra, özellikle responsive hale getirmeye çalışırken, o alan isimleri ve satır/sütun numaraları arasında kaybolmuştum. "Bu div tam olarak nereden başlıyor, nerede bitiyordu?" diye kendi kendime sorup duruyordum. İşte o zaman named grid lines (isimlendirilmiş grid çizgileri) ile tanıştım ve hayatım değişti.

🔥 Sorun: Grid Çizgilerinin Sayısal Kabusu

Şöyle düşünün: 12 sütunlu bir grid'iniz var ve bir elemanı 3. çizgiden 9. çizgiye kadar yaymak istiyorsunuz. `grid-column: 3 / 9;` yazıyorsunuz. Bir ay sonra araya yeni bir sütun eklemeniz gerekti. Tüm o 3'leri, 9'ları, 5'leri tek tek bulup güncellemek zorundasınız. Bu hatayı ilk gördüğümde, özellikle media query'lerle birlikte, gerçekten kafayı yemiştim. Kod okunabilirliği sıfıra iniyordu.

💡 Çözüm: Çizgilere Anlamlı İsimler Vermek

CSS Grid, grid çizgilerinize istediğiniz ismi verebilmenize izin veriyor. Bunu, `grid-template-columns` ve `grid-template-rows` tanımlarken köşeli parantezler `[]` içinde yapıyorsunuz. İşte benim kullandığım en temiz çözümün başlangıcı:

CSS:
.container {
  display: grid;
  grid-template-columns:
    [sidebar-start] 250px
    [sidebar-end content-start] 1fr
    [content-end];
  grid-template-rows:
    [header-start] auto
    [header-end main-start] minmax(400px, auto)
    [main-end footer-start] 100px
    [footer-end];
  gap: 20px;
}

Yukarıdaki koda bakınca, daha tanımlama aşamasında layout'un yapısını anlayabiliyorsunuz. Sütunlarda `sidebar-start`, `sidebar-end`, `content-start` gibi çizgilerim var. Artık elemanları yerleştirirken sihirli sayılar kullanmama gerek yok.

🚀 Pratikte Kullanım: Okuması ve Yazması Kolay Yerleştirme

Şimdi, bu isimlendirilmiş çizgileri kullanarak elemanlarımızı yerleştirelim. Kodu okurken "sidebar, content-start'tan content-end'e kadar uzanıyor" gibi cümleler kurabiliyorsunuz. İnanılmaz derecede anlamlı hale geliyor.

CSS:
.header {
  / Eski yöntem: grid-column: 1 / -1; /
  grid-column: sidebar-start / content-end;
  grid-row: header-start / header-end;
  background-color: #2c3e50;
}

.sidebar {
  / Eski yöntem: grid-column: 1 / 2; grid-row: 2 / 3; /
  grid-column: sidebar-start / sidebar-end;
  grid-row: main-start / main-end;
  background-color: #34495e;
}

.main-content {
  grid-column: content-start / content-end;
  grid-row: main-start / main-end;
  background-color: #ecf0f1;
}

.footer {
  grid-column: sidebar-start / content-end;
  grid-row: footer-start / footer-end;
  background-color: #2c3e50;
}

⚙️ İleri Seviye İpuçları: Aynı Çizgiye Birden Fazla İsim

Bir çizgiye birden fazla isim verebilirsiniz! Bu, özellikle responsive tasarımda inanılmaz güçlü. Aynı çizgiyi hem `content-start` hem de `article-start` olarak adlandırabilirsiniz. Media query ile layout'u tamamen değiştirdiğinizde, sadece `grid-template-columns`'u değiştirirsiniz. Elemanların `grid-column` tanımları aynı isimleri kullanmaya devam eder ve otomatik olarak yeni yapıya uyum sağlar.

CSS:
/ Büyük ekranlar /
.container {
  grid-template-columns:
    [nav-start] 200px
    [nav-end main-start article-start] 1fr
    [article-end aside-start] 300px
    [aside-end main-end];
}

/ Küçük ekranlar (tek kolon) /
@media (max-width: 768px) {
  .container {
    grid-template-columns:
      [nav-start main-start article-start aside-start] 1fr
      [nav-end main-end article-end aside-end];
  }
}

/ Eleman tanımları DEĞİŞMİYOR! /
.nav { grid-column: nav-start / nav-end; }
.article { grid-column: article-start / article-end; }
.aside { grid-column: aside-start / aside-end; }

Gördüğünüz gibi, `.article` sınıfının kodu her iki durumda da aynı: `grid-column: article-start / article-end;`. Layout değişse de, isimlendirme sabit kaldığı için eleman doğru yere gidiyor. Bu, sürdürülebilirlik ve bakım kolaylığı açısından bir devrim.

Sonuç olarak, named grid lines özelliği, CSS Grid ile çalışırken kodunuzu belgelendirmenin ve gelecekteki sizden (veya takım arkadaşlarınızdan) lanet okumaları engellemenin harika bir yolu. Artık sayısal aralıkları tahmin etmek veya hatırlamak zorunda değilsiniz. Layout'unuz, isimleriyle kendini anlatıyor.

Peki ya siz? Karmaşık grid layout'larını yönetmek için hangi yöntemleri kullanıyorsunuz? `grid-template-areas` mı yoksa bu named lines yöntemi mi sizin için daha anlamlı? Ya da farklı bir numaranız var mı? Yorumlarda deneyimlerinizi paylaşın, tartışalım!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri