最大宽度 767px 媒体查询 - 样式仅在 766px 或以下呈现(仅影响 firefox)

Posted

技术标签:

【中文标题】最大宽度 767px 媒体查询 - 样式仅在 766px 或以下呈现(仅影响 firefox)【英文标题】:max-width 767px media query - styles only render at 766px or below (only firefox affected) 【发布时间】:2015-04-11 14:15:13 【问题描述】:

我已经解决了一半这个问题,但还没有完全理解这个问题,这让我很担心。我想知道是否有人可以帮助我了解发生了什么?

我通过 CSS 将 iframe 设置为 100% 宽度。容器 div 为 767px。因此 iframe 也是如此。

我在 iframe 的样式表中有以下媒体查询:

@media (max-width: 767px) 
    body 
        background: red;
    

在除 Firefox 之外的所有流行浏览器中测试,媒体查询生效并将正文背景设置为红色。在 Firefox 中,媒体查询仅在 iframe 设置为 766px - 1px 时才会生效,即使 max-width 应该是“最多并包括”。这似乎是一个错误。我现在的解决方法是将 iframe 宽度设置为 766.7 像素(减去 0.3 像素)。这似乎在 Firefox 中有效(减去 0.2 无效)。

我的问题 - 这里发生了什么?这实际上可能是 Firefox 中的错误吗?我知道我的 iframe 实现有点不规则,但我认为根本原因可能与启发我解决方案的这个问题有关:Media query lost in Firefox when window resized to max-width minus scrollbar width

【问题讨论】:

嗯,有趣!您是否尝试查找 bugzilla 中是否已经存在这样的错误? 我不知道有 bugzilla,但我已经提交了错误报告。我会在这里写回我收到/学到的任何其他信息。非常感谢您的回复! 对我来说,FF 和 Chrome 现在也有相同的错误。我现在用max-width: 767.8px 修复了它,767px 的样式适用于这个宽度。 【参考方案1】:

FWIW,Chrome 上的相同行为是由于...标签的浏览器缩放设置被设置为 125% 而不是 100%

我相信这会导致手机模拟 iframe 的计算失败,在该 iframe 内应该低于 767 像素的阈值。

我花了一个小时将所有来源与旧部署进行比较,然后才注意到 >_>

【讨论】:

【参考方案2】:

我遇到了同样的问题。我的浏览器中没有设置缩放,但我有一个 2K 显示器并使用 Windows 10 操作系统提供的显示自定义缩放,我认为这会导致 FF 和 Chrome 出现奇怪的行为。

要解决此问题,请尝试在 about:config 页面上将 layout.css.devPixelsPerPx 设置为 1.0(默认为 -1),看看是否有效果。

如有必要,您可以以 0.1 或 0.05 步(1.1 或 0.9)调整其值,直到图标或文本看起来正确。

【讨论】:

以上是关于最大宽度 767px 媒体查询 - 样式仅在 766px 或以下呈现(仅影响 firefox)的主要内容,如果未能解决你的问题,请参考以下文章

媒体查询关闭 1px

移动web开发———第四天

关于css3媒体查询Media的一些用法小结

css 媒体查询最大宽度为768px

为啥对最大宽度的媒体查询不起作用?

js控制媒体查询样式