CSS Grid ile oluşturulan kartlarda uzun kullanıcı adı, oyun başlığı veya URL bulunduğunda sütun beklenenden genişleyebilir. Bunun nedeni, grid öğelerinin varsayılan olarak içeriklerinin minimum genişliğini korumaya çalışmasıdır.
Aşağıdaki örnekte kartlar dar ekranlarda taşmadan alt satıra geçer:
<div class="cards">
<article class="card">
<h2>Çok uzun bir oyun başlığı burada taşma yapabilir</h2>
<p>Bu açıklama kartın kullanılabilir alanına göre satırlara bölünür.</p>
</article>
<article class="card">
<h2>Başka bir kart</h2>
<p>İçerik uzun olsa bile sayfa yatay kaydırılmaz.</p>
</article>
</div>
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
gap: 1rem;
}
.card {
min-width: 0;
padding: 1rem;
border: 1px solid #d9d9d9;
border-radius: .5rem;
overflow-wrap: anywhere;
}
.card h2,
.card p {
margin: 0;
}
.card p {
margin-top: .5rem;
}
Kritik iki düzeltme
- , sütunun küçük ekranlarda kapsayıcıdan geniş olmasını engeller.
minmax(min(100%, 18rem), 1fr)yalnızca örnek bir alt genişliktir; tasarıma göre değiştirilebilir.18rem - , grid öğesinin içerik uzunluğu yüzünden sütunu zorla büyütmesini engeller.
min-width: 0 - , boşluksuz uzun metinlerin veya URL benzeri değerlerin kart dışına taşmasını önler.
overflow-wrap: anywhere
overflow: hiddenKontrol ve test adımları
Tarayıcı geliştirici araçlarında ekran genişliğini 320 piksele kadar düşürün. Kartların yatay kaydırma oluşturmadan tek sütuna inmesini kontrol edin. Ardından şu üç içerikle test yapın:
- Boşluksuz uzun bir kullanıcı adı veya URL.
- Birden fazla satıra yayılan uzun bir başlık.
- Normal uzunlukta kısa bir açıklama.
min-width: auto
