J'utilise Twitter Bootstrap sur un projet. En plus des styles d'amorçage par défaut, j'ai également ajouté certains de mes propres styles
//My styles
@media (max-width: 767px)
{
//CSS here
}
J'utilise également jQuery pour modifier l'ordre de certains éléments sur la page lorsque la largeur de la fenêtre d'affichage est inférieure à 767px.
$(document).load($(window).bind("resize", checkPosition));
function checkPosition()
{
if($(window).width() < 767)
{
$("#body-container .main-content").remove().insertBefore($("#body-container .left-sidebar"));
} else {
$("#body-container .main-content").remove().insertAfter($("#body-container .left-sidebar"));
}
}
Le problème que j'ai est que la largeur calculée par $(window).width()
et la largeur calculée par le CSS ne semblent pas être les mêmes. Lorsque $(window).width()
renvoie 767, le CSS calcule la largeur de la fenêtre comme 751, il semble donc y avoir un 16px différent.
Quelqu'un sait-il ce qui cause cela et comment je pourrais résoudre le problème? Les gens ont suggéré que la largeur de la barre de défilement n'est pas prise en compte et que l'utilisation $(window).innerWidth() < 751
est la voie à suivre. Cependant, idéalement, je veux trouver une solution qui calcule la largeur de la barre de défilement et qui soit cohérente avec ma requête multimédia (par exemple, où les deux conditions sont vérifiées par rapport à la valeur 767). Parce que tous les navigateurs n'auront sûrement pas une largeur de barre de défilement de 16px?