在移动设备上随键盘缩放的全屏 HTML 元素

2023-12-13

我有一个 DIV 元素,我希望它显示为浏览器的完整尺寸,但会有一些填充和圆角。这部分很简单,但我希望当键盘显示为新视口的大小时调整它的大小。我可以使用 window.visualViewport.height 使用 Javascript 很好地做到这一点。问题是某些浏览器没有提供完全正确的大小,因此 DIV 无法正确显示。有没有办法用纯 CSS 或其他适用于所有浏览器的方式来做到这一点?


一种解决方案是使用viewport,它是表示当前可见区域的动态值。vh是高,并且vw是宽度,两者都等于屏幕高度/宽度的 1%。

通过这种方法,当软键盘打开时,这个区域就会缩小,你的容器也会缩小。

首先,添加此元标记,以便视口代表实际设备尺寸,而不是放大尺寸:

<meta name="viewport" content="width=device-width">

接下来,只需设置高度以使用屏幕高度:

height: 100vh;

如果你想扣除固定的空间量,那么你可以使用calc, e.g:

height: calc(100vh - 0.5rem)

Demo

根据您的屏幕截图,这是一个示例:

.container {
  background: #e3e3e3;
  border-radius: 0.5rem;
  height: calc(100vh - 1rem);
  width: calc(100% - 1rem);
  margin: 0 auto;
}
<head>
  <meta name="viewport" content="width=device-width">
</head>

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

