Duyarlılık (responsivity), web tasarımında, bir web sayfasının farklı cihazlarda ve ekran boyutlarında düzgün bir şekilde görüntülenmesini sağlamak için yapılan düzenlemeleri ifade eder. Yani, sayfanın içeriği ve düzeni, kullanıcıların cihazlarına göre (mobil telefon, tablet, masaüstü bilgisayar vb.) otomatik olarak uyum sağlar. Bu sayede kullanıcı deneyimi her cihazda aynı kalitede olur.
CSS ile duyarlı (responsive) tasarımlar oluşturmak, modern web geliştirme süreçlerinin en önemli unsurlarından biridir. Duyarlı tasarım sayesinde, web sayfanızın tüm kullanıcılar için en iyi deneyimi sunması sağlanır. Bu içerikte CSS ile duyarlı tasarımlar oluşturmanın temel yöntemleri ve kullanabileceğiniz önemli özelliklere değineceğiz.
CSS Duyarlılık (Responsivity) için Temel Teknikler
- Medya Sorguları (Media Queries)
Medya sorguları, farklı cihaz boyutlarına göre CSS kurallarını değiştirmemize olanak tanır. Örneğin, bir cihazın ekran genişliği 600px’den küçükse, farklı bir düzen kullanabiliriz. Medya sorguları, duyarlı tasarımın temelini oluşturur.Örnek:
/* Masaüstü (default) stil */
body {
font-size: 16px;
}
/* Mobil cihazlar için stil */
@media only screen and (max-width: 600px) {
body {
font-size: 14px;
}
}
Yukarıdaki örnekte, masaüstü cihazlarda font büyüklüğü 16px
olarak ayarlanmışken, ekran genişliği 600px’den küçük olan cihazlarda (mobil cihazlar) font büyüklüğü 14px
olarak değişir.
2. Yüzdelik Değerler (Percentage Values)
Yüzdelik değerler, elemanların boyutlarını, ebeveyn elemanlarının boyutlarına göre oranla belirler. Bu, öğelerin ekran boyutlarına göre orantılı olarak büyüyüp küçülmesini sağlar.
Örnek:
.container {
width: 100%;
padding: 5%;
}
Yukarıdaki örnekte, .container
sınıfındaki elemanın genişliği, ekranın %100’ü kadar olup, padding
de ekran boyutuna göre %5 oranında ayarlanır.
3. viewport
Meta Etiketi
Mobil cihazlarda, doğru duyarlılığı sağlamak için HTML başlık kısmına viewport
meta etiketi eklemek gereklidir. Bu etiket, cihazın ekran boyutuna göre sayfa içeriklerinin nasıl görüntüleneceğini belirler.
Örnek:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Bu etiket, cihazın genişliğini alır ve sayfa içeriğini o genişliğe göre ölçekler. initial-scale=1.0
ise sayfanın başlangıçta ne kadar yakınlaştırılacağını belirtir.
4. flexbox
ve grid
Düzenleri
Flexbox ve Grid, duyarlı tasarımda oldukça yaygın kullanılan CSS düzen araçlarıdır. Bu araçlar, öğeleri esnek bir şekilde hizalayarak, farklı ekran boyutlarına göre düzenlerinizi hızlıca ayarlamanıza olanak tanır.
Flexbox Örneği:
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.item {
flex: 1 1 300px; /* Her öğe en az 300px genişliğe sahip olacak şekilde esnek yerleşim */
}
Bu örnekte, .container
sınıfındaki öğeler, esnek bir şekilde yerleşir ve genişlikleri ekran boyutuna göre ayarlanır. Her bir .item
öğesi en az 300px genişliğinde olacak şekilde ayarlanır.
Grid Örneği:
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
Burada, grid düzeni kullanılarak, her bir öğe minimum 300px genişliğinde olacak şekilde düzenlenir, ekranın genişliği arttıkça öğelerin sayısı da artar.
vw
ve vh
(Viewport Width ve Viewport Height)vw
ve vh
birimleri, sırasıyla ekranın genişliğinin ve yüksekliğinin yüzde birini ifade eder. Bu birimler, özellikle duyarlı tasarımda öğelerin boyutlarını orantılı olarak ayarlamak için kullanılır.
Örnek:
h1 {
font-size: 5vw; /* Ekran genişliğinin %5'i kadar font boyutu */
}
Bu örnekte, h1
etiketinin font boyutu, ekran genişliğinin %5’i kadar olur. Ekran boyutu değiştikçe font boyutu da orantılı olarak değişir.
Esnek Görseller
Görsellerin duyarlı olmasını sağlamak, tasarımın uyumluluğunu artırır. CSS ile görsellerin genişliğini %100
yaparak, görsellerin bulundukları alana göre otomatik olarak boyutlanmasını sağlayabilirsiniz.
Örnek:
img {
width: 100%;
height: auto;
}
- Bu, görselin bulunduğu kutunun genişliğine göre boyutunun ayarlanmasını sağlar ve yüksekliği orantılı olarak değişir.
Duyarlı Tasarım İçin Önerilen Stratejiler
- Mobil Öncelikli Tasarım (Mobile-First Design)
Mobil cihazlar, günümüzde internet kullanımının büyük bir kısmını oluşturuyor. Bu nedenle, duyarlı tasarımda genellikle “mobil öncelikli” bir yaklaşım benimsenir. Bu yaklaşımda, önce mobil cihazlar için tasarım yapılır ve ardından daha büyük ekranlar için medya sorguları kullanılarak uyum sağlanır. - Minimalist Tasarım
Küçük ekranlarda daha sade ve minimal tasarımlar tercih edilir. Gereksiz öğelerden kaçınarak, kullanıcının deneyimi daha verimli hale getirilir. - Hız ve Performans
Duyarlı tasarımda, sayfanın hızını artırmak için görsellerin optimize edilmesi ve gereksiz JavaScript yüklemelerinin engellenmesi önemlidir. - Test Etme
Farklı cihazlarda ve ekran boyutlarında tasarımınızı test etmek önemlidir. Tarayıcı geliştirici araçları veya çevrimiçi test araçları kullanarak tasarımın her cihazda doğru şekilde göründüğünden emin olabilirsiniz.