Tüm tarayıcılar için CSS Düzeltmeleri(Hack)
CSS ile web sayfası kodlarken bizi en çok zorlayan konulardan biri daha önceki yazılarımda bahsettiğim gibi farklı tarayıcı sürümlerine göre kod yazmaktır. CSS ile kod yazarken bazı durumlarda kodumuz bir tarayıcı grubunda düzgün görünürken başka bir tarayıcı grubunda farklı görüntülenir, tabi biz yaptığımız sitelerin kullanıcılar tarafından tarayıcısı ne olursa olsun aynı görünmesini isteriz. Bu gibi durumlarda kullandığımız yöntem aslında çok basit bir tekniktir. Hangi tarayıcıda farklı görünüyorsa onun için farklı kod yazarız ve bunu diğer tarayıcıların görmeyeceği kod bloğu içinde yazarız.
CSS Derslerindeki CSS Sorunları ve Çözüm Önerileri kısmındaki birçok yöntemin ana mantığıda budur.
Farklı tarayıcılar için düzenleme(hack) yazarken genel anlamda iki farklı yöntem kullanırız. Farklı css dosyaları hazırlayıp bunları eklerken şartlı yorumlar yardımı ile farklı tarayıcılar için farklı css kodlarını gösteririz, ikinci yöntem ise kod içerisinde o tarayıcının gördüğü kod bloğu içinde ona göre kod yazarız. Burada birinci yöntemi(IE’de Hata Ayıklamak için şartlı Yorumlar Kullanmak) daha önce anlatmıştık. Bu yazımızda kod içindeki css düzeltmelerinden bahsedeceğiz.
CSS kodu içinde farklı tarayıcılar için farklı kod yazmanın en kolay yolu, tarayıcılara özel seçiciler içine kod yazmaktır.
Tarayıcılara Özel Seçiciler
IE 6 ve altı
* html {}
IE 7 ve altı
*:first-child+html {} * html {}
sadece IE 7 için
*:first-child+html {}
IE 7 ve yeni nesil tarayıcılar için
html>body {}
Yalnız yeni nesil tarayıcılar için (IE 7 dışında)
html>/**/body {}
sadece IE 8 için
.test { property:value; property: value\9; *property: value; }
Opera 9 ve altı sürümler için
html:first-child {}
Safari
html[xmlns*=""] body:last-child {}
Google Chrome and Safari 3.1
body:nth-of-type(1){}
Firefox 2
.foo, x:-moz-any-link { }
FireFox 3
.foo, x:-moz-any-link, x:default { }
Firefox 2 ve 3 için yazdığımız kodu ie 7 de yorumluyor bunu engellemek için (Sonradan eklenmiştir.)
.foo, x:-moz-any-link { }
.foo, x:-moz-any-link, x:default { }
*:first-child+html .foo{}/*ie7 icin normali yazin*/
Sadece Firefox 3
html>;/**/body .foo, x:-moz-any-link, x:default { }
Burada önemli olan her tarayıcı farklı görünümünde bu metoda başvurmamak gerekir, çözümü olmayan sorunlarla karşılaştığımızda bu kodları kullanmalıyız.
Bu kodları kullanma gereksinim genelde Internet Explorer 6 ve 7 için oluyor. Ama nadirende olsa diğer tarayıcıların düzeltmeleride lazım oluyor. Bir örnek yapalım
/* Firefox 1 */
.ozelSecici, x:-moz-any-link {
background-color:#ffd560;
}
/* Firefox 2 */
.ozelSecici, x:-moz-any-link {
background-color:#ab1b0b;
}
/* Firefox 3 */
.ozelSecici, x:-moz-any-link, x:default {
background-color:#e6831f;
}
/* Google Chrome and Safari 3.1 */
body:nth-of-type(1) .ozelSecici{
background-color:#e6f0fa;
}
/* Opera 9 ve altı */
html:first-child .ozelSecici{
background-color:#a91614;
}
/* ie7 icin */
*:first-child+html .ozelSecici{
background-color:#0098de;
}
/* ie 7 ve alt sürümler icin */
*:first-child+html .ozelSecici{
background-color:#d4d0c8;
}
* html .ozelSecici{
background-color:#d4d0c8;
}
/* ie6 ve alti */
* html .ozelSecici{
background-color:#996666;
}
HTML kodu
<p class="ozelSecici">Tarayıcı</p>
Örneği görmek için tıklayınız.
Aynı XHTML kodu için aşağıdaki gibi farklı tarayıcılarda farklı sonuçları alırız.

