Aujourd’hui, je régle un petit souci d’affichage sur un une boutique WooCommerce propulsée par Astra.
Le problème est le suivant: lorsqu’on visite le site depuis un mobile, il est possible de faire bouger le contenu de la page vers la gauche, ce qui dévoile une hideuse colonne grise/verte sur le côté droit. Pourtant, aucun élément ne semble dépasser la largeur du contenu.
L’identification de l’élément causant ce défaut d’affichage n’est pas vraiment une chose aisée, car visuellement, on ne distingue rien qui dépasse.
Vanilla JS à la rescousse
Voici un petit script en Vanilla JS qui permet de trouver l’élément qui dépasse la largeur du viewport de votre page:
/**
* Identify elements that exceed the viewport width
* by Matt Biscay
* https://www.skyminds.net/?p=614036
*/
document.addEventListener("DOMContentLoaded", function() {
const elements = document.querySelectorAll('body *');
elements.forEach(element => {
if (element.offsetWidth > document.documentElement.clientWidth) {
console.log('Element causing overflow: ', element);
}
});
});
Code language: JavaScript (javascript)
CSS: couvrez cet overflow que je ne saurais voir
Une fois votre ou vos éléments identifiés, il ne vous reste plus qu’à cacher son overflow-x
:
#element {
overflow-x: hidden;
}
Code language: CSS (css)
Rafraîchissez la page. Hop, problème résolu.
Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.