CSS görüntüyü yeniden boyutlandırmaya ve en boy oranını korumaya zorlar
Resimlerle çalışıyorum ve en boy oranlarıyla ilgili bir sorunla karşılaştım.
<img src="big_image.jpg" width="900" height="600" alt="" />
Gördüğünüz gibi, height
ve width
zaten belirtilmiştir. Resimler için CSS kuralı ekledim:
img {
max-width:500px;
}
Ancak big_image.jpg
için width=500
ve height=600
değerlerini alıyorum. Görüntüleri, en boy oranlarını koruyarak yeniden boyutlandırılacak şekilde nasıl ayarlayabilirim.
497
3
background-size özelliği sadece ie>=9'dur, ancak bu sizin için uygunsa,
background-image
ile bir div kullanabilir vebackground-size: contain
ayarını yapabilirsiniz:Artık div boyutunuzu istediğiniz gibi ayarlayabilirsiniz ve görüntü yalnızca en boy oranını korumakla kalmaz, aynı zamanda div içinde hem dikey hem de yatay olarak ortalanır. Div'ler etiketin kendisinde genişlik/yükseklik özelliğine sahip olmadığından, boyutları css üzerinde ayarlamayı unutmayın.
Bu yaklaşım setecs answer'dan farklıdır, bunu kullanarak görüntü alanı sabit olacak ve sizin tarafınızdan tanımlanacaktır (div boyutuna ve görüntü en boy oranına bağlı olarak yatay veya dikey olarak boş alanlar bırakarak), setecs answer ise size tam olarak ölçeklendirilmiş görüntünün boyutunda (boş alanlar olmadan) bir kutu verecektir.
Düzenle: MDN background-size belgesine]1 göre, IE8'deki background-size özelliğini özel bir filtre bildirimi kullanarak simüle edebilirsiniz:
Yükseklik" özelliğini kaldırın.
Her ikisini de belirterek görüntünün en boy oranını değiştirmiş olursunuz. Sadece birini ayarlamak yeniden boyutlandırır ancak en boy oranını korur.
İsteğe bağlı olarak, büyüklükleri kısıtlamak için:
Genişlik
,
yükseklikve
maks genişlik` değerlerinin birlikte belirtildiği görüntüler için en boy oranını korumanın standart bir yolu yoktur.Bu nedenle, resimlerin yüklenmesi sırasında sayfa "atlamalarını" önlemek için ya
width
veheight
belirtmek ya damax-width
kullanmak ve resimler için boyut belirtmemek zorundayız.Sadece
genişlik
(yükseklik
olmadan) belirtmek genellikle pek anlamlı değildir, ancak stil sayfanızaIMG {height: auto; }
gibi bir kural ekleyerekyükseklik
HTML özelliğini geçersiz kılmayı deneyebilirsiniz.Ayrıca ilgili Firefox hata 392261'a da bakın.