0

私はJavascriptを練習しているだけで、さまざまなブラウザーの特定のクラス名を検出して作成するJavascriptコードを作成したので、CSSハックはもう必要ありません。何かいいことがあるの?

var browser = navigator.userAgent;

if (browser.match("OPR")) {
    $("body").addClass("opera");
}
else if (browser.match("Firefox")) {
    $("body").addClass("firefox");
}
else if (browser.match("Safari")) {
    if (browser.match("Chrome")) {
        $("body").addClass("chrome");
    }
    else {
        $("body").addClass("safari");
    }
}
4

4 に答える 4

1

言われているRichard Aように、世界はブラウザチェックから移行し、さらにFeature Checking

http://msdn.microsoft.com/en-us/magazine/hh475813.aspx

于 2013-11-08T11:59:21.993 に答える
1

一般に、ブラウザ スニッフィングは悪い考えです。あなたがしていることの問題は、ここに記載されていないブラウザー (Android の既定のブラウザーや、PC を再インストールした場合に Microsoft が提供するニッチなブラウザーの 1 つなど) を使用して Web サイトにアクセスした場合、彼は本文 CSS を取得しません。

また、サポートされているブラウザーの古いバージョンを使用しているユーザーがいる場合 (たとえば、まだ XP と IE6 を使用している場合)、そのユーザーは、IE11 を使用しているユーザーと同じ CSS を取得します。

また、誰かが JS を無効にしている場合 (最近ではまれですが、発生する可能性があります)、ボディ CSS も取得しません。

于 2013-11-08T11:59:40.923 に答える
0

Everybdoy が機能のスニッフィングについて言っているにもかかわらず、特に IE に関しては、自分が扱っているブラウザを知ることはまだ有効です。個人的には、この条件付きコメント トリックが非常に便利であることがわかりました。

<!doctype html>
<!--[if lt IE 7 ]>
<html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>
<html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>
<html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]>
<html class="no-js ie ie9" lang="en"> <![endif]-->
<!--[if (gte IE 10)|!(IE)]>
<html class="no-js">
<!--<![endif]-->

したがって、次のように CSS に例外を追加できます。

.ie .nav {

}
于 2013-11-08T13:37:31.563 に答える