移动设备上的视觉视口与布局视口

2023-12-19

我刚刚读了一篇关于视口的好文章 http://www.quirksmode.org/mobile/viewports2.html这给我留下了一些关于移动设备上的视觉视口与布局视口的问题。

布局视口的宽度和高度等于任何值 可以以最大缩小模式显示在屏幕上

我不太明白这意味着什么。当他们说“最大缩小模式”时,这是否意味着布局视口对于不同的 HTML 是不同的(而不是特定于不同的设备,如 iPad、Xoom 等)?

其次,我创建了一个演示页面 http://ipad.atwebpages.com/viewport.html测量这两个视口。 (请在 iPhone/iPad 上查看此内容以获得正确的值。)

我知道布局视口可以通过设置元视口标签来更改,但是also改变视觉视口——为什么呢?它说视觉视口是当前在屏幕上显示的页面的一部分,所以我的理解是视觉视口不应受到元视口设置的影响。


布局视口和视觉视口均以 CSS 像素为单位进行测量。这是一个重要的区别。与设备上的物理像素相反,CSS 像素用于保持内容尺寸相对恒定和受控,然后设备将 CSS 像素转换为设备像素。

了解 CSS 像素和设备像素之间的差异可能有助于理解和回答您的问题。

  1. 布局视口的尺寸实际上是内容的初始尺寸(以 CSS 像素为单位)。

    布局视口用于最好地确定最初如何定位和渲染内容。它与设备的缩放级别无关。通过说“......在最大缩小模式下可以在屏幕上显示的任何内容”,我认为他暗指布局视口的尺寸不变;无论当前的视觉视口如何,它始终具有相同的大小。

  2. 视觉视口只是页面的可视区域——同样以 CSS 像素为单位。如果放大页面,则会增加 CSS 像素的大小,这自然会减少设备上可容纳的 CSS 像素数量。这就是为什么缩放时视觉视口的尺寸会缩小的原因。

    视觉视口不能大于页面上的内容。

    内容的尺寸很大程度上由布局视口决定。

    布局视口的尺寸由元视口规则设置。

    因此,视觉视口的尺寸应该根据元视口规则的变化而变化。


您后来问(在评论中):

为什么当内容明显比布局视口宽时,视觉视口会拉伸以适应所有内容?不是应该有滚动条吗?

不,因为您只是向浏览器指示布局视口的初始尺寸应该是多少,而不是视觉视口。

如果您希望视觉视口的尺寸不调整为页面加载时内容的完整宽度,请设置initial-scale=1元视口声明中的属性。


Mozilla 开发中心上有一篇关于视口元标记的精彩读物:https://developer.mozilla.org/en/mobile/viewport_meta_tag https://developer.mozilla.org/en/mobile/viewport_meta_tag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动设备上的视觉视口与布局视口 的相关文章

