我很困惑,仍然不确定如何用恰当的语言来解释这一点。到目前为止,我已经使用 Breakpoint 并设置了我的媒体查询。使用的断点变量如下所示:
$menustatictofixed: min-width 900px;
$breakpoint-to-ems 设置为 true。我已经根据以下 jQuery 代码段的像素值来布置页面及其所有断点变量:
$('body').append('<div style="position: fixed; bottom: 0; right: 0; display: inline-block; font-weight: bold; padding: 5px 7px; border-radius: 5px 0 0 0; background: green; color: white; z-index: 9999;">Viewport width <span id="width"></span> px</div>');
var viewportWidth = $(window).width()
$('#width').text(viewportWidth);
$(window).resize(function() {
var viewportWidth = $(window).width();
$('#width').text(viewportWidth);
});
一切看起来都很干净。但是在过去的一两天里,我在为模式设置最后一个断点并让事情表现可预测时遇到了问题。不知何故,一开始看起来很干净和很好的事情,我现在在逻辑上高度怀疑,实际上是不合适的,而且在某种程度上是一团糟。因为如果你看一下下面的截图,窗口的宽度(在 Chrome 中)与使用 window.width 的 jQuery 片段的宽度不同。如果我将 window.width 替换为 window.innerWidth 以最终排除滚动条,也没有区别。获得正确结果的唯一方法是在等式中添加 15 个像素:
var viewportWidth = $(window).width() + 15;
整个等式中唯一的问题是 window.width 是函数的错误选择,最好使用例如 document.documentElement.clientWidth 或其他东西或...?而这 15 个像素代表什么,以一种有点骇人听闻的方式解决了上述问题?最好的问候拉尔夫