Я использую Twitter Bootstrap в проекте. Наряду со стилями начальной загрузки по умолчанию я также добавил несколько своих
//My styles
@media (max-width: 767px)
{
//CSS here
}
Я также использую jQuery для изменения порядка определенных элементов на странице, когда ширина области просмотра меньше 767 пикселей.
$(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"));
}
}
Проблема, которую я имею, состоит в том, что ширина, вычисленная с помощью $(window).width()
и ширина, рассчитанная с помощью CSS, не кажется одинаковой. Когда $(window).width()
возвращается 767, css вычисляет его ширину области просмотра как 751, так что, похоже, разница в 16px.
Кто-нибудь знает, что вызывает это и как я мог решить проблему? Люди предположили, что ширина полосы прокрутки не принимается во внимание, и использование $(window).innerWidth() < 751
- путь. Однако в идеале я хочу найти решение, которое рассчитывает ширину полосы прокрутки и которое соответствует моему медиа-запросу (например, когда оба условия проверяются по значению 767). Потому что наверняка не все браузеры будут иметь ширину полосы прокрутки 16 пикселей?