Maison >interface Web >tutoriel CSS >Pourquoi jqGrid affiche-t-il une barre de défilement horizontale dans Chrome et comment peut-elle être corrigée ?

Pourquoi jqGrid affiche-t-il une barre de défilement horizontale dans Chrome et comment peut-elle être corrigée ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-14 12:06:15645parcourir

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

Problème de rendu jqGrid dans Chrome

Dans Chrome et ses navigateurs dérivés, un problème de rendu mineur survient avec jqGrid, où une partie du dernier La colonne s'étend au-delà des limites de la grille. Des barres de défilement horizontales apparaissent à la suite de cette erreur de rendu, ce qui n'est pas le comportement souhaité.

Cause du problème

Le problème vient de la façon dont jqGrid calcule la largeur de la grille selon que l'agent utilisateur est Safari ou Chrome. Cependant, un bug dans les versions de Chrome inférieures à 19 provoque un calcul inexact, entraînant un rendu incorrect.

Solution

Un correctif a été implémenté dans la dernière version de jqGrid (4.3.3). Ce correctif modifie la logique utilisée pour déterminer si la grille est rendue dans Chrome ou Safari. La ligne modifiée dans le code jqGrid est la suivante :

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

En remplaçant la ligne d'origine par celle modifiée, le problème est résolu et la grille est rendue correctement sans aucune barre de défilement horizontale.

Correction alternative pour les anciennes versions de Chrome

Pour les anciennes versions de Chrome (20 ou inférieure), où le correctif se trouve dans jqGrid 4.3.3 peut ne pas être disponible, une condition légèrement différente peut être utilisée à la place de celle mentionnée ci-dessus :

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

En conclusion, le problème de rendu dans jqGrid pour Chrome est causé par une erreur dans le fichier Chrome. moteur de rendu. Le correctif implémenté dans jqGrid 4.3.3 résout ce problème efficacement. Pour les anciennes versions de Chrome, une condition alternative peut être utilisée pour obtenir le même résultat.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn