ホームページ >ウェブフロントエンド >CSSチュートリアル >jqGrid が Chrome で水平スクロールバーを表示するのはなぜですか?それを修正するにはどうすればよいですか?
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) && parseFloat($.browser.version)<536.11 ? true : false; // Chrome < version 20
結論として、Chrome 用 jqGrid のレンダリングの問題Chrome のレンダリング エンジンのエラーが原因で発生します。 jqGrid 4.3.3 に実装された修正により、この問題は効果的に解決されます。古い Chrome バージョンの場合は、別の条件を使用して同じ結果を得ることができます。
以上がjqGrid が Chrome で水平スクロールバーを表示するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。