Şu anda bir şirket için bir mobil açılış sayfası üzerinde çalışıyorum. Bu gerçekten basit bir düzen ancak başlığın altında her zaman% 100 genişlikte olacak bir ürün resmi var (tasarım her zaman bir kenardan kenara gittiğini gösteriyor). Ekranın genişliğine bağlı olarak görüntünün yüksekliği açıkça buna göre ayarlanacaktır. Bunu başlangıçta bir img (% 100 CSS genişliğinde) ile yaptım ve harika çalıştı, ancak farklı çözünürlüklere dayalı olarak farklı görüntüler sunmak için medya sorgularını kullanmak istediğimi fark ettim - küçük, orta ve örneğin aynı görüntünün büyük bir versiyonu. İmg src'yi CSS ile değiştiremeyeceğinizi biliyorum, bu yüzden HTML'deki bir img etiketi yerine resim için bir CSS arka planı kullanmam gerektiğini düşündüm.
Arka plan resmine sahip div'in arka planı göstermek için hem genişliğe hem de yüksekliğe ihtiyacı olduğu için bunu düzgün bir şekilde çalıştıramıyorum. Açıkça 'width: 100%' kullanabilirim ama yükseklik için ne kullanmalıyım? 150px gibi rastgele sabit bir yükseklik koyabilirim ve sonra görüntünün en üst 150 pikselini görebilirim ancak sabit bir yükseklik olmadığı için çözüm bu değil. Bir oyun oynadım ve bir kez yükseklik olduğunda (150px ile test edildi) görüntüyü div'e doğru şekilde sığdırmak için 'background-size: 100%' kullanabileceğimi keşfettim. Yalnızca mobil cihazlara yönelik olduğu için bu proje için daha yeni CSS3'ü kullanabilirim.
Aşağıya kaba bir örnek ekledim. Lütfen satır içi stilleri mazur görün ama sorumu biraz daha netleştirmek için basit bir örnek vermek istedim.
<div id="image-container">
<div id="image" style="background: url(image.jpg) no-repeat; width: 100%; height: 150px; background-size: 100%;"></div>
</div>
Tüm sayfaya bağlı olarak kapsayıcı div'e bir yüzde yüksekliği vermek zorunda mıyım yoksa buna tamamen yanlış mı bakıyorum?
Ayrıca, CSS arka planlarının bunu yapmanın en iyi yolu olduğunu düşünüyor musunuz? Belki cihaz / ekran genişliğine bağlı olarak farklı img etiketleri sunan bir teknik vardır. Genel fikir, açılış sayfası şablonunun farklı ürün resimleriyle defalarca kullanılacağıdır, bu yüzden bunu mümkün olan en iyi şekilde geliştirdiğimden emin olmalıyım.
Özür dilerim, bu biraz uzun soluklu ama bu projeden diğerine gidip geliyorum, bu yüzden bu küçük şeyi yapmak istiyorum. Zaman ayırdığınız için şimdiden teşekkürler, çok takdir edilmektedir. Saygılarımızla