Uzun bir süre için buralarda olmayacağım, seyahatte olacağım ve yüksek ihtimalle internet bağlantım da olmayacak. Mesajlarınıza ve yorumlarınıza bu süre içerisinde cevap veremeyeceğim, döndüğümde görüşmek üzere...

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

[sourcecode language="html"] <head> ve </head> [/sourcecode]

tagları arasına;

[sourcecode language="php"]
<script src="css_browser_selector.js" type="text/javascript"></script>
[/sourcecode]

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;

[sourcecode language="css"]
.gecko h1 {font-size: 16px;}
.ie h1 {font-size:18px;}
[/sourcecode]

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

[sourcecode language="css"]
.mac.webkit h1 {font-size:10px;}
[/sourcecode]

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:

[sourcecode language="html"]
<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>
[/sourcecode]

Bu yazımı beğendiyseniz, RSS ile yeni yazılarımdan haberdar olabilirsiniz. Gmail hesabınız varsa tüm beğendiğiniz siteler için Google Reader kullanabilirsiniz.

Toplam 14 yorum var

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

  2. Pingback: Hakan AK » Blog Archive » Web Tarayıcıya Göre Değişebilen CSS Hazırlamak

  3. HC

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

  4. Nagihan

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

  5. Pingback: İpuçlarım » Blog Archive » Web Tarayıcıya Göre Değişebilen CSS Hazırlamak

  6. HC

    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

    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. Pingback: Fatih Hayrioğlu’nun not defteri » 01 Mart 2008 web’den seçme haberler

  10. Güzel bir yöntem

    Denemek lazım.

    Eline sağlık

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

HC © 2012, Tüm yazıların hak ve sorumluluğu Hakkı Ceylan'a aittir.