Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >前端如何提高用户体验:增强可点击区域的大小

前端如何提高用户体验:增强可点击区域的大小

作者头像
前端小智@大迁世界
发布于 2020-07-08 02:56:46
发布于 2020-07-08 02:56:46
5.3K00
代码可运行
举报
文章被收录于专栏:终身学习者终身学习者
运行总次数:0
代码可运行

作者:Ahmad Shadded 译者:前端小智 来源:css-tricks

你是否曾经试着点击或点击一个元素(例如:按钮、链接),并且注意到只有单击该元素的特定区域,它才会响应?

必生这种情况是因为可点击区域未应用于整个元素。 为了更加清楚,请参见下图,左图可点击区别(圈红部分)明显比右图的小很多,所以右图的实现用户体验会更好。

对于本文,会介绍一些事例,并通过事例演示如何增加可点击区别,提高用户体验。

WCAG准则

WCAG全称Web Content Accessibility Guidelines 网页内容无障碍浏览准则,简单的说就是为了方便残障人士(包括低视患者,盲人,聋人,学习障碍,行动不便,认知障碍....)访问Web内容而制定的相关标准,可以使网站更加人性化。

举个例子,在WCAG准则2.3.2中规定:网页不包含任何闪光超过3次/秒的内容。

用户应该能够使用台式机/笔记本电脑上的键盘以及移动设备或平板电脑上的触摸屏来操作输入。 不要在移动设备屏幕上将按钮设置得太小,以免按下正确的按钮。 触摸目标的最小尺寸最好至少为44 x 44像素。

费兹法则

费兹法则(Fitts law)是一个人机互动以及人体工程学中人类活动的模型;它预测了快速移动到目标区域所需的时间是目标区域的距离和目标区域大小的函数。

在下面的图中,我模拟了两个按钮的不同情况。在左侧,按钮更小,更远,用户需要更多的时间与它互动。在右侧,按钮大小更大,更接近于它的同级输入元素,这将使交互更容易、更快。

接着,我们再来看看一些更加真实例子。注意:记住WCAG准则费兹法则 的概念。

按钮

在需要时使用实际真实<button>(包含可点击区域)非常重要。 下面的示例来自我使用的在线银行系统:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="navig next" onclick="validateLogin()">Next</div>

这是上面按钮的HTML的GIF图像。我把鼠标悬停在按钮上,光标仍然是一个指针,这很好。不过,我也可以选择文本和悬停时,有一个文本光标!如果使用了正确的元素,就不会发生这种情况。

当使用HTML <button>元素时,会获得下面效果:

  • 可通过鼠标,键盘或触摸访问
  • 可以通过键盘选中
  • 有对应的 JavaScript 方法

有些元素,我们需要添加 padding,原因有二:

  • 让它更美观
  • 让它变大,这样更容易被注意到

链接

之前在做导航的时候,犯了一个错误,应该是给 a 标签添加 padding 而不是 li:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<nav>
  <ul>
    <li class="nav-item"><a href="#">Home</a></li>
    <li class="nav-item"><nav href="#">Products</nav></li>
    <li class="nav-item"><a href="#">Store</a></li>
    <li class="nav-item"><a href="#">Team</a></li>
  </ul>
</nav>

// css

.nav-item {
  padding: 12px 16px;
}

基于上面的HTML和CSS,可点击的区域将只是文本,如下图所示:

正确的方法是在a 标签本身上添加padding。 请注意,默认情况下,padding 需要块元素才有效,而 a 标签是行内元素,所以可以给 a 标签设置blockinline-elementflex

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.nav-item a {
  display: block;
  padding: 12px 16px;
}

添加了上面的样式后,可点击的效果如下:

面包屑导航

假设可点击区域如下所示:

这种体验不是很好,鼠标或手指指向屏幕上如此小的目标会比较难。 在下图中,它的可点击区域更大并且更易于交互。

事例源码:https://codepen.io/shadeed/pe...

复选框和单选按钮

当存在复选框或单选按钮元素时,我希望可以单击它或关联的标签来激活/禁用它。

从用户体验的角度来看,这是难以访问和糟糕的。在 HTML 中,可以使用for属性将标签与输入框绑定在一起。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="checkbox" id="option1">
<label for="option1">Option 1</label>

或者可以将输入框放置在标签内:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<label for="option1">
    Option 1
    <input type="checkbox" id="option1">
