首页
学习
活动
专区
圈层
工具
发布

移动端布局避坑:从 `100vh` 到 `100dvh`

但上线后你可能发现——页面一加载就跳,弹出键盘直接遮住输入框,滚动时布局还会“鬼畜”一抖? 这些问题的元凶,正是你信任的 100vh。...vh 的坑:全屏布局不等于全屏体验 vh 是视口高度单位,100vh 表示「当前视口的 100% 高度」。听起来完美?可惜在移动端世界,“当前”并不稳定。...你可能遇到的坑: 页面初始加载时:地址栏展开 → 页面高度较小 ⬆️ 滚动页面:地址栏收起 → 页面变高,内容跳动 ⌨️ 键盘弹出:视口缩小 → 页面溢出,输入框被遮挡 .fullscreen {...Large Viewport Height 地址栏收起后的最大视口高度 dvh Dynamic Viewport Height(推荐) 当前状态下的实时视口高度 记忆小技巧: s = small...最大) d = dynamic(最灵活) 用法场景举例 页面加载避免抖动:用 svh .safe-screen { height: 100svh; /* 地址栏展开时不会跳动 */ } ⌨️ 弹出键盘不遮住内容

88110

多端开发实践 | 不同手机系统兼容性挑战与实战解决方案

一、键盘交互兼容性解决方案1.1 键盘遮挡输入框:Android/HarmonyOS重灾区问题本质:软键盘弹出挤压视口高度却不触发resize事件。...解决方案:滚动补偿算法/** * 自定义Hook:处理键盘弹出时页面自动滚动逻辑 * 当输入框获得焦点(键盘弹出)时,自动调整页面滚动位置确保输入框不被键盘遮挡 * * @param {Object}...(() => { /** * 键盘弹出事件处理函数 * 计算输入框位置并执行页面滚动调整 */ const keyboardHandler = () => {...)使用 useEffect 的清理函数自动移除监听(避免内存泄漏)鸿蒙系统兼容通过 navigator.userAgent 检测鸿蒙系统特殊延迟逻辑:鸿蒙系统需延迟 300ms 确保键盘完全弹出后再计算位置滚动触发条件安全线计算...:输入框底部位置 > 视口高度的 60% 时触发滚动滚动距离:滚动距离 = 当前滚动位置 + (输入框底部 - 视口高度 * 0.6)滚动行为使用 window.scrollTo 实现平滑滚动(behavior

1.1K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于H5在移动端弹出下拉选项时遮挡输入框的问题

    position: fixed; bottom: 10px; left: 0; right: 0; z-index: 200; } 复制代码 fixed定位的元素是相对于屏幕视口...当光标聚焦到编辑区输入文字时,系统级的输入法键盘弹出,此时,键盘的弹出对webview的高度会有一定的影响,而android和ios对webview的处理有所不同,简单的说就是: android上:在下图中...,键盘未弹出时,webview的高度 = 左图蓝色框的高度,当键盘弹出时,webview的高度 = 右图蓝色框的高度 - 红色框键盘的高度,也就是说webview的高度为绿色框的高度 ios上:webview...app端,当键盘弹出时,通过事件告知H5键盘的高度,然后H5根据webview的高度和键盘的高度动态的计算工具栏的位置,将其定位到键盘之上。...但是对于下拉选项而言,弹出框的下拉选项是我们自己实现的,也就不是系统级的,所以,系统不会对其进行处理,如:将聚焦的输入框推动到可视范围之内,因此,会导致遮挡问题。

    6.4K30

    【Web APIs】JavaScript 事件基础 ① ( JavaScript 事件简介 | “ 事件 “ 概念 | “ 事件 “ 三要素 - 事件源 事件 事件处理程序 | 事件类型 )

    事件 " 是 用户 与 HTML 网页 交互时触发的 , 如 : 鼠标点击 , 鼠标移动 , 键盘按键 , 表单提交 , 文件加载 等 动作 ; " 事件处理程序 " ( Event Handlers...) 是 JavaScript 脚本中处理 " 事件 " 的函数 , 在该函数中可以针对用户的 不同的动作 做出不同的响应 ; 在网页中 , 每个 HTML 标签元素 都可以触发 JavaScript 事件..., 如 : 点击 某个 标签元素 , 弹出对话框 ; 2、" 事件 " 三要素 - 事件源 / 事件 / 事件处理程序 " 事件 " 三要素 : 事件源 Event Source : 触发 " 事件..." 的 HTML 标签元素 , 如 : 按钮、链接、表单域 ; 事件源 可以是任何能接收事件的 HTML 元素或者浏览器窗口本身 ; Click me 事件 Event : 用户 触发的 " 动作 " 或者 " 状态改变 " ; 用户触发的动作 : 鼠标、键盘操作 , 状态改变 : 文加载完成 , 视频播放完毕 ; // 为上述 myButton

    89910

    HTML5 - 虚拟键盘出现挡住输入框的解决办法

    如果文本输入框在整个页面的下方,当我们点击输入框要输入文字时,系统弹出的虚拟键盘就会将输入框给挡住。(这个只有在Android 系统下会有这个问题,iOS 系统会自动将整个页面上移动。) ? ?...2,解决办法 我们可以借助元素的 scrollIntoViewIfNeeded() 方法。这个方法执行后如果当前元素在视口中不可见,则会滚动浏览器窗口或容器元素,最终让它可见。...如果当前元素在视口中已经是可见的,这个方法什么也不做。...3,样例代码 这里使用了 jQuery 绑定了所有输入框(textinput、textarea)的点击事件,这样当输入框被点击后就调用它的 scrollIntoViewIfNeeded() 方法,保证输入框可见...(延迟400毫秒出现时有些 Android 手机键盘出现的比较慢) 1 2 3 4 5 6 7 8 //防止键盘把当前输入框给挡住 $('input[type="text"],textarea').on

    2.7K20

    让你大开眼界的网页无障碍(Accessibility)测试秘诀

    我们每天浏览网页获取信息,可能未曾意识到这对于许多残障人士而言却不是一件容易的事情。肢体障碍用户可能仅能依靠键盘进行导航,视障用户依赖屏幕阅读器将内容转化为语音或盲文。...国际通用的《网页内容无障碍指南》(WCAG)为这一目标提供了具体的技术标准和实施框架。一、确保键盘导航的逻辑性与可见性对于上肢活动不便或无法使用鼠标的用户,键盘通常是浏览网页的主要工具。...这会导致焦点在跳转时突然“消失”,让依赖键盘的用户迷失方向。对于视障且使用屏幕阅读器的用户,情况更糟:他们会听到一个无法感知或操作的控件被朗读出来,造成认知混乱。...因此,必须确保视觉上隐藏的交互元素,也同步从键盘导航序列中移除。二、为视障用户描述图像内容图像承载着丰富信息,但对于全盲或低视力用户,缺少描述的图片只是一个信息黑洞。...而视障用户则依靠编码中的语义化结构——即正确的标题层级(H1,H2,H3…)与地标区域(如、)。

    18500

    ps切图怎么做成html,PS切图怎么导出网页 PS切图怎么生成源代码

    2、选择“切片工具”,或者按键盘上的Shift+C来切换到“切片工具”。 3、画切片。利用参考线画出的切片会没有分隔符。 4、画好切片后,选择需要添加链接的单个切片区域,点击鼠标右键。...7、保存时可以选择图片的格式,品质和图片尺寸的大小。格式一般为jpg具体看使用需要。品质决定图片的内存大小和画质的清晰度,视情况而调。...8、点击“储存”后,弹出“将优化结果储存为”的窗口,这里要把格式更改成“HTML和图像”或者“仅HTML”。HTML是网页格式链接就做里面。...如图所示: 6、点击“编辑切片选项”之后,在弹出的窗口中粘贴你准备好的链接地址,再在目标栏里填上“_banck”,此表示在新窗口中打开网页,如果不需要就不填了。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    5.2K40

    CSS banner图响应式居中显示

    图片 在 PC 网站首页,banner 图作为网页中最大的一张图片,在传达网页的的主要信息的同时,也吸引着浏览者的所有注意力,所以 banner 图的展示方式直接影响着用户的体验,今天我们就来聊聊 banner...图如何在不同尺寸的视口中居中显示 我们都知道,通过background-size: cover;属性能够将图片居中显示,但在窗口拉伸的过程中,图片往往很随着拉伸而变得惨不忍睹,所以我们可以将图片独立出来...,并通过隐藏图片两侧的方式,来达到 banner 图在不同尺寸下居中显示的目的 HTML 结构如下 !...margin: 0 auto; } .banner img { width: 1920px; margin: 0 -355px; vertical-align: middle; } 当视口宽度与图片宽度同为...1920 px 时,Nian 糕正好处于视图居中位置,页面效果如下图所示 当视口宽度为 1210 px 时,Nian 糕依旧在视图中居中显示,如下图所示 本篇的内容到这里就全部结束了,源码我已经发到了

    3.3K30

    用APICloud如何开发出运行体验良好、高性能的 App

    屏幕适配: 要正确设置 viewport,建议使用 720*1280 尺寸的 UI 图,优先考虑绝对计量类的单位 px,应先在 UI 效果图中(如 720x1280 尺寸图)量出元素的宽或高对应的 px...在 config.xml 中有关于键盘显示方式,弹出方式和第三方键盘使用的各种配置,要根据需要正确配置。...在打开 Window 的时候,如果自动弹出键盘,弹出键盘的行为影响切换动画执行的流畅性,出现卡顿或丢帧的情况。...建议可以对键盘弹出的行为设置适当的延迟,例如在 apiready 中设置延迟 200ms 后再让 UIInut 元素获得焦点。...输入框位于设备屏幕下半部份的应用场景,config.xml 中的的键盘弹出模式参数 softInputMode 务必设置为 resize 模式,或者使用 UIInput 相关模块。

    2.8K20

    可访问性测试(无障碍测试)

    特点: 视障QA工程师是QualityLogic网站可访问性审核团队的重要组成部分。 利用自动化测试工具来发现错误,如HTML错误、结构问题等。 手工测试由熟练的WCAG测试技术人员完成。...无障碍测试的挑战 以下是无障碍指南试图解决的一些常见挑战或困难: 伤残类型 伤残描述 视觉障碍‍‍ 完全失明或色盲或视力差视觉问题,如视觉频闪和闪烁效果问题 身体残疾 难以使用键盘或鼠标 认知障碍 学习困难或记忆力差...有一些事情,如alt文本是否适合图像,不能完全评估,但它们在大多数情况下是有效的。 要遵循的通用网页设计原则 网站应该普遍设计的方式,它应该遵循可用性和可访问性原则。...视觉残疾用户访问网页通过点击键盘上的标签按钮和从链接到链接移动。因此,正确定义链接的描述是至关重要的。确保超链接可以使用tab键访问。 尽可能提供适当的图片。图画比语言更响亮。...使用屏幕阅读器阅读网页的用户,弹出窗口对他们来说真的很不方便。屏幕阅读器从上到下阅读页面,然后突然弹出一个窗口,读者会在实际内容之前先开始阅读它。它会让视觉障碍用户感到困惑。 CSS布局。

    1.5K51

    Google Chrome浏览器安装教程 谷歌浏览器离线安装(PC+安卓)附谷歌三件套 安装包!

    安全浏览(Safe Browsing)基于Google的全球恶意网站数据库,实时检测用户访问的网址、下载的文件:若网址被标记为“钓鱼网站”(伪装正规网站窃取账号密码)或“恶意网站”(含病毒、木马),会弹出警告页面阻止访问...(如Let’s Encrypt),若证书过期、伪造或不匹配,提示“您的连接不是私密连接”,防止“中间人攻击”(窃取用户传输的数据,如支付信息)。...,通过系统级加密(如Windows的BitLocker、macOS的FileVault)存储,防止设备丢失后数据被窃取。...(如电脑上未看完的网页,手机可继续浏览)。...、VoiceOver)、键盘导航、字体放大等,符合WCAG(Web内容无障碍指南),方便视障、听障用户使用。

    15.5K1000

    【Java 进阶篇】HTML DOM 事件详解

    在网页开发中,事件是指用户或浏览器与网页元素交互的瞬间,例如点击按钮、移动鼠标、按下键盘等。这些互动动作都会触发特定的事件,而开发者可以编写JavaScript代码来响应这些事件。...事件使得网页可以实现各种交互效果,包括表单验证、页面导航、动画效果等。 HTML DOM中的事件分为多种类型,包括鼠标事件、键盘事件、表单事件、文档事件等。每种事件都有其特定的触发条件和行为。...键盘事件 按键按下事件(keydown) 按键按下事件在用户按下键盘上的任意键时触发。它通常用于监听用户的键盘输入。...'); }); 在这个示例中,当用户在文本框中释放键盘上的按键时,会弹出一个警告框。...阻止事件冒泡 如果需要阻止事件继续向上冒泡,可以使用事件对象的stopPropagation()方法。这在需要防止父元素处理同一事件时非常有用。

    2.2K20

    最新iOS设计规范四|3大界面要素:视图(Views)

    在内容周围使用足够的填充,以保持布局整齐并防止内容重叠。 集合的方式不适用于文本信息,文本信息可以用列表。相对于集合,文本信息展示在一个可滚动的列表中,浏览起来会更简单和有效。 谨慎进行动态布局变更。...通过在全屏模式视图中显示信息而不是在弹出窗口中来利用所有可用屏幕空间。 使用“关闭”按钮仅用于确认和指导。...文本视图可以是任何高度,并可以通过滚动的方式显示额外的内容。 默认情况下,文本视图中的文本是左对齐的,并使用黑色的系统字体。如果文本视图可编辑,则在视图内部点击时,屏幕下方会弹出键盘。 ?...还应该在启用了辅助功能选项(例如粗体文本)的情况下测试内容单显示情况。 显示恰当的键盘类型。iOS提供了几种不同的键盘类型,每种键盘都对应着一种具体的输入方式。...为了用户可以流畅地进行数据输入,在编辑文本视图期间显示的键盘,应该适合于该字段中的内容类型。例如,输入支付密码弹出的是数字键盘。

    13.7K31

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    添加联系人按钮: 展示联系人列表 帮助用户将一个联系人添加到当前联系人按钮所在的视图中 使用添加联系人按钮让用户在不需要使用键盘的情况下就可以方便地访问到联系人。...文本框 高度固定,包含圆角 当用户点击它时,自动唤起输入键盘 可以包含系统提供的按钮,如书签按钮(Bookmarks) 可以展示多种文字样式(了解更多请参考 UITextView) 使用文本框来获取用户输入的少量信息...当文本框里没有任何其它提示文字时,会展示占位符文本(placeholder text),如名字、地址等。 根据输入内容的类型来指定不同的键盘类型。...想要了解可用键盘类型,可以参考 UITextInputTraits Protocol Reference中的UIKeyboardType.想要了解如何在管理你的应用中的键盘,请参考Managing the...除了警告框外,没有任何元素应该覆盖在弹出层上面。除非极其少有的情况下,用户在弹出层内进行的操作结果必须要以模态视图的形式展现,即便是这个时候,也请先将弹出层关闭,再出现模态视图。

    19.1K30

    WebView 的一切都在这儿

    en-US/docs/Mozilla/Mobile/Viewport_meta_tag https://developer.mozilla.org/zh-CN/docs/Web/CSS/@viewport 视口是一个为网页提供绘图区域的矩形...你可以指定数个视口属性,比如尺寸和初始缩放系数(initial scale)。其中最重要的是视口宽度,它定义了网页水平方向的可用像素总数(可用的CSS像素数)。...多数 Android 上的网页浏览器(包括 Chrome)设置默认视口为一个大尺寸(被称为"wide viewport mode",宽约 980px)。.../confirm/prompt/onbeforeunload) 在javascript中使用 alert/confirm/prompt 会弹出对话框,可通过重载 WebChromeClient 的下列方法控制弹框的交互...注:此方法会导致select无法弹出,因为select默认会弹出一个原生的框,需要activity承载。

    2.6K60

    专为破局而来!最美 Linux 桌面系统 elementary OS 8.1 正式发布!Wayland 默认、ARM 适配,安全与易用双 Buff 拉满

    Wayland 作为新一代显示服务器协议,相较传统 X11 在安全性上有显著提升,可防止应用程序截取其他窗口内容,减少画面撕裂现象。...隐私与安全增强 新增“密码调光”功能,在弹出密码输入框时自动压暗屏幕其他区域,防止焦点被恶意程序劫持,并帮助用户确认输入目标为合法系统提示。...新增的鼠标指针设计、模糊背景效果以及系统应用优化,如“视频”和“字体”应用的重新设计,都更加贴合现代审美。...无障碍支持 安装和首次使用流程针对屏幕阅读器和键盘导航进行了全面优化,大多数情况下,视障用户可以独立完成安装和初始设置。...屏幕阅读器的支持范围进一步扩大,覆盖通知、系统对话框、AppCenter、日历和固件更新等多个区域。 整个桌面的键盘导航更加连贯,自定义快捷键也更灵活,当快捷键发生冲突时,系统会及时提醒。

    28810

    提高效率 |ArcGIS Pro 中所有快捷键一网打尽

    打开快捷菜单(弹出菜单)。 F10 从功能区移至活动视图或窗格并返回功能区。 Ctrl+Tab 或 Alt+F7。将出现一个窗口,其中显示了工程中的活动窗格和视图。使用方向键可移至要激活的视图或窗格。...所选视穹 用于所选视穹的键盘快捷键 键盘快捷键 操作 Ctrl + 上箭头 将视穹向远离照相机的方向移动。 Ctrl + 下箭头 将视穹向照相机的方向移动。...Ctrl + 右箭头 向右移动视穹,使之与场景照相机的朝向垂直。 Ctrl + 左箭头 向左移动视穹,使之与场景照相机的朝向垂直。 Ctrl+U 增大视穹高程。 Ctrl + J 减小视穹高程。...删除 删除所选视穹。 所选视域 用于所选视域的键盘快捷键 键盘快捷键 操作 W 将观察点向上倾斜。 S 将观察点向下倾斜。 A 向左旋转观察点朝向。 D 向右旋转观察点朝向。...Ctrl+双击记录左侧的灰色单元格。 平移至要素并将其选中。 Ctrl+P 或 Ctrl+I 打开活动要素的弹出窗口。 选项卡 转到下一列。如果在行的末尾,则转到下一行的第一个单元格。

    9.7K20

    Vue.js开发移动端经验总结

    width=device-width表示页面宽度layoutviewport与设备视口宽度idealviewport一致 initial-scale=1表示页面宽度和网页宽度与设备视口宽度的初始缩放比例...,网页内容可以比较好的展示出来,在这个前提下我们再考虑页面的适配问题。...vw : 1vw 为视口宽度的 1% vh : 1vh 为视口高度的 1% vmin : vw 和 vh 中的较小值 vmax : 选取 vw 和 vh 中的较大值 和rem相比较,视口单位不需要使用js...iOS弹出键盘;软键盘唤起后,页面的 fixed元素将失效(iOS认为用户更希望的是元素随着滚动而移动,也就是变成了 absolute定位),既然变成了absolute,所以当页面超过一屏且滚动时,失效的...想要进一步可以查看不受控制的position:fixed。 键盘弹出与使用transform属性的情况在移动端是很常见的,所以需要谨慎使用position:fixed。

    4.9K10

    WinCC脚本应用之用户登录注销

    下面我们将演示如何在C/VBS脚本中实现用户登录/注销,并且也会把其它登录/注销方法做逐一介绍。 C脚本 — 登录/注销 如下图所示,在按钮的鼠标事件中创建C脚本,直接写入用户登录/注销的代码。...项目运行后只用按下键盘上对应的快捷键,就可以弹出登录对话框进行登录或者直接注销用户。 VBS脚本 — 登录/注销 接下来演示VBS脚本如何实现用户的登录/注销。...然后在按钮的鼠标事件中创建VBS脚本,输入如下代码,如图所示: 图中代码含义为模拟键盘动作,相当于按下了键盘中的快捷键,间接实现了用户的登录/注销。...最后给不同的用户分配单独的变量值,如下图中所示: 登录变量=1 用户User1登录到系统 登录变量=2 用户User2登录到系统 登录变量=未分配的值 用户注销...注意:此方法不会弹出登录对话框。

    13.4K20

    iPad Safari多窗口视图分析和实现思路

    2019年苹果更新了 iPad mini 和 Air 的产品线,iPad 算是个相当好用的产品,比起 iPhone ,部分型号允许你外接键盘、使用触控笔等硬件来提升生产力,那么我们从软件应用开发角度可以如何帮助用户提升生产力呢...这里我将以 Safari 为参考探讨它的实现思路。 Safari 是 iOS 系统自带的浏览器,支持打开多个网页窗口。...这里还有一点小细节,因为捏合过程双指还可以移动,我们实测 Safari 选择最终放大的页面还会根据捏合手势结束之后哪个视图占据目前视口面积较多、距离视口中心最近来决定,和前述标题的变化无关。...来使得新 vc 的 view 正好充满整个视口。...通过截图这个障眼法来操作可以避免 ScrollView 的交互和子视图中的交互发生冲突。

    4.6K30
    领券