- 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/
我正在尝试在 View 中同时使用 scalegesture 监听器和 gesturelistener。如果比例为 1,则一切正常,但如果将比例设置为其他值,图像会跳到一个新位置,然后平滑缩放。 我的
我在使用 Canvas 和 canvas.scale(Scale, Scale) 时遇到图像质量问题;它们看起来完全像下面这样: android:运行时调整大小的图像质量 我相信我已经阅读了所有关于调
我有一个使用 svg 过滤器附加阴影的 svg 图形。我需要缩放阴影,但找不到可以执行此操作的过滤器。有谁知道这是否可能?
我正在构建一个逻辑回归分类器。 我从一组 500.000 条记录开始,我只想使用其中的一个样本。 你有什么建议: 1) 缩放总体然后采样2)缩放样本3) 仅缩放样本的 X_TRAIN 分割? 为什么?
我有一个功能,我用它在鼠标进入时放大图片并在鼠标离开时返回到正常大小。问题是,如果我在允许图片返回正常大小之前快速将鼠标移出然后将鼠标移入,那么图片将从鼠标输入时当前的任何大小放大(x2.7) (并且
可以在 scale-y-2 中使用 zoomtovalues 吗?我在多个 y 轴上有几个系列,我想将每个 scale-y-n 缩放到特定值,但我不知道如何... 谢谢和问候, 最佳答案 我们在最近的
我正在尝试在 Android 中创建(我认为是)一个相对简单的动画。也就是说,我想让某个 TextView 在单击按钮时缩小到 0 并返回到 1。当我单击该按钮时实际发生的是 TextView 立即缩
我有一个元素需要缩放到父元素的 100%。因为该元素包含基于像素的动画和可以缩放的图像,所以我不能使用百分比。有没有办法使用 css transform scale 来做到这一点? 最佳答案 相对 c
我在 ChartJS 中遇到一个奇怪的错误并且不知道如何修复它,由于这个错误我无法更改比例的任何内容。 我的代码(Sensor.tsx): import { useParams } from "sol
我有一些数据,我正试图通过不断增加的分母来准确和精确地处理这些数据。 请假设分子总是有小数。 我在 docs 中看到divide(BigDecimal divisor) 实际上会减小比例,这看起来很奇
喂, https://jsfiddle.net/jbwq6y87/7/ #box { width: 500px; height: 500px; transition: 0.5s; ov
几个 Tk 小部件也存在于 Ttk 版本中。通常它们具有相同的一般行为,但使用“样式”和“主题”而不是每个实例的外观属性(例如 bg 等)。这很好,因为 Ttk 小部件默认采用操作系统窗口管理器的“标
我尝试转换视频并使用 scale=-1:720 调整其大小,但出现错误“宽度不能被 2 整除”。我解决了这个问题:scale=-2:720。 之间有什么区别 scale=-1:720 和 scale=
我正在尝试重新创建此 codepen变换:我网站上特定页面的缩放转换,但它没有按预期工作 - 正如您在此代码片段中看到的那样(在整页上查看) - 图像覆盖/覆盖不足和不稳定而不是平滑。 /* Part
我有 3 个 Scale 小部件 scale1、scale2 和 scale3。我想使用 scale1 按以下方式控制 scale2 和 scale3 的值: 我不希望 scale2 和 scale3
我目前正在将我的数据分析从 R 转移到 Python。在 R 中缩放数据集时,我会使用 R.scale(),据我所知,它会执行以下操作:(x-mean(x))/sd(x) 为了替换该函数,我尝试使用
从文档中,定义为: 量化 ..a variant of linear scales with a discrete rather than continuous range. The input do
我有一个时基折线图,我正在尝试获取点击坐标处每个刻度的值。 我在 ChartJS 选项中指定的 onClick 函数: onClick: function(event, elementsAtEvent
我见过这样写的代码: ,但我也看到过这样写的代码: initial-scale=1 和 initial-scale=1.0 有区别吗? 最佳答案 没有。 specification描述视口(viewp
给定 y 轴 (s) 上的缩放和 x 轴 (t) 上的平移参数,当目的是最大化曲线叠加(而不是最小化距离)时,如何缩放和对齐两条不重合的曲线? 正如 @DWin 所指出的,这可能会被重新命名为“如何使
我是一名优秀的程序员,十分优秀!