【记录:前端提高用户体验】

学习来源:https://segmentfault.com/a/1190000040970567

1.排版优化

左右排版

左边固定,右侧自适应

<div class="g-app-wrapper"><div class="g-sidebar"></div><div class="g-main"></div>
</div>
.g-app-wrapper {display: flex;min-width: 1200px;
}
.g-sidebar {flex-basis: 250px;margin-right: 10px;
}
.g-main {flex-grow: 1;
}

上下排版

页面存在一个 footer(页脚)部分,如果整个页面的内容高度小于视窗的高度,则 footer 固定在视窗底部,如果整个页面的内容高度大于视窗的高度,则 footer 正常流排布(也就是需要滚动到底部才能看到 footer)。

<div class="g-container"><div class="g-real-box">...</div><div class="g-footer"></div>
</div>
.g-container {height: 100vh;display: flex;flex-direction: column;
}.g-footer {margin-top: auto;flex-shrink: 0;height: 30px;background: deeppink;
}

内容、功能展示

文本超出

/**单行
**/
{width: 200px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
}
/**多行
**/
{width: 200px;overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;
}

边界保护

/**也就是在一定宽度内,内容较多的情况会贴边,配合padding即解决
**/
.btn {...min-width: 88px;padding: 0 16px
}

兼容不同场景与异常回退:空数据内容展示

  1. 数据为空
    用户无权限——要告知用户无权限访问的原因和解决方案
    搜索无结果——告知用户搜索无数据的结果,如有必要可推荐相关内容
    筛选无结果——一般直接告知筛选无结果
    页面无数据——文案设计有几个方向:
    告诉用户这里将会存放什么数据
    给用户一个主动创造数据的理由,比如通过话术引起用户心理共鸣
    若页面无数据会给用户造成困惑,则可以说明原因打消用户的困惑
  2. 异常状态
    网络异常——指出当前状态为网络异常,并给出解决方案
    服务器异常——指出当前状态为服务器异常,并给出解决方案
    加载失败——加载失败主要会由网络异常或服务器异常造成
    不同的情况可能对应不同的空数据结果页面,附带不同的操作引导
    举例说明:
    在这里插入图片描述
    在这里插入图片描述

图片优化

  1. 图片异常
    图片的呈现及异常处理
  2. 给图片同时设置高宽
    另外,给 <img> 标签同时写上高宽,可以在图片加载之前提前占住位置,避免图片从未加载状态到渲染完成状态高宽变化引起的重排问题。
ul li img {width: 150px;height: 100px;object-fit: cover;/*使图片内容在保持宽高比的同时填充元素的整个内容框。*/object-position: 50% 100%;
}
  1. 响应式图片
<img src = "photo.png" sizes = “(min-width: 600px) 600px, 300px" srcset = “photo@1x.png 300w,photo@2x.png 600w,photo@3x.png 1200w,
>
  1. 图片加载失败

适当的过渡效果和动画效果

  1. 加载效果 loading
  2. 骨架屏动画
  3. 滚动平滑:使用 scroll-behavior: smooth 让滚动丝滑(吸顶)
  4. 合理使用动画能让页面增色不少,但同时要避免踩入下面的一些坑:(让动画持续时间保持在 300ms 或更短)
    动画没有关联性
    为了动画而动画,没有目的性
    过于缓慢,阻碍交互
    不够明确
  5. 优化手势:不同场景应用不同 cursor
    在这里插入图片描述
  6. 点击区域优化:伪元素扩大点击区域
