我想要在操作系統和瀏覽器的主體類。我需要像素完美的樣式,因爲在不同的操作系統/瀏覽器配置中字體的行爲不同。經過一些Google搜索和試驗。我能想到的要做到這一點的唯一方法是使用一個的indexOf ...瀏覽器和操作系統作爲主體類
var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf("opera") != -1) return 'Opera';
if (agt.indexOf("firefox") != -1) return 'Firefox';
if (agt.indexOf("safari") != -1) return 'Safari';
if (agt.indexOf("webkit") != -1) return 'Webkit';
if (agt.indexOf("msie") != -1) return 'Internet Explorer';
if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
,我認爲它不是一個非常beautyful解決方案。有沒有一些正則表達式可以做到這一點?或者有沒有更快的方法來做到這一點?
如果你真的想訴諸瀏覽器嗅探,祝你好運 - 這將失敗,因爲渲染還取決於安裝的字體和瀏覽器版本(最顯着的是IE6與IE7對比IE8與即將到來的IE9)。如果你需要一個像素完美的網站,HTML是一個錯誤的工具 - 讓你的網站變成一個巨大的圖像,這是唯一可以肯定的方式(它會有許多其他問題,但它將是像素完美的)。另外,UA欺騙。 – Piskvor 2010-12-01 10:16:57
這個問題對我來說更多的是OS然後是瀏覽器。 MacOS和Windows中的文本呈現非常不同。我總是很驚訝這些字體在窗口中看起來很醜。但至少我可以以不同的方式控制字體間距和字體大小。但它完全有可能做到像素完美,如果設計師是網絡有經驗的 – meo 2010-12-01 10:28:26