移动网站 - 在方向改变时重置视口

2023-11-27

我有一个宽度为 590 像素的移动页面。所以我这样设置视口:

<meta name = "viewport" content = "width = 590">

当我第一次以纵向或横向方式访问该页面时,它看起来不错。页面完全填充宽度。但是当我改变方向时,视口不会改变。当我从纵向转到横向时,视口比 590 像素更宽,反之亦然。

仅在 Galaxy S2 上测试


这听起来和我遇到的问题一模一样。我找不到统一的答案,所以不得不拼凑一个。

首先,任何在纵向和横向上显示不同的 CSS 都必须放入其自己的 @media 标签中。将整个类放入每个 @media 选择器中非常重要,而不仅仅是不同的部分。两个视图共有的 CSS 可以放在顶部。我的设备宽度显示为 580,因此我将截止值设置为 600 - 您可以将其设置为您认为适合您的值。

    // All CSS that is common to both

@media all and (min-device-width:601px)and (orientation:landscape){
    // All CSS for Landscape and Desktop
}
@media only screen and (max-device-width:600px)and (orientation:portrait){
    // All CSS for Portrait view
}

接下来是视口设置。我将此代码作为标准放入每个页面标题中(尺寸是我的手机纵向尺寸)。它需要那里的元数据,以便 javascript 可以稍后访问它。

<meta name="viewport" id="viewport" content="width=480, initial-scale=0.25, maximum-scale=1.0;" />

最后,当页面检测到手机旋转时,我不得不使用一些 Javascript 来重写视口设置(感谢 Vinayak.B)来源文章)

    //Code to display on mobiles
    //========================================

    var swidth = window.screen.width;
    //These were the values of my website CSS container for portrait and landscape
    var vpwidth = 480;
    var vlwidth = 960;

    updateOrientation();

    window.addEventListener('orientationchange', updateOrientation, false);

    function updateOrientation() {


      var viewport = document.querySelector("meta[name=viewport]");

      switch (window.orientation) {
        case 0: //portrait
          //set the viewport attributes to whatever you want!
            viewport.setAttribute('content', 'width=' + vpwidth + ', initial-scale=0.25, maximum-scale=1.0;')
          break;
        case 90: case -90: //landscape
          //set the viewport attributes to whatever you want!
            viewport.setAttribute('content', 'width=' + vlwidth + ', initial-scale=0.25, maximum-scale=1.0;')
          break;
        default:
          //set the viewport attributes to whatever you want!
            viewport.setAttribute('content', 'width=' + vpwidth + ', initial-scale=0.25, maximum-scale=1.0;')
          break;
      }
        //alert(swidth + ' lead to an initial width of ' + vpwidth + ' and a rotate width of ' + vlwidth);
    }

经过几个小时的尝试后,这对我有用。由于某种原因,在我的手机上,initial-scale=1 搞砸了,但 0.25 有效?!我希望它对您有用,或者至少提供一个良好的起点。

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

