使用 Element 组件搭建在线学习的课程卡片设计

假如我们要做一个在线课程学习的系统,其中我们需要做的一个功能就是课程信息流的一个展示,以等高卡片列表或者瀑布流的方式呈现。首先我们来罗列下这个卡片内应该包括哪些信息点:

  1. 课程名称

  2. 课程简介

  3. 分类信息

  4. 课程评分等级

  5. 课程文件

  6. 课时

  7. 观看学习人次

  8. 学习进度

这是我们能想到的一些关键信息,考虑到必要性,剔除了一些其它的非必要的信息,需要用户点击进入详情页才能看到。作为一个前端程序员,在没有产品和设计的情况下,如何通过我们日常开发的一些经验,将这八条信息展现在一张卡片上,还要保持信息的层次感和布局的合理性,这个具有一定的挑战,且看我是如何做的吧。

标题和简介

首先这张卡片上最主要的信息就是课程的标题,我们使用稍大而粗的字体来呈现,在标题的下面通常是简介,我们使用正常小点的字体和标题形成反差即可。另外我们将简介的内容控制在一行显示,超出的部门用省略号代替。

2c1684b1186cde565b185adb7ddaf899.png

分类和评分等级

分类作为课程的次要信息,通常作为筛选的条件,我们使用标签的样式,用el-tag来展示,评分等级自然想到 Element 里面的 Rate 评分组件 el-rate

e5ef17406433d6dfbd113debba280ea4.png

课程文件列表

课程文件列表我们摘取文件的名称,文件的类型,另外需要一个观看的按钮,采取横向排列的方式

eba75e07644fa8b1e96d90ad4b69a656.png

另外考虑到多个文件列表带来的卡片高度不统一问题,将默认显示最上面的那个文件,其它的采用折叠伸缩的方式,在卡片的下面增加了双角头图标作为触发器。

7da299aedf85c73bf09f72fc4fcfe6f6.png

课时和观看人次

这两个的信息量比较少,我们采取左右横向排列的方式,观看人数和次数通过图标来区分和简化文字说明

b9a007b962e759237fbba258f0ab3741.png

学习进度

学习进度一开始我很犹豫不知道该如何表达?因为如果直接用百分比的数字,该如何放?放在哪里?独立一行显示过于冗余。如果使用控件自然是进度条 el-progress 显示,那么如何放是一个问题,要显得不那么突兀。为了有效利用卡片的空间,不至于让太多的内容导致卡片过高,影响信息流的排布。采用绝对定位的方式,将进度条细化贴近卡片的底部边框。

为了精确的显示进度的详细值,利用了 el-tooltip 文字提示组件。

6c3e59cfd69141df9f23fa71f8c77a88.png

前端程序员是最接近用户的,如何使产品更美观和易用通常是我们要不断考虑的问题。同时前端也是和产品、设计师接触最多的,受到他们的耳濡目染,形成我们自己的一套独有的审美和产品思维,为什么说是独有的?因为我们需要将它们消化吸收,然后通过技术手段来进行实现。

随着市面上的UI框架越来越多,我们已经不用一点一滴地去考虑界面上的每个元素的样式和它们的交互方式。大厂已经利用它们过剩的设计资源帮我们实现了粗粒度的UI实现。我们只需要像搭积木的方式来组合各种组件实现我们的最终的界面。但最终搭建出来的效果也还是需要我们具备一定的设计能力和审美能力。这点我们需要从平时的工作中多用点心去细细揣摩和思考。多利用业务的项目,在没有产品和设计师的配合下,独立地去完成一个项目中去锻炼。

- END -

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

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

相关文章

12个很棒的Spring数据教程来启动您的数据项目

Spring Data的任务是为数据访问提供一个熟悉且一致的,基于Spring的编程模型,同时仍保留基础数据存储的特​​殊特征。 它使使用数据访问技术,关系和非关系数据库,map-reduce框架以及基于云的数据服务变得容易。 这是一个总括项目…

python多线程编程(3): 使用互斥锁同步线程

问题的提出 上一节的例子中,每个线程互相独立,相互之间没有任何关系。现在假设这样一个例子:有一个全局的计数num,每个线程获取这个全局的计数,根据num进行一些处理,然后将num加1。很容易写出这样的代码&am…

如何防止水印被恶意删除或者隐藏?

继上篇 Vue3 实现网页背景水印功能 我们了解了常见的网页水印功能是如何实现的,懂原理的都知道水印是通过在网页中添加代码绘制 DOM 元素覆盖在原有的网页上而来的,一旦你打开浏览器中的元素审查,可以通过删除元素或者在元素的样式上操作属性…

jmc线程转储_如何分析线程转储– IBM VM

jmc线程转储本文是我们的线程转储分析系列的第4部分,它将为您提供什么是IBM VM的JVM线程转储以及您将找到的不同线程和数据点的概述。 您将看到和学习​​到,IBM VM Thread Dump格式是不同的,但是提供了更多现成的故障排除数据。 在这一点上&…

Java 8:使用交替接口公开的类型安全地图生成器

动态展示您的课程 当我是Java新手时,我记得当时想过应该有一种方法可以删除或隐藏我不想公开的类中的方法。 就像用private方法或类似方法覆盖public方法一样(哪种情况是不可能的,也不应该是不可能的)。 显然,今天&…

