Używam Twitter Bootstrap w projekcie. Oprócz domyślnych stylów ładowania początkowego dodałem także własne
//My styles
@media (max-width: 767px)
{
//CSS here
}
Używam również jQuery do zmiany kolejności niektórych elementów na stronie, gdy szerokość rzutni jest mniejsza niż 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"));
}
}
Problem, który mam, polega na tym, że szerokość obliczona przez $(window).width()
i szerokość obliczona przez CSS nie wydają się takie same. Kiedy $(window).width()
zwraca 767, css oblicza szerokość rzutni jako 751, więc wydaje się, że jest 16px inna.
Czy ktoś wie, co to powoduje i jak mogę rozwiązać problem? Ludzie zasugerowali, że szerokość paska przewijania nie jest brana pod uwagę, a używanie $(window).innerWidth() < 751
jest właściwą drogą. Jednak idealnie chcę znaleźć rozwiązanie, które oblicza szerokość paska przewijania i jest zgodne z moim zapytaniem o media (np. Gdy oba warunki sprawdzają się w stosunku do wartości 767). Ponieważ na pewno nie wszystkie przeglądarki będą miały szerokość paska przewijania 16 pikseli?