移动网站 - 在方向改变时重置视口 的相关文章

  • 如何制作可扩展的文本框?

    我想制作一本以给定宽度 高度开始的教科书 然后 如果用户输入的内容超过给定的空间量 文本框就会向下扩展 我该怎么做呢 我使用 CSS 吗 当用户超过允许的行数时 基本文本框仅显示滚动条 如何使文本框将行数再扩展 5 行
  • 使用 CSS 显示 div 内容后淡出

    我正在尝试在单击按钮时显示通知 单击按钮实际上会检查电子邮件验证 我知道要显示一个包含错误消息内容的 div 但是 我想淡出错误消息 比如说 5 秒后 我想用CSS来实现它 以下是我的尝试 它只是隐藏了一切 signup response
  • NicEdit 数据不在 POST 中

    我确信我在这里错过了一些非常简单的东西 我已经搜索过 但似乎找不到答案 用这个简单的形式 我如何将 NicEdit 框中的内容发送到我的 HTTP POST 我得到的只是原始文本区域值而不是编辑后的版本 h2 Test Page h2
  • jquery - 如何根据我的滚动位置滚动顶部动画到下一个可见的 div/类?

    如果标题有点模糊 请原谅我 因为我不知道如何写下来 基本上 我们有一个包含 6 个 场景 的页面 他们都有班级 scene和不同的 ID 例如 scene1 scene2 etc 首先 我们必须动态更改每个场景的颜色 gt 场景 1 是浅色
  • 如何使用Javascript统计通过ajax返回的
  • 的数量?
  • 我有一个 ajax 代码 它将列表项返回为 li one li li Two li 每次都会返回不同数量的 li 的 我想查一下数量 li li 它返回 如何使用 JavaScript 检查它 给你 returnedHTML find li
  • 父元素的 mousedown 事件中的 offsetX 和 offsetY 错误

    我在 mousedown 上获取 offsetX 时遇到问题 下面是我的代码 div Click the text The mouseDown function is triggered when the mouse button is p
  • html 中的图像按钮

    我正在尝试获取一个带有图像的按钮 我见过类似下面的东西 但它们不会为您提供普通按钮所具有的按钮按下 释放效果
  • 如何在CSS中嵌套多个计数器?

    我想用 CSS 嵌套两个不同的编号 以获得如下所示的自动编号 1 第 1 节 1 1 小节1 1 2 小节1 2 第 2 节 2 1 小节2 2 2 小节2 这是我实现这一目标的尝试
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • 我可以在一个变量中拥有多个值吗?

    正如标题 我可以在一个变量中拥有多个值吗 首先 我有这个表格
  • html 音频标签,持续时间总是无穷大

    我一直在研究使用 html 音频标签来播放一些音频文件 音频播放正常 但音频标签的持续时间属性始终返回无穷大 我尝试了接受的答案this https stackoverflow com questions 16849023 html5 au
  • 使用过渡添加子项时 div 的平滑增长

    尽管使用了以下代码 但其行为并不符合我的预期transition所以可能有些事情我不明白 理想情况下 单击该按钮会将一个子项添加到id2div 并制作id1分区增长smoothly因此 function id1 button click g
  • 如何使单词中的每个字母在悬停时发生变化

    假设我的网站上某个段落中有一个单词 IamGreat 我希望它在悬停时更改为 Good4you 但是 我不想更改整个单词 而是希望每个字母单独更改 因此 如果我将鼠标悬停在字母 I 上 它将变成字母 G 字母 r 将变成数字 4 等 这两个
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • 下拉菜单导致滚动条

    我用过这个W3C 的示例 http www w3schools com bootstrap bootstrap dropdowns asp div class dropdown div
  • 如何使链接悬停时的背景图像模糊?

    当您用鼠标光标悬停链接时 我想让我的背景图像模糊 5 像素 有什么简单的方法可以实现这一点吗 我有点纠结于类和 id 在这里 pic background url http www metalinjection net wp content
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • 创建响应式眼睛焦点图标

    我一直在尝试制作响应式彩色眼睛焦点图标 但到目前为止我所尝试的一切均不成功 我试图在某种程度上复制真眼的颜色 我使用边框 框阴影来获取颜色 但该部分没有缩放 也尝试过轮廓 但也失败了 那个甚至不是圆的 div 的高度当前是静态的 但我希望它
  • HTML 布局:向现有网站添加侧边栏

    我有一个网站 其正文如下所示 div div div div div div 这些中没有使用绝对 相对定位技巧divs 但是有很多floats clears margins and padding这些风格divs 及其内部元素 所有这些都会
  • CSS交付优化:如何推迟CSS加载?

    我在尝试着优化 CSS 交付遵循针对开发人员的谷歌文档https developers google com speed docs insights OptimizeCSSDelivery example https developers

