ホームページ >ウェブフロントエンド >CSSチュートリアル >jqGrid が Chrome で水平スクロールバーを表示するのはなぜですか?それを修正するにはどうすればよいですか?

jqGrid が Chrome で水平スクロールバーを表示するのはなぜですか?それを修正するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 12:06:15650ブラウズ

Why Does jqGrid Display a Horizontal Scrollbar in Chrome, and How Can It Be Fixed?

Chrome での jqGrid レンダリングの問題

Chrome とその派生ブラウザでは、jqGrid で小さなレンダリングの問題が発生します。列がグリッドの境界を越えて伸びています。このレンダリング エラーの結果として水平スクロールバーが表示されますが、これは望ましい動作ではありません。

問題の原因

この問題は、jqGrid によるグリッドの幅の計算方法に起因します。ユーザー エージェントが Safari か Chrome かに基づいて決定されます。ただし、Chrome バージョン 19 より前のバグにより不正確な計算が発生し、不適切なレンダリングが発生します。

解決策

最新バージョンの jqGrid に修正が実装されました。 (4.3.3)。この修正により、グリッドが Chrome と Safari のどちらでレンダリングされているかを判断するために使用されるロジックが変更されます。 jqGrid コードの変更された行は次のとおりです。

isSafari = ($.browser.webkit || $.browser.safari) &&
    parseFloat($.browser.version)<536.5 ? true : false; // Chrome < version 19

元の行をこの変更された行に置き換えることで、問題は解決され、水平スクロールバーなしでグリッドが正しくレンダリングされます。

古い Chrome バージョン用の代替修正

古いバージョンの Chrome (20 以降) の場合以下)、jqGrid 4.3.3 の修正が利用できない可能性がある場合、上記の条件の代わりに少し異なる条件を使用できます:

isSafari = ($.browser.webkit || $.browser.safari) &amp;&amp;
    parseFloat($.browser.version)<536.11 ? true : false; // Chrome < version 20

結論として、Chrome 用 jqGrid のレンダリングの問題Chrome のレンダリング エンジンのエラーが原因で発生します。 jqGrid 4.3.3 に実装された修正により、この問題は効果的に解決されます。古い Chrome バージョンの場合は、別の条件を使用して同じ結果を得ることができます。

以上がjqGrid が Chrome で水平スクロールバーを表示するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。