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.)

 <head> ve </head> 

tagları arasına;

<script src="css_browser_selector.js" type="text/javascript"></script>

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:

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
 <script src="css_browser_selector.js" type="text/javascript"></script>
 <title>JS Kontol</title>
  <style type="text/css">
  .js .kontrol {display: none}
  </style>
 </head>
 <body>
  <div class="kontrol">
  	<p>JavaScript deste&#287;i kapat&#305;lm&#305;&#351;.</p>
  </div>
 </body>
</html>
Eğer bu yazımı beğendiyseniz, RSS kullanarak tüm yeni yazılarımdan kolaylıkla haberdar olabilirsiniz. Gmail hesabınız varsa burası ve tüm beğendiğiniz siteler için Google Reader sistemini kullanabilirsiniz.

14 Yorum var

  1. Fatih diyor ki:

    Güzel bir yöntem

    Denemek lazım.

    Eline sağlık

  2. [...] Web Tarayıcıya Göre Değişebilen CSS Hazırlamak Bağlantı [...]

  3. eburhan diyor ki:

    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 (:

  4. Kaan KOZAN diyor ki:

    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…

  5. HC diyor ki:

    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.

  6. Nagihan diyor ki:

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

  7. HC diyor ki:

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

  8. neriman diyor ki:

    teşekkür

  9. oğuzhan yılmaz diyor ki:

    süpersin hocam

  10. sinan diyor ki:

    çok güzel

  11. celal diyor ki:

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





Son Fotoğraflarım

20080524010BK
20080524023BK
20080524031BK
20081025386BK
20091121128BK
20081208211BK
20090808036BK
20080524040BK
20091114015BSK
20090919161BSK
20090919380BSK
20090919157BSK