Flexbox ve Grid arasında seçim yaparken “hangisi daha yeni?” yerine öğelerin birbiriyle nasıl hizalanması gerektiğine bakın. Bir düğme grubunda içerik genişlikleri belirleyicidir; kart listesindeyse farklı satırlardaki sütunların hizası önemli olabilir. Aynı sayfada ikisini birlikte kullanmak normaldir.
Flexbox: bir eksende içerik yerleştirme
Flexbox, satır veya sütun yönünde yerleşim için uygundur. Aşağıdaki araç çubuğu, öğeler sığmadığında yeni satıra geçer. Ek satırların sütunları birbirinden bağımsızdır; bu yüzden flex-wrap tek başına ortak sütun çizgilerine sahip bir tablo düzeni oluşturmaz.
.toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: .75rem;
}
Gezinme bağlantıları, etiketler ve form düğmeleri bu yapıya uygundur. justify-content ana eksendeki, align-items çapraz eksendeki hizalamayı etkiler; flex-direction değiştiğinde eksenlerin yönü de değişir.
Grid: ortak satır ve sütun çizgileri
Grid, iki boyutta yerleşimi tanımlamanıza olanak tanır. Bu kart kapsayıcısında her sütun en az 15rem hedefler; kapsayıcı daha darsa yüzde 100 sınırı tek kartın taşmasını önler.
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
gap: 1rem;
}
.card { min-width: 0; }
Yerleşim genişliğe göre kendiliğinden değişebilir. Ancak uzun ve bölünemeyen içerik hâlâ taşabilir; URL veya kod blokları için ayrıca taşma politikası belirleyin.
Kart listesinde Grid, kartın içinde Flexbox
.card { display: flex; flex-direction: column; }
.card__action { margin-top: auto; }
Bu kurallar, uygun HTML yapısında kartın eylem alanını kullanılabilir boşluğun altına iter. Grid dış yerleşimi düzenlerken Flexbox kartın içindeki akışı yönetir. Kart yüksekliğini sabit piksel değerine kilitlemek yerine uzun metinle büyümesini sınayın.
| İhtiyaç | Başlangıç tercihi |
|---|---|
| İçeriğe göre genişleyen menü ve düğme grubu | Flexbox |
| Satırlar boyunca hizalı kart sütunları | Grid |
| Kart içinde başlık, metin ve alt eylem | Flexbox |
| Sayfa bölgelerini satır ve sütunla tanımlama | Grid |
CSS ile görsel sırayı değiştirdiğinizde DOM okuma sırası aynı kalabilir. Klavye odağının ekranda beklenmedik yerlere atlamadığını kontrol edin. Dar ekranda yerleşimi değiştirmek için viewport ve media query rehberini kullanın. Başvuru: Grid'in diğer yerleşim yöntemleriyle ilişkisi.