缩小到合适的 viewport 元属性是做什么的?

我找不到这个的文件,是 Safari 专用的吗?

IOS9(给你)最近出现了一个 bug,解决方案是将 shrink-to-fit=no添加到 viewport 元。

这个代码是做什么的?

181051 次浏览

它是 Safari 特有的,至少在编写本文时是这样,它是在 Safari 9.0中引入的。来自“ Safari 有什么新鲜事?”返回文章页面

视图更改

使用 "width=device-width"的 Viewport 元标记会导致页面缩放以适应溢出 Viewport 边界的内容。通过将 "shrink-to-fit=no"添加到 meta 标记中,可以覆盖此行为,如下所示。增加的值将阻止页面扩展以适应视区。

<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">

简而言之,将其添加到 viewport meta 标记中可以恢复 Safari 9.0之前的行为。

例子

下面是一个工作的可视化示例,它显示了在两种配置中加载页面时的差异。

红色部分是视口的宽度,蓝色部分定位在初始视口之外(如 left: 100vw)。请注意,在第一个示例中,当省略 shrink-to-fit=no(从而显示视口外的内容)并且在后一个示例中蓝色内容保持在屏幕外时,如何缩放页面以适应。

这个示例的代码可以在 https://codepen.io/davidjb/pen/ENGqpv找到。

没有指定缩小到适合

Without shrink-to-fit=no

缩小到适合 = 否

With shrink-to-fit=no

作为 iOS 使用情况的统计数据,表明 iOS 9.0-9.2. x 的使用率目前为0.17% 。如果这些数字真正表明了这些版本的全局使用,那么从 viewport 元标记中删除“缩小到适合”就更有可能是安全的。

在9.2.x. IOS 之后,删除其浏览器上的这个标记。

您可以检查这个页面 https://www.scottohara.me/blog/2018/12/11/shrink-to-fit.html

这是一个标签,可以帮助你的网页不收缩,以适应,这是由浏览器默认设置,如果它被设置为“没有”就像这样: <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=*no*">,然后它将超越浏览器的默认过程,以遵循你的,即不收缩,以适应。

我希望这能够澄清,如果不尝试复制你的 head 标签中的代码,或者使用你喜欢的编辑器,刷新并加载浏览器,改变解决方案,你就会找到解决方案。