【发布时间】:2020-07-29 00:03:23
【问题描述】:
虽然<meta name="viewport"> 标签未标准化,但它“由于事实上的主导地位而受到大多数移动浏览器的尊重。”
它不是真正的网络标准的一个缺点是详细的文档不像其他标准那样可用。 CSS Working Group 对此有一个规范,所以我主要将其用作权威作品。
我的主要问题是:
以下声明之间的感知差异是什么?
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="initial-scale=1.0">
另外问,这两个@viewport CSS at-rules有什么区别:
/* Translated from <meta name="viewport" content="width=device-width, initial-scale=1.0"> */
@viewport {
zoom: 1.0;
min-width: extend-to-zoom;
max-width: 100vw;
}
/* Translated from <meta name="viewport" content="initial-scale=1.0"> */
@viewport {
zoom: 1.0;
min-width: extend-to-zoom;
max-width: extend-to-zoom;
}
我是如何得到那些 @viewport 翻译的:
width=device-width 到 min-width: extend-to-zoom; max-width: 100vw;
CSS Device Adaptation Module Level 1 document 声明:
width和height视口<META>属性被转换为width和height描述符,将min-width/min-height值设置为extend-to-zoom和max-width/@9867 @value 到视口的长度。
他们还给了example:
这个
<META>元素:<meta name="viewport" content="width=500, height=600">翻译成:
@viewport { width: extend-to-zoom 500px; height: extend-to-zoom 600px; }
width shorthand descriptor 被描述为:
这是设置
min-width和max-width的简写描述符。一个<viewport-length>值会将min-width和max-width设置为该值。两个<viewport-length>值会将min-width设置为第一个,将max-width设置为第二个。
所以按理说width: extend-to-zoom 500px; 等价于min-width: extend-to-zoom; max-width: 500px;。
只剩下100vw 部分。在section 10.4 中,他们解释说:
device-width和device-height分别转换为 100vw 和 100vh
所以我们终于可以看到width=device-width是如何翻译成min-width: extend-to-zoom; max-width: 100vw;了。
initial-scale=1.0 到 zoom: 1.0; width: extend-to-zoom;
这个是verbatim example:
这个
<META>元素:<meta name="viewport" content="initial-scale=1.0">翻译成:
@viewport { zoom: 1.0; width: extend-to-zoom; }
我的另一个问题是,究竟是什么extend-to-zoom 值?
documentation on it 及其resolution procedure 很难掌握。如果有人能指出我在这方面的一些进一步的例子,那将不胜感激。
除了以上所有内容之外,我还建立了一个快速站点 - https://romellem.github.io/temp-site/viewport/ - 来测试一些视口配置。
即:
这可能有助于测试。
【问题讨论】:
标签: css viewport meta-tags meta