在移动设备上随键盘缩放的全屏 HTML 元素 的相关文章

  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • IE 中的 XPath 查询使用从零开始的索引,但 W3C 规范是从一开始的。我应该如何处理差异?

    问题 我正在转换目前仅适用于 Internet Explorer 的相对较大的 Javascript 代码 以便使其也适用于其他浏览器 由于代码广泛使用 XPath 我们做了一些兼容性功能以使事情变得更容易 function selectN
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • 如何按照请求的顺序处理 jquery ajax 请求

    我正在制作一个 java servlet 页面 用于检查域名列表 并通过 jquery ajax 请求检查每个名称 除了结果被乱序附加到 DOM 之外 它工作得很好 什么是按请求顺序处理请求但又像长轮询效果一样异步的最佳方法 我是 Java
  • 在启动时通过UAC授予c++程序管理权限

    所以我做了一些研究 但我有兴趣了解如何让他的程序在执行之前向 UAC 请求管理权限 这是否需要在 ShellExecute 中使用 runas 我意识到这是我在编程冒险中需要理解的事情 因为几乎我安装的每个程序都问过我这个问题 例如 如果我
  • 如何将整数转换为日期对象Python?

    我正在 python 中创建一个模块 在其中我收到整数格式的日期 例如20120213 表示 2012 年 2 月 13 日 现在 我想将这个整数格式的日期转换为 python 日期对象 另外 是否有任何方法可以减去 添加此类整数格式日期中
  • Android R 中的后台服务在省电模式下停止

    我编写了一个 Android 应用程序 通过更改电量来检查电池电量 并在电量达到特定值时发出警报 我在我的应用程序中使用了广播接收器和后台服务 它在所有 Android 版本中都能正常工作 但在 Android R 中 当打开省电模式时 服
  • 是否可以重命名 Firebase 实时数据库中的密钥?

    我想知道有没有办法更新键值 让我们使用以下数据 我正在使用 set 来写入数据 现在 我希望用户编辑他们的bookTitle两个地方都需要改变 我尝试使用 update 但似乎无法使其工作 我只能编辑bookTitle in bookInf
  • 使用 Angular 7 Material CDK 进行嵌套拖放

    我有一个拖放列表的嵌套树 不是树组件 当拖动另一个下拉列表中包含的下拉列表中的项目时 两个下拉列表都会触发 Enter Exit 事件 这意味着当一个项目被删除时 它可以被放入内部下拉列表或容器下拉列表中 具体取决于它被删除的地方 注意 这
  • 共同的偏好和清晰的历史/数据

    如果我在android中使用sharedpreference在应用程序的生命周期内将数据本地存储在设备上 直到应用程序被卸载 当用户选择从android的 gt 菜单 gt 设置 gt 清除数据 时是否有丢失数据的风险管理应用程序 gt 清
  • Java 使用 JDBC - 连接太多?

    我正在为一家酒吧编写一个库存补货系统 作为我的最后一年项目 我可以从 MYSQL 数据库检索信息 并且可以一次滚动浏览一个结果 我正在尝试根据所选类别更改结果 我已经设法使用组合框来实现此目的 但在类别之间移动时出现以下错误 线程 main
  • 为什么这些 Python tkinter 检查按钮是链接的?

    我目前正在尝试创建一个 GUI 来比较两个不同文件夹之间的文件 并拥有一个我现在正在尝试构建的基本框架 我在窗口的左侧 右侧和底部有三个框架 每个框架有两个复选按钮 我希望能够彼此独立地选择每个复选按钮 但每次我单击任何一个框架的第一个复选
  • 在联邦训练中实现数据生成器

    我已将问题发布在https github com tensorflow federated issues 793也许也在这里 我已经将自己的数据和模型定制为联合接口和融合的训练 但我对图像分类任务中的一个问题感到困惑 整个数据集非常大并且无
  • 在 Redshift 中: (\s|\+) 模式不起作用,但 ([\s]|[\+]) 可以。它们是一样的吗?

    当我在 Redshift 中运行此查询时 select distinct bot case when bot Web s Downloader then 1 else 0 end isbot from bots 我收到此错误 无效操作 重复
  • 尝试插入表时出现“ORA-00922:缺少或无效选项”

    当我在 Oracle sql Developer 中运行 SQL 查询时 它可以工作 但在 jdbc 中 此查询不起作用并捕获 java sql SQLSyntaxErrorException ORA 00922 缺少或无效选项 有人可以帮
  • Firebase 通知 - 无效的注册令牌,请检查 Android 中的令牌格式

    如果我通过从 Firebase 控制台选择包来发送推送消息 推送将发送到所有设备 但在发送到单个设备期间 它会显示错误 Invalid reg token please check token format 错误快照 控制台中的 UserI
  • 加载自定义字体时出现问题

    我正在尝试在 slick2d 中加载字体 该字体 在 Eclipse 中 位于 resources fonts slkscr ttf 使用以下代码 private void loadResources try Font fontRaw Fo
  • CLion 未在终端中运行

    在 CLion 的嵌入式终端中放置某些字符 单击 运行 按钮时弹出的 运行 选项卡 时存在此错误 我发现如果我更改 CLion 中的终端 就不会发生这种情况 我将终端更改为 cmder 现在一切正常 除了一件事 我不知道如何让 CLion
  • 使用BeautifulSoup,如何防范元素找不到?

    我正在循环遍历表中的表行 但前 1 或 2 行没有我要查找的元素 它们用于表列标题等 因此 在第三个表格行之后 表格单元格 td 中的元素包含我正在寻找的内容 e g td 0 a img src 但调用此函数会失败 因为前几行没有此函数
  • 通过单击按钮替换滑动删除的操作

    我有一个表格视图 每个单元格上都有一个标签和两个按钮 目前我有这段代码可以通过滑动来删除 void tableView UITableView tableView commitEditingStyle UITableViewCellEdit
  • 使用 Python 中的 SAX 解析器按记录的一定数量解析大型 XML

    我能够解析大型 xml 因为我在使用 SAX 解析器时遇到内存问题 我使用 XMLGenerator 来分割 xml 并再次解析它 我的问题是 有没有办法逐个解析大型 xml 例如 一旦我解析前 10000 条记录 就会加载到 csv 或
  • 在Matlab中获取完整大小的颜色条

    我正在为 Matlab 编写一个绘图自动化例程 但是 我在评估颜色条的 水平 大小时遇到 问题 我可以使用以下方法来获取颜色条的大小 cb findall groot Type colorbar get colorbar xwidth cb
  • 在移动设备上随键盘缩放的全屏 HTML 元素

    我有一个 DIV 元素 我希望它显示为浏览器的完整尺寸 但会有一些填充和圆角 这部分很简单 但我希望当键盘显示为新视口的大小时调整它的大小 我可以使用 window visualViewport height 使用 Javascript 很