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
Libérer: 2024-12-14 12:06:15
original
643 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal