Web Tarayıcıya Göre Değişebilen CSS Hazırlamak

Web sayfalarımızın ya da bloglarımızın farklı tarayıcılarda (Internet Explorer, Mozilla Firefox, Opera, Safari vb.) farklı görünümler alması bizi uğraştırmaya devam ediyor. Ben de bu konuda zaman zaman oldukça sıkıntı çekiyorum ve çarelerini araştırmak zorunda kalıyorum. Değişik görünümleri engellemek için farklı CSS hack yöntemleri kullanmak durumunda kalıyoruz. CSS hack yerine, web tarayıcısına göre değişen css şablonu kullanmak alternatif bir yöntem olabilir.

Yeni rastladığım bir yöntemi sizinle paylaşmak istiyorum.

Bunun için Rafael Lima ‘nın yazdığı bir Javascripti kullanabiliriz. 1 KB dan daha küçük olan bu javascripti header.php dosyanızdan yükletebilirsiniz.

Detaylı olarak anlatmak gerekirse;

css_browser_selector.js.txt dosyasını farklı kaydedip ismini css_browser_selector.js olarak düzeltin ve sunucunuza gönderin. Kullanacağınız dosyanızı açın ve (index.htm, header.php vs.)

 ve 

tagları arasına;


kodunu yerleştirin. Burada javascript dosyası ile javascript dosyasını yüklettiğiniz header.php vs. dosyalarının aynı klasörde olmasına dikkat edin. Farklı klasörlerde iseler src=”..” kısmını buna göre düzenleyin.

Her tarayıcı için görünecek CSS özelliklerini ayarlayın, Örneğin Firefox‘da h1‘in boyutunun 16px ve IE‘da ise 18px olmasını istiyorum. Bunun için yapmam gereken;

.gecko h1 {font-size: 16px;}
.ie h1 {font-size:18px;}

Ya da Mac üzerinde Safari kullanan biri baktığında h1 boyutunun 10px olarak görsün istiyorum;

.mac.webkit h1 {font-size:10px;}

olarak yazarım. Özellikle burada dikkat edilmesi gereken bir şey işletim sistemi adı ile tarayıcı adının arasında boşluk bırakılmamasıdır.

İşletim sistemleri için kullanılabilecek kodlar;

  • win – Microsoft Windows
  • linux – Linux (x11 and linux)
  • mac – Mac OS

Tarayıcılar için kullanılabilecek kodlar

  • ie – Internet Explorer (All versions)
  • ie6 – Internet Explorer 6.x
  • ie5 – Internet Explorer 5.x
  • gecko – Mozilla, Firefox, Camino
  • opera – Opera (All versions)
  • opera8 – Opera 8.x
  • opera9 – Opera 9.x
  • konqueror – Konqueror
  • webkit or safari – Safari, NetNewsWire, OmniWeb, Shiira

İlave kodlar

  • js – Javascriptin çalışır duruma veya kapalı olması durumuna göre kullanılabilir.

Örneğin JavaScript kapalı olan bir tarayıcı da bu durumu kullanıcıya bildirmek için aşağıdaki yöntem kullanılabilir:





JS Kontol

JavaScript desteği kapatılmış

17 Yorum Var

  1. Vermiş olduğun bilgiler için teşekkür ederim, çok işime yaradı.

  2. Hocam çok faydalı bir makale. Bu zamana kadar ben php taraflı olarak bu işi yapıyordum ancak bu sefer php olmadan yapmak zorunda kaldığım bir iş aldım. Muhakkak bir yöntemi vardır diye düşünerek yola çıktım ve sizin makalenize rastladım. Çok teşekkürler :) Günümüzde çok az javascript kapatan kullanıcı olduğunu düşünürsek eğer ve çağımızda neredeyse her sitenin javascript ile yapıldığını düşünürsek, bence hiç problem yaşanmaz. Tekrar teşekkürler :)

  3. Faydalı bir makale Hakkı bey, teşekkürler.

  4. Sadece IE7 de çalışan bir kod yazılamayabilir ama ie – Internet Explorer (All versions) bunu kullanabilirsiniz sanıyorum.

  5. merhaba, bu scripti ie7 icin nasil kullanabiliriz ya da nasil bir degisiklikle kullanilabilir hale getirebiliriz?

  6. Kaan Bey CSS ile bunu yapmanız mümkün mü bilemiyorum. Ama display: özelliğini kullanarak beliki çözülebilir. Çözüm bulursam buraya yazarım.

  7. Kaan KOZAN | 11 Nisan 2008, 03:13

    merhaba bu yöntem diğer css hack yöntemlerinden daha kolayıma gitti helede firefoxun firebug ve ie nin ie dom inspector eklentilerini bugün keşfettikten sonra hazırlayacağım ödev için css tam istediğim şey oldu (grafik ve tasarımla hayatta aram yoktur)

    ama bir şey başaramadım

    JavaScript desteği kapatılmış.

    java destek kapatılmışsa bu gözüküyor ama sayfanın diğer geri kalan içeriğide gözüküyor…
    istediğim ise java kapatılmışsa içerik gözükmesin uyarı çıksın kapatılmamışsa tam tersi…

    html kodlarının gelip gelmemesi önemli değil tek isteğim kapatılmışsa içerik kaybolsun ama başaramadım…
    bunu nasıl başarabiliirim yukarıdaki kodlar için…

    şimdiden teşekkürler Ve Başarılar…

  8. Bence riskli bir yöntem. Çünkü javaScript kapalı olduğunda karmaşa yaşanacaktır. Yine en iyisi “css hack” yöntemlerini kullanmak gibi görünüyor (:

  9. Güzel bir yöntem

    Denemek lazım.

    Eline sağlık

Lütfen, soru sormadan önce üstteki yazının tamamını ve cevapları okuyun, soracağınız soruların cevapları büyük ihtimalle verilmiştir. Ek olarak lütfen ilgili konuya yorum yapın, örneğin geziyle ilgili bir yazıya yorum yapıp fotoğraf makinesiyle ilgili bir soru sorarsanız yorumunuz silinecektir.