[英]How to target Mac with CSS or Javascript
我需要在樣式表中使用Mac的特定樣式。 最好的方法是什么?
在理想的世界中,您不需要為不同的操作系統分叉樣式。 然而,有時特定的設計需要它 - 特別是樣式形式元素。
如果你真的需要,下面的腳本將在html元素上設置一個類:
(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)));
您可以在html頭中執行此操作,這意味着在初始加載后頁面不會重新呈現。
然后,您可以使用mac特定的css規則,如下所示:
.os-mac #my-element { ... }
注意:最好的辦法是找到一個不需要分配操作系統的解決方案。
或JavaScript
if (navigator.userAgent.match(/Macintosh/))
// do stuff for Macs here, such as load a stylesheet
但實際上,這是不好的做法,你不應該這樣做。
僅適用於mac:
<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>
它就像johnhunter的解決方案一樣,只是它被縮小了。
navigator.platform
屬性在OS X Safari,Chrome和Firefox上返回'MacIntel'
(我手頭沒有任何PPC盒)。 如果我這樣做,我會檢查一下,並且可能在<BODY>
標簽上放入一個名為.mac
的類,並將其作為Mac特定內容的基礎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.