1

ブラウザごとにレンダリングが異なるため、ブラウザごとに値を変更する必要があります。

if (navigator.appName == 'Netscape'){
        top = 17;
}

これは機能していましたが、残念ながらFirefoxとSafariの両方が「Netscape」として表示されます

jQuery 1.3.2を使用してこれらすべてを検出するにはどうすればよいですか?なくなった情報はjquery.support今のところ見つかりませんでした。jquery.browser

ありがとう!

4

5 に答える 5

5

ブラウザの検出が必要な場合 (それに対する警告にもかかわらず)、ppk のルーチンは最新です (Chrome や iPhone まで)。

于 2009-06-02T22:43:30.567 に答える
4

スタイルシートを使用してreset.cssすべてのブラウザのデフォルトをゼロに設定していますか、または検討したことがありますか? そうでない場合は、現在の問題だけでなく、将来の潜在的な問題も解決する可能性があるため、そうすることをお勧めします.

すべてのブラウザーをベースライン ゼロに設定するため、パディングまたはポジショニングを適用すると、すべてのブラウザーで同じ効果が得られるため、役立つ場合があります。

于 2009-06-02T22:17:38.853 に答える
2

彼らは何を異なってレンダリングしていますか?ブラウザスニッフィングではなく機能検出を使用する方法はありますか?新しいブラウザが登場したときに破損する可能性が低く、フリンジに対する耐性が高くなっています。

于 2009-06-02T21:57:17.913 に答える
1

オブジェクトを使用できjQuery.browserます。を支持して jQ 1.3 で廃止されましたjQuery.supportが、完全に削除する当面の計画はないので、安全なはずです。

とはいえ、ブラウザ スニッフィングを使用するのは、非常に簡単で魅力的ですが、通常は最善の方法ではありません。一部のブラウザーでは CSS の処理が異なるため、問題が発生しているように思われるため、jQuery.support.boxModel.

于 2009-06-02T22:48:09.510 に答える
0

これらはすべて、ツールチップの上位のcss値を異なる方法でレンダリングします。

var container = $('<div id="personPopupContainer">'
    + '<div id="personPopupContent">'
    + '</div>'
    + '</div>');

var pos = $(this).offset();
var width = $(this).width();
var reposition = { left: (pos.left - width) + 'px', top: pos.top + msg + 'px' };

container.css({
                    top: reposition.top
             });
于 2009-06-02T22:03:42.987 に答える