目录
使用正确的输入类型
日期类型的简要介绍
为什么我应该关心inputmode?
不要忘记autocomplete
关于autocomplete…
总结
首页 web前端 css教程 更好的形式输入,以提供更好的移动用户体验

更好的形式输入,以提供更好的移动用户体验

Apr 07, 2025 am 09:21 AM

Better Form Inputs for Better Mobile User Experiences

提升移动设备应用性能的一个简单实用方法:始终使用正确的typeinputmodeautocomplete属性配置HTML输入字段。虽然这三个属性经常被单独讨论,但当您将它们视为一个整体时,它们在移动用户体验中的意义最为重大。

众所周知,移动设备上的表单填写耗时且繁琐,但通过正确配置输入字段,我们可以确保数据输入过程对用户尽可能流畅。让我们来看一些示例和最佳实践,以创建更好的移动设备用户体验。

使用正确的输入类型

这是最容易做对的事情。诸如emailtelurl之类的输入类型在各种浏览器中都得到了很好的支持。虽然在桌面浏览器上使用tel类型而不是更通用的text类型的好处可能难以察觉,但在移动设备上则一目了然。

选择合适的类型会改变用户在Android和iOS设备上聚焦字段时弹出的键盘。只需付出很少的努力,只需使用正确的类型,我们就可以为电子邮件、电话号码、URL甚至搜索输入显示自定义键盘。

需要注意的是,input type="email"input type="url"都具有验证功能,当用户提交表单时,现代浏览器会在其值与预期格式不匹配时显示错误提示。如果您想关闭此功能,只需向包含表单添加novalidate属性即可。

日期类型的简要介绍

HTML输入不仅仅包括专门的文本输入——还包括单选按钮、复选框等等。然而,就本文讨论的目的而言,我主要讨论的是更基于文本的输入

有一种输入类型位于更自由的文本输入和单选按钮等输入小部件之间的临界空间:日期。日期输入类型有多种变体,在移动设备上得到很好的支持,包括datetimedatetime-localmonth。当它们被聚焦时,这些会在iOS和Android中弹出自定义小部件。它们不会触发专门的键盘,而是在iOS中显示类似选择的界面,在Android上显示各种不同类型的小部件(其中日期和时间选择器特别流畅)。

我一开始很兴奋能够在移动设备上使用原生默认设置,直到我环顾四周,意识到大多数主要的应用程序和移动网站都使用自定义日期选择器而不是原生的日期输入类型。这可能有几个原因。首先,我发现原生的iOS日期选择器不如日历类型的小部件直观。其次,即使是设计精美的Android实现与自定义组件相比也相当有限——例如,没有简单的方法可以输入日期范围而不是单个日期。

尽管如此,如果使用的自定义日期选择器在移动设备上的性能不佳,那么日期输入类型还是值得尝试的。如果您想在iOS和Android上尝试原生输入小部件,同时确保桌面用户看到自定义小部件而不是默认的下拉菜单,这段CSS代码可以隐藏实现它的桌面浏览器的日历下拉菜单:

::-webkit-calendar-picker-indicator {
  display: none;
}
登录后复制

最后需要注意的是,日期类型不能被我们将要讨论的inputmode属性覆盖。

为什么我应该关心inputmode?

inputmode属性允许您覆盖输入类型指定的移动键盘,并直接声明显示给用户的键盘类型。当我第一次了解这个属性时,我并没有留下深刻印象——为什么不一开始就使用正确的类型呢?但是,虽然inputmode通常是不必要的,但在一些地方它可以非常有用。我发现inputmode最显著的用例是构建更好的数字输入。

虽然一些HTML5输入类型,如urlemail,很简单,但input type="number"则有所不同。它有一些可访问性问题,以及一个有点尴尬的UI。例如,桌面浏览器(如Chrome)会显示很小的增量箭头,很容易在滚动时意外触发。

所以这是一个需要记住并在以后使用的模式。对于大多数数字输入,不要使用这个:

<input type="number">
登录后复制

…你实际上想要使用这个:

<input type="text" inputmode="decimal">
登录后复制

为什么不使用inputmode="numeric"而不是inputmode="decimal"

numericdecimal属性值在Android上产生相同的键盘。然而,在iOS上,numeric显示一个同时显示数字和标点的键盘,而decimal显示一个专注的数字网格,几乎与tel输入类型完全相同,只是没有多余的电话号码相关选项。这就是为什么它是我对大多数类型数字输入的首选。

Christian Oliff撰写了一篇优秀的文章,专门介绍inputmode属性。

不要忘记autocomplete

比显示正确的移动键盘更重要的是显示有用的自动完成建议。这对于在移动设备上创建更快、更流畅的用户体验大有帮助。

虽然浏览器有显示自动完成字段的启发式方法,但您不能依赖它们,并且仍然应该确保添加正确的autocomplete属性。例如,在iOS Safari中,我发现input type="tel"只有在我显式添加autocomplete="tel"属性时才会显示自动完成选项。

您可能认为您熟悉基本的自动完成选项,例如帮助用户填写信用卡号码或地址表单字段的选项,但我建议您查看它们,以确保您了解所有选项。规范列出了超过50个值!您知道autocomplete="one-time-code"可以使电话验证用户流程非常流畅吗?

关于autocomplete…

我想提一下另一个允许您创建自己的自定义自动完成功能的元素:datalist。虽然它在桌面Chrome和Safari上创建了一种可用的——尽管有点基本——的自动完成体验,但它在iOS上通过在键盘正上方方便的行中显示建议而脱颖而出,系统自动完成功能通常位于该位置。此外,它允许用户在文本和选择式输入之间切换。

另一方面,在Android上,datalist创建了一个更典型的自动完成下拉菜单,键盘上方的区域保留用于系统自己的类型化功能。(在iOS中,为了查看前三名匹配项以外的内容,用户必须通过按下向下箭头图标来触发选择选择器。)

您可以使用此演示来试用datalist

您可以使用我制作的这个工具来探索所有autocomplete选项以及inputtypeinputmode值,以帮助您快速预览移动设备上的各种输入配置。

总结

当我构建表单时,我经常倾向于专注于完善桌面体验,而将移动网络视为事后考虑。但是,虽然确保表单在移动设备上运行良好确实需要一些额外的工作,但这并不一定很困难。希望本文已经表明,通过几个简单的步骤,您可以使移动设备上的表单对用户更方便。

以上是更好的形式输入,以提供更好的移动用户体验的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

使用Redwood.js和Fauna构建以太坊应用 使用Redwood.js和Fauna构建以太坊应用 Mar 28, 2025 am 09:18 AM

随着最近比特币价格超过20k美元的攀升,最近打破了3万美元,我认为值得深入研究创建以太坊

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? 为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? Apr 05, 2025 pm 05:51 PM

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

See all articles