我感到困惑,仍然不确定如何用适当的话语来解释这个问题。到目前为止,我使用 Breakpoint 来设置我的媒体查询。一个使用过的 Breakpoint 变量看起来像这样:
$menustatictofixed: min-width 900px;
$breakpoint-to-ems变量被设置为true。我已经根据以下jQuery片段的像素值,使用所有Breakpoint变量布置了页面:
$('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像素代表什么意思?最好的问候Ralf。