我在一个项目上使用Twitter Bootstrap。除了默认的引导样式外,我还添加了一些自己的引导样式
//My styles
@media (max-width: 767px)
{
//CSS here
}
当viewport的宽度小于767px时,我还使用jQuery来改变页面上某些元素的顺序。
$(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)。因为不是所有浏览器的滚动条宽度都是16px?