我很难找到这方面的文档。它是特定于 Safari 的吗?
iOS 9 (这里)中最近出现了一个错误,解决方案是添加shrink-to-fit=no到视口元数据中。
shrink-to-fit=no
这段代码有什么作用?
至少在撰写本文时,它是 Safari 特定的,在 Safari 9.0 中被引入。来自“Safari 有什么新功能?” Safari 9.0 的文档:
视口更改 使用视口元标记"width=device- width"会导致页面缩小以适应超出视口边界的内容。您可以通过添加到您的元标记来覆盖此行为,"shrink-to- fit=no"如下所示。添加的值将阻止页面缩放以适应视口。 <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
使用视口元标记"width=device- width"会导致页面缩小以适应超出视口边界的内容。您可以通过添加到您的元标记来覆盖此行为,"shrink-to- fit=no"如下所示。添加的值将阻止页面缩放以适应视口。
"width=device- width"
"shrink-to- fit=no"
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
简而言之,将它添加到视口元标记会恢复 Safari 9.0 之前的行为。
这是一个工作的视觉示例,它显示了在两种配置中加载页面时的差异。
红色部分是视口的宽度,蓝色部分位于初始视口之外(例如left: 100vw)。请注意,在第一个示例中,页面在shrink-to- fit=no省略时如何缩放以适应(从而显示视口外的内容),并且在后一个示例中蓝色内容保持在屏幕外。
left: 100vw
shrink-to- fit=no
此示例的代码可在https://codepen.io/davidjb/pen/ENGqpv找到。