《大巧不工 web前端设计修炼之道》学习笔记
前端设计如同一个人的着装与外表,站点的设计总是最先吸引人们的眼球。布局是否合理、风格是否简介、配色是否和谐,流程是否通畅,操作是否便捷,这些前端特效都影响着用户对站点的认可度。随着用户体验,可用性,可交互性等越来越多的前端术语的出现,前端设计已经不是简单的HTML、CSS、AJAX等元素的整合了,它更关注交互的流畅性、操作的便利性、流程的合理性、结构的清晰度以及可维护性、页面兼容性以及同后端程序的良好桥接等,应该能够在真正理解WEB应用的需求的基础上放眼全局,把握整个前端的设计方案,因此新的时期赋予了前端开发人员新的使命,业内更需要全能的开发人才。
1、视觉设计
了解web排版艺术以及交互艺术,PS,了解web应用的一些方法:布局,排版,字体,色彩,表单等,为用户提供良好的视觉体验
2、交互设计
强调可用性:在效力、效率、满意度三个维度进行衡量。效力:用户可以完成任务;效率:用户完成任务的快慢;满意度:用户是否很享受完成任务的这个过程。
打开网页,你是否很希望你关注的消息显示在最醒目的位置?你是否喜欢某一操作因为比较简单?你是否希望网页上只出现你最想看到的内容。
总结:用户的3种特性:懒惰,喜新厌旧,有想法。
设计时候遵循以用户为中心的设计原则:UCD(user-centered Design):即以用户为中心进行产品的设计,开发和维护,一切都从用户的感受和需求出发,而不是让用户去适应产品,要做到这一点,就必须要时刻关注用户习惯、视觉感受、交互方式等细节。
工具:axure rp ,主要针对负责定义需求、设计功能、设计界面的专家,包括用户体验设计师UX、交互设计师UI、业务分析师BA、信息架构师IA、可用性专家UE和产品经理PM
原型设计和客户的交流发生了如下改革:
1.可以进行更高效的设计
2.体验动态的原型
3.更清晰地交流想法
制作线框图应该注意:
1.需求:requirements
2.精简:reduction
3.规则:regularity
4.重构:refatoring,理解为在编程领域中为了改善代码的质量而进行的工作。也就是改进。
使用PNG,是一种无损的位图图片压缩格式,与目前常用的GIF图片格式相比,它有更多实用的优点:
1.更高的压缩率
2.更高的颜色深度
3.基于Alpha通道的透明色
色彩:
人类可以感知波长为380nm到780nm的光波,意味着我们可以感知赤橙黄绿青蓝紫的七彩世界。均衡的色彩让人舒心,突兀的色彩让人烦心。比如IBM笔记本的设计黑色为主,再配上一个红点,使整体显得协调而醒目。
色彩三要素:
色相:色彩的首要特征,例如红色,黄色,蓝色,就是颜色属性中的色相。
饱和度:色彩的纯度,颜色混合的次数越多,则纯度越低。设计上:饱和度相似能使设计更具凝聚力。
明度:色彩的亮度。颜色有深浅,明暗的变化。白色的明度值最高,黑色最低。
流行配色:
1.单色系配色:稳重
2.相似色配色:相同色度的颜色
3.互补色配色
4.三色配色
页面内容的优化:
1.降低请求数
1)合并文件
2)CSS Sprites:把所有的背景图像放到一个图片文件中,注意:不能滥用,后期维护困难;若在系统架构中缓存策略做得好,同样可以尽可能低使用这项技术,因为首次加载的时间会变得更长。
3)剔除重复脚本:带来多余的http请求和javascript运算,影响页面性能。
2.减少交互通信道
2.1压缩技术
1)压缩:压缩javascript和css,减少文件大小,节省下载时间
2)优化图像:PS中使用“保存为web格式”来保存切割图片,可以输出适用于web质量的图像。(PNG,JPG,GIF)
其中:gif只有256色,不易表现色彩丰富的图像,小图标,支持小动画;JPG格式压缩比较高,所以适合用于照片类的图像。PNG格式包含了PNG-8及真彩的PNG-24或PNG-32,体积更小,且支持alpha通道,不支持动画。
3)减小cookie体积
2.2:合理利用缓存
1)使用外部javascript和CSS,可以提高页面加载速度,因为外部文件都能在浏览器中产生缓存,而且可以减少html文档的大小。如果把javascript和css内置在html中,则每次请求的时候都会随html文档重新下载,在用户访问站点中的多个页面时,这种方式带来的性能提高更加明显。
2)缓存Ajax
Ajax可以实现前端和后台服务的异步通信,使浏览器不用刷新整个页面就能够获得数据,带来良好体验的同时,能快速得到异步的HTTP响应同样重要,提高Ajax性能的措施最重要的就是:使响应具有可缓存性。
2.3.减少不必要的通信量
1)剔除未用到的脚本和样式。
2)推迟加载内容
3)使用get完成Ajax请求,使用POST方法需要首先发送文件头,然后发送数据。而post,只需要发送一个TCP数据包(除非有很多cookie),但是IE中的URL的最大长度是2K,因此如果发送一个超过2K的数据就不能使用GET了。
4)对于静态内容使用无cookie请求。
3.合理使用“并行”
3.1尽量减少重定向
3.2慎用iframe
3.3样式置于顶部
3.4脚本放到样式后面加载
4.节约系统消耗
4.1避免使用CSS表达式
4.2避免使用滤镜
二 IE及解析CSS的Bug,28个普通Bug、4个布局bug、6个可以绕开的bug.(个人建议:不需要刻意去记忆,遇到bug的时候,根据实际情况灵活应对就好)
《大巧不工 web前端设计修炼之道》学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- ucos实时操作系统学习笔记——任务间通信(消息)
ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...
随机推荐
- c 数组作为返回值注意
static char* Test() { char buf[] ="aa"; printf("%s\n",buf); return buf; } int ma ...
- Java从入门到放弃——03.循环和判断
本文目标 选择结构:if,switch 循环结构:for , foreach ,while,do while 跳出语句:break,continue 1.选择结构 if: if(判断语句){ } s ...
- Nginx入门介绍与安装
Nginx是什么? Nginx是俄罗斯人编写的十分轻量级的HTTP和反向代理服务器.发音:"engine X" Nginx能干什么? (1)Http反向代理 Nginx 支持正则表 ...
- group by 两个或以上条件的分析
首先group by 的简单说明: group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素: (1) 出现在select后面的字段 要 ...
- OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
开发配置 OpenCV的例程中已经带有了人脸检测的例程,位置在:OpenCV\samples\facedetect.cpp文件,OpenCV的安装与这个例子的测试可以参考我之前的博文Linux 下编译 ...
- 关于NSFetchedResultsController的一些用法
如何在iPhone等设备持久保存数据,需要用到Core Data,它能帮你快速而有效率的完成数据储存,Core Data 编程经常用到 NSFetchedResultsController这个类,刚开 ...
- kuangbin专题十六 KMP&&扩展KMP POJ2752 Seek the Name, Seek the Fame
The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the l ...
- springdataRedis连接redis集群
配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...
- flex item的width VS flex-basis
flexbox的子元素flex item的宽度,按照以下规则计算: content>width>flex-basis(limited by max/min-width) flex-basi ...
- 使用Mybatis-plus发生org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
容我慢慢说来,之前是使用springboot+mybatis.我一直采用xml配置文件写sql. 后来采用了mybatis-plus之后,在本地上面测试没有一点问题.一放到服务器就发生这种情况 在本地 ...