‘zemin-resmi’ etiketi için sonuçlar
Sayfa Zeminini Tamamen Kaplayan Resimler Tanımlamak
Temmuz 25th, 2011 • 4 yorum CSS
Etiketler: background-size, tam ekran, zemin-resmi
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.
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
- http://css-tricks.com/3458-perfect-full-page-background-image/
- http://cookbooks.adobe.com/post_Scale_Background_image_to_browser_size-17590.html
- http://www.paulmccrodden.com/2011/02/problems-css3-background-size-cover-iefilters/
- http://www.pziecina.com/design/turorial_demos/resize_background.php
- http://css-tricks.com/766-how-to-resizeable-background-image/
- http://paulmason.name/blog/item/full-screen-background-image-pure-css-code
- http://www.quackit.com/html/codes/html_stretch_background_image.cfm
- http://www.cssplay.co.uk/layouts/background.html
CSS ile Menü Oluşturmak V – Resimli Menüler
Kasım 21st, 2006 • 59 yorum CSS, Web Standartları, XHTML
Etiketler: arkaplan-resmi, background, CSS, Image-Replacement, menü, resimli-menü, Web Standartları, XHTML, zemin-resmi
"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 »