搜索
首页web前端css教程更好的形式输入,以提供更好的移动用户体验

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
Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

轨道力学(或我如何优化CSS KeyFrames动画)轨道力学(或我如何优化CSS KeyFrames动画)May 09, 2025 am 09:57 AM

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSS动画:很难创建它们吗?CSS动画:很难创建它们吗?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用卷轴驱动动画的现代滚动阴影使用卷轴驱动动画的现代滚动阴影May 07, 2025 am 10:34 AM

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

重新访问图像图重新访问图像图May 07, 2025 am 09:40 AM

让我们快速进修。图像地图一直返回到HTML 3.2,首先是服务器端地图,然后使用映射和区域元素通过图像上的单击区域定义了可单击区域。

DEV状态:每个开发人员的调查DEV状态:每个开发人员的调查May 07, 2025 am 09:30 AM

开发委员会调查现已开始参与,并且与以前的调查不同,它涵盖了除法:职业,工作场所,以及健康,爱好等。 

See all articles

热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

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

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),