- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
而 <meta name="viewport">
标签是非标准化的,它“由于事实上的主导地位而受到大多数移动浏览器的尊重”。
它不是真正的 Web 标准的一个缺点是详细的文档不像其他标准那样可用。 CSS Working Group对此有一个规范,所以这就是我主要用作权威工作的内容。
我的主要问题是:
以下声明之间的感知差异是什么?
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="initial-scale=1.0">
/* 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;
The
width
andheight
viewport<META>
properties are translated intowidth
andheight
descriptors, setting themin-width
/min-height
value toextend-to-zoom
and themax-width
/max-height
value to the length from the viewport.
This
<META>
element:<meta name="viewport" content="width=500, height=600">
translates into:
@viewport {
width: extend-to-zoom 500px;
height: extend-to-zoom 600px;
}
width
shorthand descriptor被描述为:
This is a shorthand descriptor for setting both
min-width
andmax-width
. One<viewport-length>
value will set bothmin-width
andmax-width
to that value. Two<viewport-length>
values will setmin-width
to the first andmax-width
to the second.
width: extend-to-zoom 500px;
相当于
min-width: extend-to-zoom; max-width: 500px;
.
100vw
部分。内
section 10.4 ,他们解释说:
device-width
anddevice-height
translate to 100vw and 100vh respectively
width=device-width
翻译成
min-width: extend-to-zoom; max-width: 100vw;
.
initial-scale=1.0
至
zoom: 1.0; width: extend-to-zoom;
This
<META>
element:<meta name="viewport" content="initial-scale=1.0">
translates into:
@viewport {
zoom: 1.0;
width: extend-to-zoom;
}
extend-to-zoom
究竟是什么?值(value)?
最佳答案
在我们深入研究您的问题之前,让我们回顾一下为什么 viewport
元标记首先存在。这是我收集的。
为什么我们需要viewport
标签?
视口(viewport)是可以看到 Web 内容的区域。通常,呈现的页面(网页内容)比视口(viewport)大。因此,我们通常使用滚动条来查看隐藏的内容(因为视口(viewport)无法显示所有内容)。 Quoted from CSS Device Adaptation Module Level 1 :
The narrow viewport is a problem for documents designed to look good in desktop browsers. The result is that mobile browser vendors use a fixed initial containing block size that is different from the viewport size, and close to that of a typical desktop browser window. In addition to scrolling or panning, zooming is often used to change between an overview of the document and zoom in on particular areas of the document to read and interact with.
640px
的移动设备可能有一个初始包含块
980px
.在这种情况下,初始包含块缩小为
640px
以便它可以适合移动屏幕。此
640px
宽度(屏幕宽度)就是所谓的
initial-width
与我们的讨论相关的视口(viewport)。
viewport
标签?好吧,现在,我们有
media queries这使我们能够为移动设备进行设计。但是,此媒体查询依赖于
实际视口(viewport)的宽度。在移动设备中,用户代理会自动将初始视口(viewport)大小设置为不同的固定大小(通常大于初始视口(viewport)大小)。因此,如果移动设备的视口(viewport)宽度是固定的,那么我们在媒体查询中使用的 CSS 规则将不会执行,因为视口(viewport)的宽度永远不会改变。使用
viewport
标签,我们可以控制
实际视口(viewport)的宽度(由 UA 设置样式后)。
Quoted from MDN :
However, this mechanism is not so good for pages that are optimized for narrow screens using media queries — if the virtual viewport is 980px for example, media queries that kick in at 640px or 480px or less will never be used, limiting the effectiveness of such responsive design techniques.
viewport
标签也可以改变实际视口(viewport)的高度,而不仅仅是宽度
viewport
标签
width
width
在
viewport
标签被翻译成
max-width
在
@viewport
规则。当您声明
width
如
device-width
,翻译成
100%
在
@viewport
规则。
Percentage value基于
initial-width
解决的视口(viewport)。所以如果我们仍然使用上面的例子,
max-width
将解析为
640px
的值.正如您所发现的,这仅指定了
max-width
.
min-width
将自动为
extend-to-zoom
.
extend-to-zoom
max-zoom
UA 样式表的值为
5.0
和
initial-width
是
320px
,
<meta name="viewport" content="width=10">
将解析为
64px
的初始实际宽度.这是有道理的,因为如果设备只有 320px 并且只能缩放
5x
正常值,那么最小视口(viewport)大小将为
320px divided by 5
,这意味着一次只显示 64 像素(
而不是
10px
因为这需要放大 32 倍!)。算法将使用此值来确定如何扩展(更改)
min-width
和
max-width
值,这将在确定实际视口(viewport)宽度方面发挥作用。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
之间有什么区别?和
<meta name="viewport" content="initial-scale=1.0">
?只需重做算法的步骤(
this 和
this )。让我们先做后者(没有
width
属性的那个)。 (我们假设视口(viewport)的
initial-width
是
640px
。)
width
未设置,这会导致 max-width
和 min-width
正在 extend-to-zoom
在 @viewport
规则。 initial-scale
是 1.0
.这意味着 zoom
值也是 1.0
extend-to-zoom
.步骤:extend-zoom = MIN(zoom, max-zoom)
. MIN
操作解析为非 auto
的值.在这里,zoom
是 1.0
和 max-zoom
是 auto
.这意味着 extend-zoom
是 1.0
extend-width = initial-width / extend-zoom
.这很简单; 640 除以 1。你得到 extend-width
等于 640
extend-zoom
是非 auto
,我们将跳到第二个条件。 max-width
确实是extend-to-zoom
,这意味着 max-width
将设置为 extend-width
.因此,max-width = 640
min-width
也是extend-to-zoom
,这意味着设置 min-width
至 max-width
.我们得到 min-width = 640
auto
(即 extend-to-zoom
)值 max-width
和 min-width
.我们可以继续到the next procedure .因为 min-width
或 max-width
不是 auto
,我们将使用第一个 if
在程序中,从而设置初始实际视口(viewport)width
至 MAX(min-width, MIN(max-width, initial-width))
,相当于 MAX(640, MIN(640, 640))
.这解析为 640
用于您的初始实际视口(viewport) width
width
不是 auto
.值没有改变,我们最终得到了实际的视口(viewport) width
的 640px
width
设置,这将导致 max-width
正在 100%
(在我们的例子中是 640px
)和 min-width
正在 extend-to-zoom
在 @viewport
规则。 initial-scale
是 1.0
.这意味着 zoom
值也是 1.0
extend-to-zoom
.如果你仔细地按照步骤操作(几乎和上面一样),你最终会得到一个 max-width
的 640px
和一个 min-width
的 640px
. 640px
的实际视口(viewport)宽度. 关于css - 当还设置了 "width=device-width"时,从视口(viewport)元标记中删除 "initial-scale=1.0"的副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61238548/
虽然我在 reactjs 组件(组件名称为 renderLocationLink)的渲染方法返回的 html 中包含了 a 标签的 onclick 处理程序,但渲染正确地发生了 onclick 处理程
我必须以 docx 格式存储一些文档,但无法忍受使用 msword:我想编辑某种纯文本标记,除了基于 XML 的东西(我也不喜欢那样)和从/到那个到/从 docx 转换。 有什么选择吗? 编辑:由于人
有一个页面,其 anchor 标记在延迟后变得可点击。我想使用用户脚本在可点击后点击它。 页面加载时,HTML 源代码为: Download 延迟一段时间后,#button 变
我正在将 XML 文件解析为 pandas 数据帧。使用下面的代码我可以成功获取所有内容,但是这使用了完整 XML 的编辑版本。完整的 XML 在主数据表之上有一堆摘要数据,请参阅完整的 XML he
目前我正在研究 xml.sax 解析器来解析 xml 文件 假设我有以下代码 filepath = 'users/file.xml' try: parser = xml.sax.make_pa
我正在尝试构建一种语法来解释用户输入的文本,搜索引擎风格。它将支持 AND、OR、NOT 和 ANDNOT bool 运算符。我几乎所有东西都在工作,但我想添加一个规则,将引用字符串之外的两个相邻关键
我遇到了 Terraform EKS 标记的问题,并且似乎没有找到可行的解决方案来在创建新集群时标记所有 VPC 子网。 提供一些上下文:我们有一个 AWS VPC,我们在其中将多个 EKS 集群部署
我是xpath的新手,对此了解不多。我知道有一种方法可以使用xpath在xml / xhtml文件中查找特定标签。就我而言,我试图找到第一个(a)链接元素。不幸的是,我的xpath字符串[// a [
我在索引页上的产品卡上遇到问题。在产品卡内部,我有 Vue 组件来渲染表单(数量和添加到购物车按钮)。当我单击“添加到购物车”按钮时,我得到了预期的结果。响应被发送到根 vue 组件,然后我看到产品已
html setMouse(true)} onMouseEnter={() => setMouse(false)} className='resume-container'> CSS .resum
我在组件中有一组枚举,如下所示: type TOption = (clVisible, clVisibleAlways, clRenderable, clEditable); TOptions
是否有出于性能考虑的javadoc标签? 人们可以想象: /** * ...other javadoc tags... * @perform Expected to run in O(n) tim
html setMouse(true)} onMouseEnter={() => setMouse(false)} className='resume-container'> CSS .resum
我有一个包含多个小子图的图。目标是当且仅当子图中的所有节点都是蓝色时,才将子图中的所有蓝色节点标记为红色。如果子图中的一个节点具有不同的颜色,绿色,那么我们将不会更改该子图中节点的颜色。 这是我正在使
我正在使用 json-ld 开发事件标记以包含在确认电子邮件中。 我的一些事件会定期重复发生。但是,最新的 Schema.org 规范不支持重复发生的事件,因此我遵循了此处提供的建议:http://l
我创建了一个插件,可以添加带有相应行号的标记。现在,这很棒,因为它现在显示在“标记” View 中。有没有办法当我双击标记上的一行时,它会转到标记指示的行? 谢谢。 最佳答案 双击“标记” View
是否有一个插件具有与 Facebook 标记类似的行为? 它的特别之处在于它具有: 在键入的单词之间自动完成 特殊输出的 html(与另一个输入字段同步) 最佳答案 您可以使用jquery提及输入pl
有没有更好的方法来读取java文件中的 token ?我目前正在使用 StringTokenizer 来分割 token 。但在大多数情况下,它的效率可能非常低,因为您必须逐个 token 地读取 t
我想知道是否有某种方法可以标记文件来识别该文件是否包含x。 考虑以下示例: 在批量转换过程中,我正在创建一个日志文件,其中列出了各个转换的成功/失败。 所以流程如下: 开始转换过程 创建名为batch
我一直在尝试模拟点击标签,但这并没有像我需要的那样工作。我的 anchor 标记看起来像这样 Download this pic 正常的 $("a").click() 或 trigger('cli
我是一名优秀的程序员,十分优秀!