Sto usando Twitter Bootstrap su un progetto. Oltre agli stili di bootstrap predefiniti ne ho anche aggiunti alcuni
//My styles
@media (max-width: 767px)
{
//CSS here
}
Sto anche usando jQuery per cambiare l'ordine di alcuni elementi nella pagina quando la larghezza del viewport è inferiore a 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"));
}
}
Il problema che sto riscontrando è che la larghezza calcolata da $(window).width()
e la larghezza calcolata dal CSS non sembra essere la stessa. Quando $(window).width()
restituisce 767, il CSS calcola la larghezza della finestra come 751, quindi sembra che ci sia un 16px diverso.
Qualcuno sa cosa sta causando questo e come potrei risolvere il problema? Le persone hanno suggerito che la larghezza della barra di scorrimento non viene presa in considerazione e l'utilizzo $(window).innerWidth() < 751
è la strada da percorrere. Comunque idealmente voglio trovare una soluzione che calcoli la larghezza della barra di scorrimento e che sia coerente con la mia media query (ad es. Dove entrambe le condizioni stanno verificando rispetto al valore 767). Perché sicuramente non tutti i browser avranno una larghezza della barra di scorrimento di 16 px?