Bu yılın başlarında WebKit, CSS background
kısaltma özelliğinin davranışını güncelledi. Bu değişiklikle birlikte, background
kısayol mülkü, kısayol beyanında ayarlanmamışsa background-size
değerini varsayılan auto auto
değerine sıfırlayacaktır. Bu değişiklik, Chrome ve diğer WebKit tarayıcılarını spesifikasyona uygun hale getirir ve Firefox, Opera ve Internet Explorer'ın davranışıyla eşleşir.
Android için Chrome, WebKit'teki mevcut düzeltmelere geçiş yaptığından bu değişiklik Android'de kullanıma sunuluyor. Bu, webkit'te yapılan bir düzeltme olduğundan, birden fazla tarayıcıda test edilen siteler muhtemelen etkilenmez.
Eskiden yapılan işlemler
// background-size is reset to auto auto by the background shorthand
.foo {
background-size: 50px 40px;
background: url(foo.png) no-repeat;
}
background
kısaltma mülkü herhangi bir beden özelliği içermez ve bu nedenle background-size
'yi varsayılan değeri olan auto auto
olarak sıfırlar.
Resim boyutunu belirtmenin doğru yolu
// background-size is specified after background
.fooA {
background: url(foo.png) no-repeat;
background-size: 50px 40px;
}
// background-size is specified inline after position
.fooB {
background: url(foo.png) 0% / 50px 40px no-repeat;
}
fooB
'te, background
kısalığında bir background-size
belirtmek için önce position
(%0), ardından eğik çizgi ve background-size
(50px 40px) belirtilmelidir.
Mevcut kodda yapılan düzeltmeler
Bu sorunu kolayca çözmenizi sağlayacak birkaç seçenek vardır:
background
kısayolu yerinebackground-image
kullanın.background-size
öğesini, söz konusu öğedebackground
ayarlayan diğer CSS kurallarına kıyasla daha yüksek bir özgünlükle en son ayarlayın ve:hover
kurallarını kontrol etmeyi unutmayın.!important
özelliğinibackground-size
'a uygulayın.- Boyutlandırma bilgilerini
background
kısaltması mülküne taşıyın.
Bonus: Arka plan resmi ofsetleri
Bu değişikliğin yanı sıra, resmi arka planda konumlandırma konusunda daha fazla esneklik elde edebilirsiniz. Geçmişte yalnızca sol üst köşeye göre resim konumunu belirtebiliyordunuz. Artık kapsayıcının kenarlarına göre bir ofset belirtebilirsiniz. Örneğin, background-position: right 5px bottom 5px;
ayarlandığında resim sağ kenardan 5 piksel ve alttan 5 piksel mesafeye konumlandırılır. JSBin'deki bu örneğe göz atın.