2011-02-28 15 views
5

Stil sayfamda Mac için belirli stiller kullanmam gerekir. Bunu yapmanın en iyi yolu ne?CSS veya Javascript ile Mac'i hedefleme

+7

Neden? (15 karakter) –

+2

Bunun neden reddedildiğini merak ediyorum; iyi bir fikir olup olmadığı sorusu üzerinde çok fazla düşünmüyor, ki çok arzu edilmesine rağmen (“en iyi” her zaman tanımlanmalıdır) en az kısa ve noktaya kadar. – sarnold

+0

Önceki yorumumdan sonra, soruyu cevaplamak için bir cevap yazdım ve anında kısıldı, bu yüzden onu sildim. –

cevap

4

veya

if (navigator.userAgent.match(/Macintosh/)) 
    // do stuff for Macs here, such as load a stylesheet 

Ama gerçekten, bu yanlış bir uygulamadır ve bunu yapmaması gereken JavaScript

.

+0

bu neden kötü bir uygulama? Açıklama yok? –

1

navigator.platform özelliği, OS X Safari, Chrome ve Firefox'ta 'MacIntel' değerini döndürür (Elimde PPC kutuları yok). Eğer bunu yaparsam, bunu kontrol edip muhtemelen .mac isimli bir sınıfa <BODY> etiketinde koyardım ve bunu Mac'e özgü şeyler için bir temel olarak kullanırdım.

+0

bir örnek memnuniyetle karşılanacaktır .. –

6

İdeal bir dünyada farklı os için stillere gerek duymamalısınız. Ancak bazen belirli bir tasarım onu ​​gerektirecektir - özellikle şekillendirici form elemanları ile.

Gerçekten, aşağıdaki komut html elemanına üzerinde bir sınıf koyacaktır gerekirse:

(function (flags, app) { 
    os('Win', 'os-win'); 
    os('Mac', 'os-mac'); 

    if (document.documentElement) { 
     document.documentElement.className += flags.join(' '); 
    } 

    function os (s, f) { if (app.indexOf(s) !== -1) flags.push(f); } 

}([''], String(navigator && navigator.appVersion))); 

Sen gelmez sayfasıdır html kafasında bu yürütebileceği ilk sonra yeniden işlemek Yükleniyor.

Sonra şöyle mac belirli css kuralları kullanabilirsiniz:

.os-maC#my-element { ... } 

Not: Yapılacak en iyi şey OS için forking gerektirmeyen bir çözüm bulmak. Sadece mac için

1

:

<script>(function(e,t){function n(n,r){if(t.indexOf(n)!==-1)e.push(r)}n("Mac","os-mac");if(document.documentElement){document.documentElement.className+=e.join(" ")}})([""],String(navigator&&navigator.appVersion))</script> 

O küçültülmüş Sadece bu da johnhunter çözümüyle gibi çalışır.

İlgili konular