Sayfa Google Chrome 0.3.154.9, Safari 3.1.2, Firefox 3.0.4/2.0.0.14, Internet Explorer 7/6/5.5, Opera 9.6 ile test edilmiştir.
- http://www.webdevout.net/css-hacks (*****)
- http://www.javascriptkit.com/dhtmltutors/csshacks2.shtml
- http://vikaskhera.wordpress.com/2008/08/02/css-hacks-browser-specific-selectors/ (****)
- http://centricle.com/ref/css/filters/ Önemli bir liste(****)
- http://www.siberkultur.com/?q=css-hackleri (***)
- http://www.sitepoint.com/article/browser-specific-css-hacks/ (***) sürümler eski
- http://www.artypapers.com/csshelppile/category.php?2
- http://rafael.adm.br/css_browser_selector/
- http://css-discuss.incutio.com/?page=CssHack
- http://snipplr.com/view/7043/firefox-3-css-hack/
- http://pornel.net/firefoxhack
- http://www.nealgrosskopf.com/tech/thread.asp?pid=20
- http://snipplr.com/search.php?q=CSS+hack&btnsearch=go
- http://fu2k.org/alex/css/hacks/fuzzyspecificity
- http://dimox.net/personal-css-hacks-for-ie6-ie7-ie8/ (ie6, ie7, ie8 ve ie9)
Fatih bey gördüğüm kadarıyla birçok yararlı paylaşımınız var bunun için size teşekkür ederim. Benim sorunum günlerdir aramam rağmen çözüm bulamadım. Resimlerin üzerine gelince çıkan açıklamayı css ile şekillendirdim ie sorunsuz çalıştırıyor ama firefoxta resimlerin üzerinde değil sitenin sol en altında gözüküyor. Bu konuda yardımınızı bekliyorum.
fatih bey chrome ve safari için yazd11m kodu firefox 3.5.2 de alg1l1yor bir incelermisiniz?
Evet Firefox 3.5 den itibaren bu özelliği desteklemeye başlayınca öyle oldu.
http://stackoverflow.com/questions/1159314/css-ha…
@media screen and (-webkit-min-device-pixel-ratio:0)
{ .ozelSecici{ background-color:#e6f0fa; } } işe yarıyor.
hocam her seferinde bunu söylüyorum ama iyiki varsınız. okadar müşkül durumlardan blogunuzdaki derslerle kurtuluyorumki inanamazsınız
su tarayıcıların bi standartı cıksa artık yaa. zulüm gibi geliyor. :( birisini düzeltirken diğeri kayıyor. :(
ben de şimi araştırırken aklıma geldi denedim, Hx taglarının kullanımında tag içinde kalan kısım ile cümlenin devamı niteliğindeki kısım ayrılıyor, tag içinde kalan kısım sonra gelen cümle devamını bir alt satıra atıyor bunu css den tag özelliğinde “display:inline” ekleyerek halledebiliyoruz.
teşekkür ederim
tam aradığım şey. saol fatih hocam, css adına ne lazım olsa burda var
@Ahmet USTA
header a position:relative tanımı yapıp
banner katmana da header sıfırına göre left ve top değerleri vererek halledebilirsin
Sitenizden fazlasıyla faydalandığımı belirtmek isterim ellerinize,emeğinize sağlık.Benim sorunum Firefox 3.0.5 de banenrda kullandığım flashı görememem ve hatta yerinde de olmaması.Örnek site http://www.klasantik.com
üzel ve aydınlatıcı bir paylaşım olmuş Fatih bey. Emeğinize sağlık!