随机推荐

  • 调整未知数量的元素大小以填充父容器的宽度

    我需要将未知数量的 div 可能限制为 5 左右 放入父容器中 并始终确保它们保持均等划分 我不确定这是否可以单独使用 CSS 来完成 但我想我最好问一下 因此 如果我们知道使用了 3 个 div div div class menu bu
  • cassandra 分片和复制

    我是 Cassandra 的新手 不过本文解释分片和复制 我陷入了一个困境 我的本地计算机上配置了一个包含 6 个 Cassandra 节点的集群 我创建一个新的键空间 TestKeySpace 复制因子为 6 并在键空间 employee
  • 位置管理器是在调度队列上创建的

    这个消息是什么意思 注意 位置管理器 0xe86bdf0 是在主线程以外的线程上执行的调度队列上创建的 开发人员有责任确保在分配位置管理器对象的线程上运行运行循环 特别是 不支持在任意调度队列 未附加到主队列 中创建位置管理器 这将导致无法
  • 从用户选择的文本返回 HTML

    我有以下非常简单的 html 页面 This is span style background color black color white the span
  • Spark:将大 MySQL 表读入 DataFrame 失败

    我想提前告诉您 以下几个相关问题不能解决我的问题 Spark查询运行速度非常慢 将 mysql 表转换为数据集非常慢 Spark 不会加载大型 MySql 表 Spark MySQL 从数据库读取时出错 This one很接近 但堆栈跟踪不
  • 为什么 jQuery 的电子邮件验证正则表达式如此简单?

    We all know that a regex to validate emails properly would be quite complicated However jQuery s validation plugin has a
  • 使用 git post-receive 挂钩的边带解复用器中出现错误

    我已经使用 git 设置了一个 EC2 实例 并使用 post receive hook 将其部署到我的服务器本教程 这是我的控制台的输出 git push production master email protected s passw
  • 为什么我可以使用 Javascript 阻止 keydown 上的默认事件,但不能阻止 keyup 上的默认事件?

    使用时 keydown我可以捕获 keydown 事件 然后检查并防止默认操作 显示字符 使用时 keyup我不能 我知道该事件被捕获为alert 当代码处于条件内但仍触发时触发preventDefault 不会阻止该操作 这里有一个完整的
  • 按时间和 pandas 中的其他列分组

    我有一个大的 pandas 数据框 其中包含时间戳 名称和值列 index timestamp name value 0 1999 12 31 23 59 59 000107 A 16 1 1999 12 31 23 59 59 00038
  • 胶水爬虫排除模式

    我有一个 s3 存储桶 我正在尝试对其进行爬网和编目 格式是这样的 其中 SQL 文件是 DDL 查询 CREATE TABLE语句 匹配不同数据文件的模式 即data1 data2 etc s3 my bucket somedata 20
  • 将 Html 表导出到 Excel 并保留 css 样式

    我正在使用 Excel Web 查询将 html 表 MVC 视图 导出到 Excel 我如何让它携带CSS样式 如果我设置class redLabel 它不会解释这一点并使标签变为红色 我必须在表格中使用内联样式才能正常工作 有任何想法吗
  • swift 在 iPhone 上截图只有白色背景

    一些背景 我只是想在 swift 中使用 xcode 6 beta 7 做一个简单的程序 以便在按下按钮后对 iPhone 进行屏幕截图 它是在 SpiteKit 和游戏场景中完成的 背景是随机 png 图像和 hello world 默认
  • 使用“cpan”安装 Perl 模块时如何避免 sudo?

    我已将 Perl 从源代码安装到 usr local 中 并相应地调整了我的路径 如下布莱恩 福伊的建议在这里 我确信我遗漏了一些东西 但是 现在我尝试使用 cpan 命令安装东西 但它失败了 因为它无法写入 usr local 我必须使用
  • 对运算符+和/或运算符+=使用移动语义是否有意义?

    我想知道在重载运算符 和 或运算符 时 在什么情况下使用移动语义才有意义 尽管它被解释为这个问题我怎么能做到这一点 我无法理解为什么我要这样做 让我们考虑运算符 如果我只是通过引用传递右侧对象并对左侧对象进行适当的更改 则无论如何都不会产生
  • 在 python 中使用 .pyc 文件时是否有任何性能提升?

    我们可以编写一段python代码并将其放入已经编译好的 pyc 文件中并使用它 我想知道在性能方面是否有任何增益 或者它只是一种对代码进行分组的模块化方式 多谢 在您的计划过程中没有任何性能提升 它只会缩短启动时间 从 pyc 或 pyc
  • 如何从 T-Sql 中的日期时间中提取日期?

    我正在 SQL Server 2005 中针对日期时间列运行选择 我只能从此日期时间列中选择日期吗 最好的办法是 SELECT DATEADD day DATEDIFF Day 0 ADate 0 这是因为 SQL Server 在内部将所
  • 从字符串中查找并提取数字

    我需要查找并提取字符串中包含的数字 例如 从这些字符串 string test 1 test string test1 1 test string test2 test 99 我怎样才能做到这一点 d 是整数的正则表达式 所以 System
  • 如何在满足严格弱排序的n元组上定义operator<

    这个问题在这里已经有答案了 如何定义operator lt 在 n 元组上 例如在 3 元组上 使其满足严格弱序概念 我知道 boost 库有正确定义的元组类operator lt 但由于某些原因我无法使用它 严格弱序 这是一个数学术语 用
  • 记录后重新抛出 UncaughtExceptionHandler 异常

    在我的应用程序类中 我试图在发生之前捕获强制关闭 这样我就可以记录它 然后重新抛出它 以便 android 可以处理它 我这样做是因为有些用户没有报告强制关闭 我正在 eclipse 中开发 而 eclipse 不允许我重新抛出异常 它显示
  • 移动网站 - 在方向改变时重置视口

    我有一个宽度为 590 像素的移动页面 所以我这样设置视口 当我第一次以纵向或横向方式访问该页面时 它看起来不错 页面完全填充宽度 但是当我改变方向时 视口不会改变 当我从纵向转到横向时 视口比 590 像素更宽 反之亦然 仅在 Galax