Safari 通常在任何大小的页面加载时应用我的样式。但是,如果自上次重新加载后的任何时候窗口已针对移动设备调整大小,它将不会应用桌面样式。
要最轻松地查看/触发行为,请在 Safari 13 中以桌面大小打开站点并查看所需的布局(此处最值得注意的是导航栏)。将浏览器的大小调整为移动布局(确保导航切换到汉堡模式),然后返回到桌面布局。 (您也可以先在手机上加载网站,然后简单地扩大窗口。)
在此处查看测试用例:https://www.davincilabs.com/
正常行为(加载时):
浏览器调整大小后(仅限 Safari 13):
如果您检查菜单元素,您将看到 styles-l.css 和 navigation-desktop.css 适用。调整大小后,样式表不再适用。
重要提示:这似乎不是 JavaScript 问题!如果您从开发菜单中禁用 JavaScript,该行为仍然会发生。
回顾一下:
这一定是相当罕见的,因为经过大量搜索后我找不到其他事件,但它影响了我正在处理的多个站点。最后,如果您让 Safari 在检查器中重新考虑 CSS 规则(例如通过手动编辑媒体查询的参数),Safari 将立即正确重绘页面。
最佳答案
我有同样的问题。
我不知道为什么,但我在 Magento 2 和 Safari 13 上的商店遇到了这个问题。(还有其他大型电子商务,如 The Protein Works、Bulk Powders、sigmabeauty ecc)
我用 macOS Catalina 10.15.7 和 Safari 14 修复了它。
关于html - 调整大小后 Safari 13 不应用 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63136590/