【发布时间】:2013-10-17 23:36:00
【问题描述】:
我在一个项目中使用 Twitter Bootstrap。除了默认的引导样式,我还添加了一些我自己的
//My styles
@media (max-width: 767px)
{
//CSS here
}
当视口的宽度小于 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 的滚动条宽度?
【问题讨论】:
-
尝试一下 if ($('html').width()
-
@Vaibs_Cool 感谢您的建议,但我仍然得到相同的结果
-
在这里回答我[在此处输入链接描述][1] [1]:stackoverflow.com/questions/11309859/…
-
“document.documentElement.clientWidth”(而不是“$(window).width()”)是否按您希望的方式工作?编辑:我的错误,刚刚看到 Vaibs_Cool 的回答。
标签: jquery css twitter-bootstrap media-queries