随机推荐

  • Swift:呈现主要和替代(登录/入门)流程时出现视觉故障? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个应用程序需要用户登录或创建帐户第一次启动应用程序时 虽然一般不建议这样做 但这是一个非常具体的用例 此外 如果他们已经登录 当
  • 有人能够在 python 中使用 poppler new_from_data 吗?

    使用Python3和Poppler 我可以毫无问题地使用new from file加载文件 但是new from data有问题 这是显然是一个简单测试的代码 因为从文件读取然后使用 new from data 没有意义 因为 new fr
  • 在分组依据查询中包含缺失的月份

    我想我这里有一个艰难的人 我试图按月获取订单数 即使为零 这是问题查询 SELECT datename month OrderDate as Month COUNT OrderNumber AS Orders FROM OrderTable
  • 方法引用与 lambda 表达式

    我想用下面示例中的方法引用替换 lambda 表达式 public class Example public static void main String args List
  • 使用 JavaScript 的逻辑运算符压缩 if/else if 语句

    我正在学习 AngularJS 试图制作一个简单的计算器 并且我正在尝试压缩它if else if 陈述使用 Javascript 逻辑运算符 鉴于这个例子 我怎样才能减少它呢 如果你不明白 scope 忽略它 它基本上是一个视图 因此 当
  • 在引导程序轮播中加载多个谷歌图表

    我创建了一个引导程序轮播来说明我们公司的数据 在这个轮播中 我有引导表 图片和两个谷歌图表 饼图和堆积条形图 如果我没有为谷歌图表保留活动类 它们将无法正确加载 有时图表大小会发生变化 有时图例不会显示 如果我使饼图处于活动状态 则它可以正
  • Clojure 中的自动 TCO

    有没有办法在 Clojure 中定义自动尾部调用优化的函数 e g defrecur fact x if x 1 1 x fact dec x 将在内部翻译为 defn fact x loop n x f 1 if n 1 f recur
  • HTML 服务提交表单不调用 google.script.run 函数

    我有一个脚本曾经工作得很好 但突然停止工作了 用户从用户创建的菜单中选择一个选项 该菜单将启动一个对话框 HTML 服务表单 来收集两个参数 这一切工作正常 当用户提交表单时 应执行此代码
  • Rails:相同两个模型之间的多个联接表

    我有两个模型 玩家和事件 它们之间有两个连接表 参与者和课程 class Event has many participants has many players through participants has many lessons
  • SSIS 包中 ReadUncommissed 隔离级别的解决方法

    SSIS 中的 ReadUncomfilled IsolationLevel 是 Microsoft 承认的一个错误 但 不会修复 如下所述 http connect microsoft com SQLServer feedback det
  • 使用extend.js有什么好处?

    我刚刚认识扩展 js https github com searls extend js 并且想知道使用该库是否比使用本机 JavaScript 具有附加价值 让我演示一下 With 扩展 js 我会声明一个命名空间 如下所示 extend
  • MySQL:永久设置 sql_mode

    通过 MySQL 命令行客户端 我尝试设置全局 mysql mode SET GLOBAL sql mode TRADITIONAL 这适用于当前会话 但在我重新启动服务器后 sql mode 将返回到其默认值 一个空字符串 如何将 sql
  • Codeigniter - 使用force_download函数下载文件

    我正在使用最新的 CI 我在当地工作时没有任何问题 但是当我将作品转移到实时服务器时 我遇到了问题 当我从下载选项卡下载文件时 文件将以正确的大小和格式下载 但是当我打开下载的文件时 例如 如果是图像 则图像不显示 或者如果是单词 则要求选
  • Java 不运行带参数的准备语句

    我正在使用PreparedStatement 来查询我的表 不幸的是 我没能做到这一点 我的代码很简单 PreparedStatement preparedStatement connection prepareStatement Sele
  • 我们可以在 Cubism 上使用自定义 JSON 数据吗?

    我看到了立体图 它们简直太神奇了 我有一个很大的 JSON 文件 其中包含 1000 个条目 其中包含时间戳和值 整数 Cubism 可以绘制这些图吗 我似乎找不到这方面的文档 Cubism 通常适用于实时数据 但您可以实现一个仅从 JSO
  • Swift:获取字典中键的数量

    对于快速数组 我们可以简单地使用count属性来找出集合中有多少个元素 然而 我们不能对字典键做同样的事情 执行此操作的唯一方法是使用 for 循环和计数器吗 var myDict String AnyObject intialize di
  • FFmpeg:如何将带有黑边的垂直视频转换为背景边模糊的 16:9 视频

    如何使用 FFmpeg 实现这一点 没有 FFmpeg 的示例 Adobe After Effects http www youtube com watch v yCOrqUA0ws4 索尼维加斯专业版 http www youtube c
  • Snakemake 和 pandas 语法

    我有一个输入文件如下 SampleName Run Read1 Read2 A run1 test true data 4k R1 fq test true data 4k R2 fq A run2 test samples A fastq
  • SQL Server 2012经典asp连接字符串

    我安装了 SQL Server 2012 Express 其中有一个名为BRD我创造的 我还创建了一个测试表 tempDemo 和一个测试存储过程 getStList 在里面BRD数据库 当我在查询窗口中运行存储过程时 它会起作用 因此我相
  • 移动设备上的视觉视口与布局视口

    我刚刚读了一篇关于视口的好文章 http www quirksmode org mobile viewports2 html这给我留下了一些关于移动设备上的视觉视口与布局视口的问题 布局视口的宽度和高度等于任何值 可以以最大缩小模式显示在屏