为什么视口元标记没有包含在标准中?

问题描述 投票:0回答:2

许多来源都强调包含视口元标记的重要性。根据 MDN 上的使用视口元标记控制移动浏览器上的布局

窄屏设备(例如手机)在虚拟窗口或视口中渲染页面(通常比屏幕宽),然后缩小渲染结果,以便一次性看到所有内容。然后,用户可以平移和缩放以查看页面的不同区域。例如,如果移动屏幕的宽度为 640 像素,则页面可能会使用 980 像素的虚拟视口进行渲染,然后它将缩小以适应 640 像素的空间。

这样做是因为许多页面没有针对移动设备进行优化,并且在以较小的视口宽度渲染时会中断(或至少看起来很糟糕)。此虚拟视口是一种使非移动优化网站在窄屏幕设备上看起来更好的方法。

但是,这种机制对于使用媒体查询针对窄屏幕进行优化的页面不太好 - 例如,如果虚拟视口为 980 像素,则永远不会使用以 640 像素或 480 像素或更小的尺寸启动的媒体查询,从而限制了这种响应式设计技术。

根据视口上的 web.dev 条目

许多搜索引擎根据页面的移动友好程度对页面进行排名。如果没有视口元标记,移动设备会以典型的桌面屏幕宽度渲染页面,然后缩小页面,从而难以阅读。

Lighthouse 不会检查宽度是否等于设备宽度。它也不检查初始规模的键值对。但是,您仍然需要包含这两者,以便您的页面能够在移动设备上正确呈现。

所以,如果我理解正确的话,这个标签几乎是必需的:如果不包含,该页面将受到谷歌的惩罚,移动浏览器将错误地显示页面,忽略专门为他们准备的媒体查询。

尽管如此,根据我之前链接到的 MDN 页面,这个标签“不属于任何 Web 标准”。

为什么会这样?

WHATWG 在他们的常见问题解答中说了什么:

我们没有忽略浏览器的功能,而是修复标准以匹配浏览器的功能。

因此,既然浏览器使用了这个标签并依赖它,标准化这个标签难道不符合WHATWG既定的目标吗?

也许是这样的:

使用元视口标签意味着开发人员声明他们的网站也应该显示在屏幕尺寸和/或分辨率与典型桌面尺寸和分辨率显着不同的设备上。如果没有它,移动浏览器应该假设该页面不应该在它们上显示,并且可以自由地应用启发式方法,这可能会打破开发人员对其网站应如何工作的假设(例如,他们可能会忽略媒体查询并在以下位置呈现页面)人为地增大宽度只是为了在显示之前缩小其尺寸)。

为什么 HTML 规范中没有包含视口元标记?有什么道理可讲吗?

html viewport meta-tags
2个回答
0
投票

不存在元视口标签之类的东西。

viewport
name
的设置,
meta
标签的属性。

<meta>
是标签,而不是视口。

name
那么,根据标准,表示

元数据内容是设置呈现或行为的内容 其余内容


0
投票

确实,viewport 不是标准的元数据名称: https://html.spec.whatwg.org/dev/semantics.html#standard-metadata-names

据我了解,原因是还没有人真正敦促将其设为标准名称。此外,没有压力使其成为标准名称,因为:

[下一节:其他名称] “任何人都可以创建并使用自己的预定义元数据名称扩展。无需注册此类扩展。”

如果是一个标准的名字会好吗?当然。令人烦恼的是,像这样重要的东西不是标准名称。

但实际上它是更广泛意义上的html标准的一部分(元标签的其他名称)。我猜。

© www.soinside.com 2019 - 2024. All rights reserved.