.btn::before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;
}
  1. 针对一些特定元素,方便用户复制(快速选择优化:user-select: all
    在这里插入图片描述
  2. 选中样式优化:::selection
  3. 添加禁止选择:user-select: none
    举例子:
    在这里插入图片描述
    在这里插入图片描述

尽可能地简化表单

对于没法省去的输入项,尽可能简化用户的输入:
智能预设默认项
输入时提供智能联想
对于选择框,尽可能精简选项信息
使用单选项来代替下拉菜单

及时校验

表单及时校验,而不是用户填完一堆信息,统一提交后才告诉用户填错了:

先探索,后表态

这一点非常有意思,什么叫先探索后表态呢?就是我们不要一上来就强迫用户去做一些事情,例如登录。
想一想一些常用网站的例子:

  1. 类似虎牙、bilibili 等视频网站,可以先蓝光体验,一定观看时间后才会要求登录;
  2. 电商网站,只有到付款的时候,才需要登录。

字体优化

  1. 尽量使用系统默认字体
  2. 兼顾中西:西文在前,中文在后
  3. 兼顾多操作系统
  4. 兼顾旧操作系统:以字体族系列 serif 和 sans-serif 结尾
    举个例子
    天猫:font-family: "PingFang SC",miui,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,sans-serif;
    Github:font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;

保证非鼠标用户体验,合理运用 :focus-visible

button:active {background: #eee;
}
button:focus {/*键盘点击*/outline: 2px solid red;
}
button:focus:not(:focus-visible) {/*鼠标点击*/outline: none;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/481069.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 实验八 应用层相关协议分析

一、实验目的 熟悉CMailServer邮件服务软件和Outlook Express客户端软件的基本配置与使用&#xff1b;分析SMTP及POP3协议报文格式和SMTP及POP3协议的工作过程。 二、实验原理 为了观察到邮件发送的全部过程&#xff0c;需要在本地计算机上配置邮件服务器和客户代理。在这里我…

设计模式 外观模式 门面模式

结构性模式-外观模式 门面模式 适用场景&#xff1a;如果你需要一个指向复杂子系统的直接接口&#xff0c; 且该接口的功能有限&#xff0c; 则可以使用外观模式。 不用关心后面的查询具体操作 /*** 聚合查询接口*/ RestController RequestMapping("/search") Slf…

PKO-LSSVM-Adaboost班翠鸟优化最小二乘支持向量机结合AdaBoost分类模型

PKO-LSSVM-Adaboost班翠鸟优化最小二乘支持向量机结合AdaBoost分类模型 目录 PKO-LSSVM-Adaboost班翠鸟优化最小二乘支持向量机结合AdaBoost分类模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.PKO-LSSVM-Adaboost班翠鸟优化最小二乘支持向量机结合AdaBoost分类模…

【Jenkins】docker 部署 Jenkins 踩坑笔记

文章目录 1. docker pull 超时2. 初始化找不到 initialAdminPassword 1. docker pull 超时 docker pull 命令拉不下来 docker pull jenkins/jenkins:lts-jdk17 Error response from daemon: Get "https://registry-1.docker.io/v2/": 编辑docker配置 sudo mkdir -…

音视频相关的一些基本概念

音视频相关的一些基本概念 文章目录 音视频相关的一些基本概念RTTH264profile & levelI帧 vs IDRMP4 封装格式AAC封装格式TS封装格式Reference RTT TCP中的RTT指的是“往返时延”&#xff08;Round-Trip Time&#xff09;&#xff0c;即从发送方发送数据开始&#xff0c;到…

nVisual可视化资源管理工具

nVisual主要功能 支持自定义层次化的场景结构 与物理世界结构一致&#xff0c;从全国到区域、从室外到室内、从机房到设备。 支持自定义多种空间场景 支持图片、CAD、GIS、3D等多种可视化场景搭建。 丰富的模型库 支持图标、机柜、设备、线缆等多种资源对象创建。 资源可…

Web 表单开发全解析:从基础到高级掌握 HTML 表单设计

文章目录 前言一、什么是 Web 表单?二、表单元素详解总结前言 在现代 Web 开发中,表单 是用户与后端服务交互的重要桥梁。无论是用户登录、注册、搜索,还是提交反馈,表单都无处不在。在本文中,我们将从基础入手,全面解析表单的核心知识点,并通过示例带你轻松掌握表单开…

【LeetCode: 145. 二叉树的后序遍历 + 栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

2024年大热,Access平替升级方案,也适合Excel用户

欢迎各位看官&#xff0c;您来了&#xff0c;就对了&#xff01; 您多半是Access忠实粉丝&#xff0c;至少是excel用户&#xff0c;亦或是WPS用户吧。那就对了&#xff0c;今天的分享肯定对您有用。 本文1100字&#xff0c;阅读时长2分50秒&#xff01; 现实总是不尽人意&am…

【mac】mac自动定时开关机和其他常用命令,管理电源设置的工具pmset

一、操作步骤 1、打开终端 2、pmset 是用于管理电源设置的强大工具&#xff0c;我们将使用这个命令 &#xff08;1&#xff09;查询当前任务 pmset -g sched查看到我当前的设置是 唤醒电源开启在 工作日的每天早上8点半 上班时不用手动开机了 &#xff08;2&#xff09;删…

学习日记_20241126_聚类方法(自组织映射Self-Organizing Maps, SOM)

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

IIC和SPI的时序图

SCL的变化快慢决定了通信速率&#xff0c;当SCL为低电平的时候&#xff0c;无论SDA是1还是0都不识别&#xff1a; ACK应答&#xff1a;当从设备为低电平的时候识别为从设备有应答&#xff1a; 谁接收&#xff0c;谁应答&#xff1a; 起始位和停止位&#xff1a; IIC的时序图&am…

论文笔记-WWW2024-ClickPrompt

论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…

【游资悟道】-作手新一悟道心法

作手新一经典语录节选&#xff1a; 乔帮主传完整版&#xff1a;做股票5年&#xff0c;炼成18式&#xff0c;成为A股低吸大神&#xff01;从小白到大神&#xff0c;散户炒股的六个过程&#xff0c;不看不知道自己水平 围着主线做&#xff0c;多研究龙头&#xff0c;研究涨停&am…

qt QToolButton详解

1、概述 QToolButton是Qt框架中的一个控件&#xff0c;它继承自QAbstractButton。QToolButton通常用于工具栏&#xff08;QToolBar&#xff09;中&#xff0c;提供了一种快速访问命令或选项的方式。与普通的QPushButton按钮相比&#xff0c;QToolButton通常只显示一个图标而不…

【算法day3】链表:增删改查及其应用

题目引用 移除链表元素设计链表翻转链表 链表介绍 链表与数组不同的是&#xff0c;它是以指针串联在一起的分布在内存随机位置上的&#xff0c;而不是像指针一样占用整块的连续空间。因此也不支持通过指针读取。所以在题目里面总是比较抽象&#xff0c;需要通过画图来帮助解题…

【通俗理解】步长和学习率在神经网络中是一回事吗?

【通俗理解】步长和学习率在神经网络中是一回事吗&#xff1f; 【核心结论】 步长&#xff08;Step Size&#xff09;和学习率&#xff08;Learning Rate, LR&#xff09;在神经网络中并不是同一个概念&#xff0c;但它们都关乎模型训练过程中的参数更新。 【通俗解释&#x…

Zookeeper选举算法与提案处理概览

共识算法(Consensus Algorithm) 共识算法即在分布式系统中节点达成共识的算法&#xff0c;提高系统在分布式环境下的容错性。 依据系统对故障组件的容错能力可分为&#xff1a; 崩溃容错协议(Crash Fault Tolerant, CFT) : 无恶意行为&#xff0c;如进程崩溃&#xff0c;只要…

Cesium 当前位置矩阵的获取

Cesium 位置矩阵的获取 在 3D 图形和地理信息系统&#xff08;GIS&#xff09;中&#xff0c;位置矩阵是将地理坐标&#xff08;如经纬度&#xff09;转换为世界坐标系的一种重要工具。Cesium 是一个强大的开源 JavaScript 库&#xff0c;用于创建 3D 地球和地图应用。在 Cesi…

SQL进阶技巧:非等值连接--单向近距离匹配

目录 0 场景描述 1 数据准备 2 问题分析 ​编辑 ​编辑 3 小结 数字化建设通关指南 0 场景描述 表 t_1 和表 t_2 通过 a 和 b 关联时&#xff0c;有相等的取相等的值匹配&#xff0c;不相等时每一 个 a 的值在 b 中找差值最小的来匹。 表 t_1&#xff1a;a 中无重复值…