nodejs面试题

1、为什么用Nodejs,它有哪些缺点? 事件驱动,通过闭包很容易实现客户端的生命活期。不用担心多线程,锁,并行计算的问题V8引擎速度非常快对于游戏来说,写一遍游戏逻辑代码,前端后端通用当然Nodejs也有一些缺点…

sts-bundle的使用_使用WS-Trust / STS采样器扩展JMeter

sts-bundle的使用JMeter没有对WS-Security或WS-Trust的任何内置支持,这使我为JMeter开发了此STS采样器–可以在负载测试STS时使任何人的生活变得更好。 首先,您需要拥有Apache JMeter发行版。 我正在使用v2.7。 然后,您可以从此处下载sts.sam…

001_jdk配置

配置JAVA_HOME,CLASSPATH,PATH 其中JAVA_HOME必须的 JAVA_HOMEE:\java\jdk1.8.0_77 CLASSPATH(告诉java程序运行时,你的类或者类库在哪里) .; E:\java\jdk1.8.0_77\lib\dt.jar;E:\java\jdk1.8.0_77\lib\tools.jar;E:\java\jdk1.8.0_77\jre\lib\rt.jar 改成变量 .;%J…

python -- join()

python -- join()pythonjoinos月似当时,人似当时否?总 在 python 中,一共有两个 join 方法,一个是 str.join(),另一个是 os.path.join() ,这里只了解前一种 str.join(iterable) 官方文档 Return a string which is the…

Spark数据倾斜解决方案(转)

本文转发自技术世界,原文链接 http://www.jasongj.com/spark/skew/ Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势 发表于 2017-02-28 | 更新于 2017-10-17 | 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解…

JavaParser入门:以编程方式分析Java代码

我最喜欢的事情之一是解析代码并对其执行自动操作。 因此,我开始为JavaParser做出贡献,并创建了两个相关项目: java-symbol-solver和Effectivejava 。 作为JavaParser的贡献者,我反复阅读了一些非常类似的问题,这些问…

GoldenGate Logdump基本使用

Logdump是GoldenGate复制软件中附带的一个工具软件,在OGG的目录下可以找到。这个工具主要用于分析OGG生成的队列文件,查找记录、统计队列文件中的数据等。 在OGG安装目录下执行logdump.exe or ./logdump即可进入命令行。 开始查找记录之前,先…

.bam.bai的意义_业务活动监视器(BAM)2.0带来的革命

.bam.bai的意义生产兼具精益和企业价值的中间件是一项艰巨的工作。 它要么不存在,要么需要创新的思维(很多),并且需要在实现中反复进行。 业务风险很大,但是如果您做对了,它就会使您领先于其他任何公司。 这…

数据结构和算法之排序五:选择排序

我们上一篇谈到了冒泡排序,其实我也说了,这两个排序方式何其相似,如果掌握了冒泡排序再来进行选择排序的理解我觉得完全没有太大的问题。那么什么叫做选择排序呢?我们可以理解为矮子里面挑高个,比如说呀有一个富翁来到…

Visual Studio Code使用问题

1、打开vscode黑屏 右击vscode快捷方式–>属性–>兼容性—>兼容模式打钩 重启vscode就可以了。 2、vscode终端没有显示路径,不能输入 显示如下图 则关闭VS Code ,右键单击VS Code 图标,选择属性->兼容性,取消勾选 已兼容模式运…

Java社区调查结果:74%的开发人员希望减少详细程度

一个新的JDK增强建议(JEP)在Java社区中风起云涌:JEP286。该建议建议在Java的未来版本中引入局部变量类型推断,以简化Java应用程序的编写。 在下面的文章中,我们将解释它的含义以及它将如何影响您的代码。 新帖&#…

coherence安装_Oracle Coherence:分布式数据管理

coherence安装本文介绍如何使用Oracle Coherence提供分布式(分区)数据管理。 在下面的示例应用程序中,创建了一个名为OTV的新集群,并且在该集群的两个成员之间分配了一个名为user-map的缓存对象。 二手技术: JDK 1.6.…

JavaFX技巧来节省内存! 属性和可观察物的阴影场

在 JavaFX的世界中, Properties API允许UI开发人员将值绑定到UI控件。 这种功能非常容易,但是当对象模型经常使用属性时,应用程序可能会很快耗尽内存。 我通常会编写两个单独的对象,例如pojo类和表示模型对象。 此技术通常在基于S…

如何在Hibernate Search 5.5.2 / Apache Lucene 5.4.x中处理停用词?

停用词,例如[“ a”,“ an”,“ and”,“ are”,“ as”,“ at”,“ be”,“ but”,“ by”,“ for”,“ if”,“在”,“成…

Java----前端验证之验证码额实现

验证码是常用的登录验证方式之一,最大的作用就是保证安全,验证码的生成在java中实现的方式有很多种,比如后台生成传输到前端页面,在前台直接生成进行验证,下面写一个最简单实现验证码验证登录的例子. 生成验证码: 验证码验证逻辑: From表单登录: 没错,就这么的简单.在scripts生…