</label>

然后,在<label>元素上添加padding,以使可点击区域变大。 这样,问题得以解决,整个复选框或单选按钮都是可单击的,如下图所

侧边栏

对于带有类别的页面,有时我会注意到列表链接没有扩展到其父页面的整个宽度。 也就是说,可点击区域仅在文本上,如下图所示:

解决方法:

  • 删除<li>元素的 padding,并将其移动到<a>元素
  • 通过添加display: block使a标签的宽度等于其父链接的宽度。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.nav-item a {
    /*Other styles*/
    padding: 12px 16px;
    display: block;
}

添加后,如下所示:

真实案例

在最近的Twitter更新中,导航设计在可点击区域大小方面存在问题。 最初,它仅与文本相关,如下面的屏幕截图所示,但他们在收到反馈后将其修复。

章节标题

在某些情况下,需要在章节标题的远端添加“查看更多”按钮或箭头。 在下面的示例中,我将箭头放置在假圆中,以便可以正确地使箭头居中。

通常情况下,箭头周围的间距可以使用paddingwidthheight

使用伪元素来增加可点击区域

仅通过改变元素的宽度和高度或使用padding,并不总是能够使可点击区域变大,这时候就需要伪元素救场了。

这个想法是,伪元素属于其父元素,因此当我们创建具有特定宽度和高度的伪元素时,它将充当其父元素的单击/触摸/悬停区域。

在下图中,我在菜单按钮中添加了:after伪元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.menu-2:after {
  content: "";
  position: absolute;
  left: 55px;
  top: 0;
  width: 50px;
  height: 50px;
  background: #e83474;
  /*Other styles*/
}

原文:https://css-tricks.com/enhanc...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习之(四)特征工程以及特征选择的工程方法
原文链接:http://www.uml.org.cn/ai/201811022.asp
周小董
2019/08/18
1.2K0
【转载】机器学习之特征工程(有删改)
本文是一篇关于特征工程的总结类文章,如有不足之处或理解有偏差的地方,还望大家多多指点。
marsggbo
2019/02/23
8340
【转载】机器学习之特征工程(有删改)
特征工程
特征工程本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。一般来说包含以下几个方面的内容:
爱编程的小明
2022/09/06
1.1K0
特征工程
使用sklearn做单机特征工程
出自博客园 链接:http://www.cnblogs.com/jasonfreak/p/5448385.html 1 特征工程是什么? 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,
智能算法
2018/04/02
9720
使用sklearn做单机特征工程
独家 | 一文读懂特征工程
本文结构 1. 概述 机器学习被广泛定义为“利用经验来改善计算机系统的自身性能”。事实上,“经验”在计算机中主要是以数据的形式存在的,因此数据是机器学习的前提和基础。数据来源多种多样,它可以是结构数据,如数值型、分类型,也可以是非结构数据,如文本、语音、图片、视频。对于所有机器学习模型,这些原始数据必须以特征的形式加入到机器学习模型当中,并进行一定的提取和筛选工作。所谓特征提取,就是逐条将原始数据转化为特征向量的形式,此过程涉及数据特征的量化表示;而特征筛选是在已提取特征的基础上,进一步对高维度和
数据派THU
2018/01/29
1.2K0
独家 | 一文读懂特征工程
特征工程怎么做
在工业应用中,feature 比算法重要,数据比 feature 重要,有很多 kaggle 参赛者分享经验时也是说 feature engineering 很重要,今天来写一写特征工程相关的。 本文
杨熹
2018/04/02
1.9K0
特征工程怎么做
特征工程全过程
  有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:
机器学习AI算法工程
2019/10/29
1.5K0
特征工程全过程
使用sklearn做特征工程
目录 1 特征工程是什么? 2 数据预处理   2.1 无量纲化     2.1.1 标准化     2.1.2 区间缩放法     2.1.3 标准化与归一化的区别   2.2 对定量特征二值化   2.3 对定性特征哑编码   2.4 缺失值计算   2.5 数据变换   2.6 回顾 3 特征选择   3.1 Filter     3.1.1 方差选择法     3.1.2 相关系数法     3.1.3 卡方检验     3.1.4 互信息法   3.2 Wrapper     3.2.1 递归特征
机器学习AI算法工程
2018/03/14
2.3K0
使用sklearn做特征工程
特征工程完全总结
目录 1 特征工程是什么? 2 数据预处理   2.1 无量纲化     2.1.1 标准化     2.1.2 区间缩放法     2.1.3 标准化与归一化的区别   2.2 对定量特征二值化   2.3 对定性特征哑编码   2.4 缺失值计算   2.5 数据变换 3 特征选择   3.1 Filter     3.1.1 方差选择法     3.1.2 相关系数法     3.1.3 卡方检验     3.1.4 互信息法   3.2 Wrapper     3.2.1 递归特征消除法   3.3
用户1332428
2018/03/09
1.5K0
特征工程完全总结
【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
文章链接:https://cloud.tencent.com/developer/article/2466288
小馒头学Python
2024/11/18
5300
【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
用机器学习神器sklearn做特征工程!
有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。
郭好奇同学
2022/04/12
1.4K0
用机器学习神器sklearn做特征工程!
降维和特征选择的对比介绍
在machine learning中,特征降维和特征选择是两个常见的概念,在应用machine learning来解决问题的论文中经常会出现。特征降维和特征选择的目的都是使数据的维数降低,使数据维度降小。但实际上两者的区别是很大,他们的本质是完全不同的。
deephub
2023/02/01
8680
TensorFlow系列专题(二):机器学习基础
数据预处理的方式较多,针对不同类型的数据,预处理的方式和内容也不尽相同,这里我们简单介绍几种较为常用的方式:
磐创AI
2018/11/30
7420
TensorFlow系列专题(二):机器学习基础
特征工程
特征工程和数据清洗转换是比赛中至关重要的一块,因为数据和特征决定了机器学习的上限,而算法和模型只是逼近这个上限而已,所以特征工程的好坏往往决定着最后的结果
mathor
2020/03/31
5310
特征工程
《深度剖析:特征工程—机器学习的隐秘基石》
在机器学习的宏大版图中,特征工程宛如一座隐藏在幕后却又至关重要的基石。它默默发挥着作用,将原始数据雕琢成模型能够有效学习和理解的形态,深刻影响着机器学习模型的性能与表现。
程序员阿伟
2025/02/28
1870
【智能】自然语言处理概述
1 什么是文本挖掘? 文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现。文本挖掘的准备工作由文本收集、文本分析和特征修剪三个步骤组成。目前研究和应用最多的几种文本挖掘技术有:文档聚类、文档分类和摘要抽取。 2 什么是自然语言处理? 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究人与计算机之间用自然语言进行有效通信的理论和方法。融语言学、计算机科学、数学等于一体的科学。 自然语言处理原理:形式化描述-数学模型算法化-程序化-实用化 语音的自动合成与识别、机器翻译、自然语言理解、
陆勤_数据人网
2018/04/18
1.6K0
【智能】自然语言处理概述
特征工程7种常用方法
向AI转型的程序员都关注了这个号👇👇👇 机器学习AI算法工程   公众号:datayx 一、特征工程 简单说,特征工程是能够将数据像艺术一样展现的技术。因为好的特征工程很好的混合了专业领域知识、直觉和基本的数学能力; 本质上说,呈现给算法的数据应该能拥有基本数据的相关结构或属性 。当你做特征工程时,其实是将数据属性转换为数据特征的过程,属性代表了数据的所有维度,在数据建模时,如果对原始数据的所有属性进行学习,并不能很好的找到数据的潜在趋势,而通过特征工程对你的数据进行预处理的话,你的算法模型能够减少受到噪声
机器学习AI算法工程
2022/09/20
2.5K0
特征工程7种常用方法
专题 | 特征工程简介 (文末免费送AI币)
作者 | AI小昕 编辑 | 磐石 出品 | 磐创AI技术团队 【磐创AI导读】:本文主要介绍特征工程中的数据预处理、特征选择、降维等环节。欢迎大家点击上方蓝字关注我们的公众号:磐创AI。 特征工程是
磐创AI
2018/07/03
6200
机器学习特征工程和优化方法
特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数 据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
大数据技术与机器学习
2019/11/20
1.7K0
机器学习:基于scikit-learn进行特征工程
今天给大家分享如何基于机器学习建模全能包scikit-learn进行特征工程feature-engineering。
皮大大
2024/07/22
2700
相关推荐
机器学习之(四)特征工程以及特征选择的工程方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验