‘zemin-resmi’ etiketi için sonuçlar

Sayfa Zeminini Tamamen Kaplayan Resimler Tanımlamak

Sitem üzerinden birçok mesaj aldım bu konuda. Sonunda yazmaya karar verdim, bir önceki makalemde CSS3’ün background-size özelliğini anlattım, orada da bahsettiğim gibi background-size özelliğini kullanarak bu işi çok kolay bir şekilde yapabiliriz. Buradaki problemimiz bu özelliği desteklemeyen tarayıcılar için nasıl bir çözüm bulmalıyız.

Bu makalede farklı tarayıcılar için sayfamızın zeminini tam kaplayan ardalan resimlerini nasıl tanımlayacağımızı anlatmaya çalışacağım.

CSS3 background-size ile basit şekilde yapalım

Bir önceki makalede de anlattığım gibi background-size özelliği bu iş için biçilmiş kaftandır. Çok basit bir kod ile istediğimize ulaşırız.

html {
       background: url(images/bg.jpg) no-repeat center center fixed;
       -webkit-background-size: cover;
       -moz-background-size: cover;
       -o-background-size: cover;
       background-size: cover;
}

Bir örnek yapalım

html{
    background:url("zemin_resmi.jpg") 0 0 no-repeat fixed;
    background-size:cover;
    -webkit-background-size:cover;
    -moz-background-size:cover;
    -o-background-size:cover;
}

Örneği görmek için tıklayınız.

Ardalan resmini http://interfacelift.com/wallpaper/details/2421/empty_bottles.html aldım.

html elementine vermemizin nedeni body tanımlamalarında bazı tarayıcılarda sorun yaşamamızdır. Kaydırma çubuğunun hareketi ile zemin resmi kaymaması için resmi sabitledik(fixed). cover özelliği ile resmi zemine yaydık. Daha detaylı bilgi için tıklayınız.

Browser Uyumu:
Internet Explorer 9+
Firefox 3.6+(-moz-), 4+(standart)
Chrome1 (-webkit-),3+(standart)
Safari3+(-webkit-), 4.1(standart)
Opera 9.5+(-o-), 10+(standart)

İnternet Explorer 9 sürümünden önceki sürümlerinin bu özelliği desteklememesidir. İnternet Explorer için filter ile bir çözüm üretebiliriz.

    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.zemin_resmi.jpg', sizingMethod='scale');
    -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='zemin_resmi.jpg', sizingMethod='scale')";

Bu kod ile ie içinde çözüm üretilmiş olacaktır. Linklerde ve içerik seçmede bazı orunlar olabiliyor.

Tüm Tarayıcılar İçin Çözüm

<div id="tamEkranArdAlan"><img src="http://www.fatihhayrioglu.com/images/emptybottles.jpg" width="100%" height="100%" /></div>
<div id="icerik">
...
</div>

Sayfamızı içerik ve ardalan resmi olarak ikiye ayırıyoruz.

html, body {height:100%; margin:0; padding:0;}

Sayfanın boşluklarını sıfırlıyoruz.

#tamEkranArdAlan {position:fixed; top:0; left:0; width:100%; height:100%;}

Zemine yerleştirilecek resmi sabitleyip üstten ve soldan başlangıç noktasına yerleştiriyoruz ve genişlik ve yükseklik değerini %100 veriyoruz.

#icerik {position:relative; z-index:1; width:650px; padding:20px; font:14px/1.8em Arial; margin:40px auto; border-radius:10px; color:#333; background-color:#fff}

İçerik alanını postion:relative; z-index:1 değeri atayarak içerikteki seçilme ve linklerde sorun olmasını engelliyoruz. Diğer tanımlar içerik alanının görselliğini ayarlamak içindir.

Bu kodlar ie6 hariç çalışırken ie6’da çalışmıyor ie6’da çalışması için

*html {overflow-y:hidden;}
*html body {overflow-y:auto;}
*html #tamEkranArdAlan {position:absolute; z-index:-1;}
*html #icerik {position:static;padding:20px;}

ie6 postipon:fixed desteklemediği için postion:absolute değeri tanımlıyoruz. İçerik alanınıda postion:static tanımlıyoruz. Kaydırma çubuğu sorunlarını halletmek için body ve html tanımlarımızı yapıyoruz.

Sonuç olarak tüm tarayıcılarda çalışan sayfa zeminini kapsayan zemin resmi tanımlamış olduk.

Sonuç

Sonuç olarak CSS3 ile birlikte gelen background-size özelliği tam işimizi görsede İnternet Explorer’un desteklememesi projelerimizde uygulamak için bizi düşündürüyor.

Tüm tarayıcıların desteklediği ikinci yöntem sadece CSS ile çözüm ürettiği için tercih edilebilir. Ayrıca javascript ile bazı çözümler olsa da ben css ile çözümü olan bir kodu javascript ile çözme taraftarı değilim. Javascript uygulamaları için http://css-tricks.com/3458-perfect-full-page-background-image/ linkindeki örnekleri incelemenizi öneriyorum.

Baktığım sitelerdeki uygulanabilir bu iki yöntemi sizlerle paylaştım uyguladıkça ve diğer yöntemleri gördükçe buraya ekleme yapabilirim. Birazda ihtiyaca göre yöntem uygulamak gerekiyor bu işte.

Kalın sağlıcakla

Kaynaklar

CSS ile Menü Oluşturmak V – Resimli Menüler

"Arkaplan Resmi kaydırmaca" ile Resimli Menüler

Arkaplan Resmi kaydırmaca tanımlamasını cemsid‘den aldım. CSS ile menü yapımı serimize devam ediyoruz. CSS ile yapılan bir çok menü örneği mevcut biz burada bunları katagorize edip her bir katagoriye bir örnek yaparak mantığını anlatmaya çalıyoruz, mantığını anladıktan sonra CSS ile yapılan tüm menüleri yapabileceğimize inanıyorum.
Okumaya devam edin »

Kategoriler

Kitap

CSS'e başlangıç Uzun süredir üzerinde çalıştığım CSS’e başlangıç kitabımı bitirdim. Aslında buna bir kitap demek ne kadar doğru bilmiyorum. Tam doğru tanımı makalelerimin derlenip düzenli hale getirildiği bir e-doküman demek daha doğru olur. Bu kitap makalelerimi derleyip hazırladığım ilk kitap. İnşallah ikinci kitabıda yazmayı düşünüyorum. Zaman ve imkânlar nispetinde 2. kitapta çıkacaktır.