Maison > interface Web > tutoriel CSS > Pourquoi $(window).width() diffère-t-il des points d'arrêt de requête multimédia ?

Pourquoi $(window).width() diffère-t-il des points d'arrêt de requête multimédia ?

Patricia Arquette
Libérer: 2024-12-22 01:38:25
original
225 Les gens l'ont consulté

Why Does $(window).width() Differ from Media Query Breakpoints?

Différence de largeur de fenêtre entre $(window).width() et Media Queries

Dans un projet utilisant Twitter Bootstrap et CSS personnalisé, des écarts surviennent entre les valeurs de largeur de fenêtre déterminé par $(window).width() et les requêtes multimédias. Malgré la définition d'un point d'arrêt de requête multimédia à 767 px, $(window).width() renvoie systématiquement une valeur inférieure de 16 px, ce qui entraîne un calcul CSS inattendu.

Causes et solutions

La principale raison de cet écart est l'exclusion de la largeur de la barre de défilement dans le calcul $(window).width(). Pour tenir compte de cela, il est recommandé d'utiliser $(window).innerWidth(), qui intègre la largeur de la barre de défilement. Cependant, cette approche peut ne pas convenir si un comportement cohérent avec le point d'arrêt de la requête multimédia est souhaité.

1. window.matchMedia() (navigateurs modernes uniquement)

Si vous pouvez prendre en charge les navigateurs modernes à l'exclusion d'IE9, window.matchMedia() fournit une solution transparente. Il s'aligne entièrement sur les requêtes multimédias CSS et garantit la cohérence entre JavaScript et CSS.

2. Méthode mq de Modernizr

Pour une prise en charge plus large du navigateur, la méthode mq de Modernizr est une option viable. Il émule le comportement de window.matchMedia() pour les navigateurs qui comprennent les requêtes multimédias CSS.

Implémentation

Pour implémenter la méthode mq de Modernizr :

if (Modernizr.mq('(max-width: 767px)')) {
    //...
} else {
    //...
}
Copier après la connexion

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