首页

腾讯游戏标志设计字标篇

资深UI设计者

符号所承载的内容是从其对象体内容中提取极其具识别潜质的内容直接或间接延伸出的。

符号所承载的内容是从其对象体内容中提取极其具识别潜质的内容直接或间接延伸出的。从视觉,功能,精神等层面一步步推导设计的逻辑与标准,向公众传播一种正面的社会启迪意义,实现一种更为合理的生存方式。



前言:


TGideas与DesignStudio两个设计团队以及品牌团队在长达八个月的时间里一起尝试品牌体系系统梳理,品牌设计定位以及搭建整体的VI,曾尝试过很多新的创意点,不同的方向出了很多有趣的设计,最终慢慢的确定了一个品牌概念关键词:发现。国际化品牌概念词:spark。关于这个概念的推导简图过程请看下图。由于此片文章 主要是针对标志字标部分 这个板块去做的一些细节思考,在这里就不对于概念与品牌本身做过多阐述。


一:关于图形设计

图形设计前期版本非常多,我们做了很多尝试,选择了此版本设计图形,主要理由是:标志由一个中心放射的火花构成,标志中所有光线由中心向外放射,形成多层次的结构设计,代表腾讯游戏丰富的品类和产品,广泛的受众,以及对创造出风多元价值的探索。标志的图形概念是内部团队与英国DesignStudio团队一同探讨出来的。英国DesignStudio团队作为国际知名设计公司在创意阶段给予非常有价值的探索与合作。下图moodboard整理来源于jackyyyu.





针对确定好的品牌概念,需要对图形设计进行不同的尝试,我们内外一致出了数多方案,最终把方案锁定在了下图四个范围中。





标志图形结构网格中心是以黄金分割点作为重心的,散发出来的火花严格控制在了网格与黄金分割点的周围,在比例关系中是非常规范优美的弧形组成,但是由于多处交错处有很多没有对齐的细节,我们在把控整体重心的情况下对交错重叠点做了调试与优化,使得其图形在严谨比例下显得更佳有层次。


二:中文字标设计

思考:腾讯游戏圆润体是受腾讯体启发制作的,字体设计里的汉字骨架与腾讯体是共通的,这与腾讯体传达的部分理念相一致。沉稳的重心,均匀的字白,传达出勇往直前的领导力与前瞻性。这款字体同样有腾讯体沉稳的重心,而且相比之下更加放松的中宫与较为纤细的笔划,而且保持了腾讯体向右倾斜8度的特色。腾讯体大多为科技感的直线,硬朗的切角设计,传达了前瞻科技感与驱动力的字体氛围。而圆润体保持整体的字架同时加入更多曲线设计,为的是能在保持前瞻与沉稳特质的基础上更突出的表现快乐与探索的感受.

关于“戏”字的倾斜不稳问题解决方案思考:

“戏”字的字体结构比前面3个字体都要特殊,特别是字形上面左右结构,字白左大右小,单从字的重心来看本就有些偏右倒,这是“戏”的字形本身决定的,再者从“腾讯游戏”这四个字体来看,前三个字体结构都属于很平稳的字形,“戏”字就显得更加“薄”,整体会有不平衡的感受。以上是“戏”看上去“倒”的感受原因的分析。那解决办法这里是从以下几点出发:1.“戏”字在左偏旁扩大了字白部分,让文字相比之下更加饱满,因为这里没办法对笔划进行加粗,尝试过效果并不明显。2.“戏”字右边的竖弯钩部分是进行了拉长延伸的,特别在尾巴部分,也是希望对比腾讯体更加“站稳”,倾斜度来看更偏90度,希望的是不要过于倾斜导致重心偏右,毕竟这个字体是斜体,视觉感受要控制在斜体基础上的“稳”。3.文字在折笔处都有增加弹性设计,因为本质上它和腾讯体的折笔处是有很大不同的,它更强调的是“温度”,“戏”的折角处会更加柔韧,没有在接近字面框的下面部分做很“实”的落笔,这里我觉得更加有圆润体的特色。


圆润体在遵循与承袭原有的视觉资产的前提下进行了如下设计优化:

1.对字形进行调整,将字体中宫放松,使得整体更加放松协调,更具亲切感。
2.将字体笔划粗细调整更细,使得字廓在游戏场景中或移动端缩小的情况下识别性更强。
3.文字折笔处加入更多曲线设计,为了是能在保持前瞻与沉稳特质的基础上更突出的表现快乐与探索的感受。




三:英文文字标设计

选一款好字体,直接使用,一款好的字体,原本就是为了让使用者在正常排版下就能达到统一和谐的效果而制作,尽量活用好素材本身的价值。几款推荐的几何型体无衬线体:futura,avant gaede gothic,avenir next Frutiger.其中Frutiger是一款划时代的字体,“以稳重,舒适”的特性出名。我之所以选用这款字体是因为Frutiger设计温和及清晰的特点,协助品牌在全世界范围内保持一致。Neue Frutiger延续了Adrian Frutiger 设计的同名字体Frutiger,这套字体是他在70年代中期为巴黎附近的戴高乐机场设计的。易读性和可识别性在整套字体中贯穿始终,Monotype 的字体设计总监小林章先生将其描述为具有“某种有机的且友好的意味”,它可广泛用于从打印到屏幕的各种媒介。futura是一款现代的,极具几何特征的字体,设计表层突出的是“合理性,简洁性”。avant gaede gothic是20世纪70年代在美国最具有平面设计创意的字体,“厚重,有趣”是他的主要特征。下图为挑选出来的比较经典的西文字体。




在此之前,DesignStudio团队给我们带来了一款制作的英文字体设计,如下图:


这款英文字体面临的问题:

英文字体没有与中文进行搭配设计,为单独设计,在中英文混排上面效果需要与中文对齐。以中文为主,英文为辅,从字体的粗细与字形上需要优化的更整体,目前英文对比中文比较粗,由于很多个性化的倒角设计,在缩小后字形识别性会变弱一些,主次上更希望突出中文,搭配更简洁的英文。


问题:如何解决在继承英国DesignStudio团队英文字体的基础上去更加符合中国的排版习惯与使用习惯?

最终在确定好英文字标设计后,我们把中英文进行了搭配,得到了最终版本的英文字标,如上图最后版本,并根据这套字标的字形特征请供应商制作了一套新的英文字库。

新的腾讯游戏字库的设计也给腾讯游戏新品牌带来更多元化的使用场景,让品牌更佳具有说服力。

如下图。







小结:优秀的品牌拥有一个强有力的品牌符号,并且围绕这个符号展开符合其品牌定位的视觉识别系统为传播框架。当这个系统通过品牌传播传递给消费者的时候,其显著地激发了消费者的认知,使消费者将所有品牌消费体验和感知记忆都归结到这个符号上。符号所承载的内容是从其对象体内容中提取极其具识别潜质的内容直接或间接延伸出的。从视觉,功能,精神等层面一步步推导设计的逻辑与标准,向公众传播一种正面的社会启迪意义,实现一种更为合理的生存方式。

文章来源:站酷

js的异常捕获机制的生动讲解

seo达人

在这里主要是跟大家介绍一下在js中如何使用异常捕获机制,包括try,catch,finally与我们主动抛出异常throw的用法
使用异常捕获机制可以让我们在项目中对一些可能出错的地方作出一些预防措施,让我们能够更加快速精准的找出代码错误,
也能够让我们后面的代码不受前面的错误影响继续执行,话不多说,看代码,图解在下方。

<script>
    console.log(1)

    try {
      console.log(2)
      console.log(num) // 出错,那么try块级语句出错地方后面的代码都不会执行
      console.log(3)
    } catch (e) { // e就是try语句中出错的错误信息,我们可以在这里捕获到并做处理
      console.log(e)
    } finally { // finally里面的代码不管前面是否出错都会执行
      console.log(4)
    }

    console.log(5) // try里面出错并不会影响外层代码的执行

    console.log('-------------------------------------------------')

    function test() {
      var a = true
      if (a) {
        throw '出错啦!!' // throw是我们主动抛出异常,后面可跟字符串或者对象
      }
      console.log(6) // 这里的代码在上面抛出异常之后就不会被执行
    }

    try {
      console.log(7)
      test()
      console.log(8)
    } catch (e) {
      console.log(e) // 上面我们主动抛出错误,所以e就相当于我们抛出错误的内容
    }
    console.log(9)
  </script>


看看你的手机键盘,隐藏了多少设计细节?

资深UI设计者

手机键盘,可以干嘛??


无疑是打字、信息输入,也是用户体验产品最常用、最直接的方式之一。


我们每天都在使用键盘,但是偶尔会遇到一些体验上的不足,如键盘挡住操作入口、很难控制键盘光标的移动...


所以今天想梳理一下手机键盘里的要点、细节点,日后遇到有涉及到键盘输入的地方,可以有更多的思路去解决各种产品/设计问题。



目录:

一、键盘与命令类型

二、设计要点

三、有意思的键盘交互





Part1:键盘与命令类型

先简单说下键盘与命令词类型(想看设计要点,可直接滑到Part2部分),对键盘有个全局的认识,方便在工作中知道每种键盘的用途


1.键盘类型

从技术角度上看,市面上所有的键盘产品可分为:系统键盘(手机默认键盘)、第三方键盘(功能丰富,输入效率高)、自定义键盘(安全性高,有一定开发成本)。



从可提供类型看上,iOS一共提供了12种的键盘类型:


其中8种是常用的:默认(中英)键盘、邮件键盘、字符与数字键盘、带小数点的数字键盘、存数字键盘、拨号键盘、网址键盘、外国产品键盘(如Twitter、Instagram)



剩下的4种则是这些,但我实在看不出这些键盘和默认(中英)键盘有何区别,因此将这4种独立展示:



而Android系统键盘只提供了9种,但大部分和iOS的键盘类型一样。因此需要我们在交互稿中,标明对应的键盘类型



2.命令词类型

而键盘命令词的类型上,iOS提供的也很丰富,多达11种。



而安卓则少些,但基本能覆盖所有场景了。




3.H5里的插件 


iOS自带有‘上一项’和‘下一项’的键盘插件,因而在一些H5表单中可以灵活选择上/下一个文本框或选择器。

而Android在H5是没有’下一项‘命令的(无论第三方还是系统键盘)。因而在H5页面中的表单中,往往需要提供一个外部插件来辅助用户输入。




Part2:设计要点

盘点了键盘与命令词类型后,接下来梳理一些设计要点,避免今后工作中踩坑,完善产品设计细节。



1.‘删除‘不完全是‘清除’

键盘上的‘删除’按钮可以逐一删除输入结果,界面上的‘清除’icon也能做到。但二者间在特定的技术环境下,会存在交互上的差异。



一个典型的例子就是:UC浏览器的翻译器。

在 已有翻译结果 的情况下,点击键盘上的‘删除’按钮,只能删除文本框里的内容,对底下的翻译结果并无影响。



而点击界面上的‘清空’icon,能同时清除掉 文本框内容和翻译结果。



原因在于:

在当前的技术环境下,UC浏览器还无法里做到‘实时翻译’(边输入内容,边显示翻译结果),因此无论用户在文本框里编辑了什么内容,技术上都很难检测到文本框里的信息,所以不会影响到底下的翻译结果。

而’清空‘icon则不同,它就相当于界面上的一个功能入口,点击它完全可以检测/控制到其他内容状态(文本框内容和翻译结果),所以可以做出对这2者的‘清除’指令。


但若能做到‘实时翻译’,就可以同时检测、删除 文本框内容和翻译结果了。就如谷歌浏览器的翻译器:




2.键盘可以附带功能入口

产品设计时总有一个固有思维:一定要将某个按钮/功能/操作放在某个界面上因此有时会受到‘视觉布局怪异功能关系不搭’等的困惑。

遇到这种情况时,可以试着将功能和键盘绑定在一起,依附在键盘上才出现。让功能和内容间的关系更加独立开来,释放页面压力。



但是有个提前:这些功能/内容尽量是和用户的输入行为有关联的,不要把所有功能都添加上去。



3.注意键盘的遮盖区域

在一些表单设计时,应该注意键盘弹出后对界面布局、用户操作的影响


一些重要信息、操作按钮要尽量放在键盘的遮盖区外,避免用户‘要收起键盘才能操作/看到’的尴尬局面。



包括手机横屏时的走查,也要注意一下键盘高度对界面的影响。



4.‘隐私数据’尽量用随机键盘

对于个人财产、身份信息等敏感数据的输入时,用户对该类型信息的重视程度,明显高于其他类型的信息输入。

所以产品设计时可优先考虑 ‘自定义随机键盘’(指键盘上的字母/数字等随机排布),以保护用户财务和隐私安全。

如中国银行的支付密码:



腾讯各大楼下的访客机也是采用随机键盘,以保护所有访客的预约隐私。




5.命令按钮位置的不同

在手机键盘里输入文字时,iOS由于系统的限制,对文字的发送指令只能在键盘上来完成,因此iOS用户的交互操作都全部集中在键盘右下角。



而Android端就灵活很多,不仅可以在键盘上执行发送指令,也可以在输入栏/搜索栏周边新增操作入口。



即使大部分产品都这么做,但还是有部分产品做到了‘两端对齐’,如网易邮箱:



更多Android与iOS的交互差异,可看这里



6.预判用户的行为

用户行为的预判,指的是当我们明确知道用户目的、能推测出用户下一步操作时,可以做一些减少用户操作步骤、提升输入效率的设计,如:


·自动调起键盘

在一些表单输入的流程中,当能预知到用户的下一步操作时,完全可以帮助用户自动调起键盘的(尤其是需要跳转页面才能输入的表单)。




·调起对应的键盘类型

这个点无需多讲,当明确知道表单输入所需的文本类型中文/英文/数字/邮箱/网址等,需调起相对应的键盘类型。




·短信验证码的调取

在短信验证码的表单设计时,可以利用系统的‘短信权限’自动输入验证码,减少用户的操作步骤。

iOS:只能将验证码调取在键盘上,点击自动复制粘贴。
Android:可以将验证码自动粘贴在文本框里,且自动跳转页面。



前提是:产品已获得手机的短信权限,否则很难调取到验证码信息。


·更准确的命令词

键盘上的命令词,在交互上的固定认知是:点了就能看到想要的内容。


就如微信的搜索,用户的预期和键盘上的命令词完全是一致的,用户能知道点击会出现什么样的内容。



但在视觉上,不恰当的命令词容易让人产生歧义、误解,甚至干扰接下来的操作。


如网易邮箱登录的第一个表单,键盘上对应了‘下一步’命令词,用户知道可以快速切换到第二个表单。

但在第二个表单时,还是‘下一步’命令词 是不是会让人费解??



毕竟该处是表单输入的交互终点,用‘前往(Go)、登录(Join)’这些命令词是不是更准确些呢?


因此日常中,我们需要对命令词有更深的理解,方便给予用户更准确的引导。






Part3:有意思的交互

最后盘点一下,在一些第三方和系统自带的键盘上,都有哪些有意思的交互细节?启发一下产品设计时的脑洞。



1.更准确地移动光标

在输入过程中,想将’光标‘移动在某个文字附近是一件比较麻烦的事,尤其是在小屏幕手机里。

但iOS手机有3D touch功能,不少产品都会通过‘重按键盘’的方式来控制光标的移动。如iOS系统键盘、百度输入法和讯飞输入法:



但是Android手机可没有3D touch,如何解决这个问题?

典型的例子还是UC浏览器,采用一个‘滑块组件’来控制光标的移动。不管Android和iOS端,都能有效地提升输入效率和体验。



2.长按的彩蛋

除了长按键盘外可以移动光标外,在一些第三方键盘上也隐藏了‘长按’的彩蛋,如:

·百度输入法:
长按可以持续选择表情,还有表情飘出效果。



·讯飞输入法
长按可以选择表情的颜色,但部分表情才有而已。



·搜狗输入法:
长按可以切换至‘单手键盘’模式,用于操作大屏幕手机或iPad。


文章来源:UI中国

京东视觉设计案例解析

资深UI设计者

设计并不只是为了区分市场定位,在视觉上对产品做一些修修补补。设计需要从品牌自身出发,设计出来的产品才能与用户产生情感交流、为品牌而发声,这样的设计才能真正为品牌创造长尾的价值。

前阵子和朋友去看车,我们去的第一家店是沃尔沃,沃尔沃主打的品牌理念是「安全」「可靠」,当时我在沃尔沃店里看的每一辆车的外形就像从金属盒子进化来的,棱角分明、线条硬朗,同时每个部件都相当厚实,当时我坐在车里的时候,感觉自己像是坐进了一个大保险箱,里三层外三层把我包裹起来,坐在里面特别有安全感。

我们去的另一家店是宝马,宝马的品牌概念主打的是「时尚」「运动」,所以宝马车给人的感觉和沃尔沃又完全不同了。它的流线感非常明显,而且这种流线型设计一直延伸到车内的每一个部件。印象特别深的是,车里座椅的荔枝皮纹和我们常见的品皮质特别相似,让我感觉自己像是坐进一个时尚的爱马仕箱包里。

其实无论是工业设计,还是我们的用户界面设计,好的设计给用户的感受与品牌理念是相契合的。设计中的每一个细节都是围绕品牌自身而展开,设计出来的产品才能够成为品牌的具象化延伸,与用户产生情感交流的同时也会让用户更加忠诚于我们的品牌。具体怎么做?这需要我们运用统一的设计语言来完成。

什么是设计语言?从设计的层面理解,当你看到一组功能与形式相互融合,向你诉说其特色与优点的产品,从而唤起你的情感反应时,你正在体验的就是设计语言。简单讲,当你的品牌运用设计语言的时候,你的产品会跟人说话:会告诉人们它能做什么,怎么做,以及你的品牌是个什么样的品牌。而这个设计语言也将会从前期的风格设定到后期的设计执行,始终贯穿在我们整个产品设计的流程当中。

首先从一开始的风格设定,比如每次我们设计师接到一个 brief 都会先做视觉推导。但是我之前的视觉推导是这样的:比如现在为一个类似拼多多的产品做设计,然后搜集了一圈竞品的界面,发现拼多多、聚划算、淘宝特价都是这种线框的、扁平的设计风格,所以最后推导的结论就是——因为我们拼购面向的用户群体是低消费人群,而竞品的设计风格是 xxxx 的,所以我们的用户偏爱这种 xxxx 设计风格,所以我们需要用这种风格去设计我们的页面。

搜狐总监总结的竞品分析方法:

其实这是一种循环论证,并不能推导出真正有价值的内容。就像你问一个胖子「你为什么这么胖呀」,胖子说「因为我吃得多」,你又问「为什么要吃这么多呀」,胖子又说「因为我胖,所以需要吃多点」。

竞品分析虽说也是一种前期设计调研的方法,但如果我们的设计只依赖于参考其他人怎么做,最后我们设计出来的产品不仅没办法向人们表达一个完整的品牌理念,而且我们的设计跟其他竞品看起来很相似,失去了自己的特点与优势。

所以,在我们设定产品的设计风格的时候就需要运用统一的设计语言,产出能够表达我们品牌特质的设计。那具体怎么做?这里涉及 2 个关键点,一个是如何找到你的品牌特质,另一个是如何针对这个品牌特质找到对应的设计语言。

元素 —— 围绕品牌特质

首先,想要找到我们的品牌特质,我们可以从一个很有意思的原型中得到启发。如果想让我们的品牌真正能够影响用户,让用户为我们的品牌买单,我们的品牌就需要基于用户内心最深层次的需求,明白用户买单的动机在哪里。这时候我们再对应这些深层次的动机和需求做出设计,效果自然会事半功倍。那么如何能把品牌和用户的动机需求连接起来呢?我们可以借助心理学家荣格的原型理论来一一对应。

荣格的原型连接了人们最深层次的动机和感觉体验,表达了人们的基本需求,最重要的是他将这些需求都具像化为一个个角色。所以我们可以从中找到自己品牌的角色,并且在往后的发展中根据这个角色设定我们的品牌特质和设计语言,进而与用户建立根深蒂固的联系(相当于为我们的品牌打造一个「人设」)。我们先看看荣格的原型具体有哪些:

1. 开拓者

我们也有称之为探求者、朝圣者,它是敢于冒险的、首创的、独立的、不墨守成规的,更多的寻求自我实现和改变,拥有自由的价值观、自给自足的。开拓者通常会在未知的领域,开创新的路径。同时是个驱动力很强的非常有个性的人,能够忍受探索新路上形单影只的孤独。属于这种角色设定的品牌比如有星巴克、路虎都是。

2. 守护者

守护者通常是说无私的、有同情心的、仁慈的人,给弱势群体提供帮助和支持的,同时具有慷慨大方、自我奉献的精神。守护者更多立志于他人的安危和福利,像这种角色的品牌稍微少点,通常是一些救济会、慈善组织等等。

3. 爱人

爱人相关的特点像热情的、美丽的、感性的寻求真爱和愉悦,追求爱的价值观和亲密关系。爱人通常是通过给予和获得爱的强烈愿望所驱动的,这个不局限于爱情,友谊也包含在内,主要是意味着情感,所以一般是香水或者化妆品品牌都是运用这个原型角色。就像 dior,当然还有巧克力费列罗等等。

4. 魔术师

我们知道魔术师的形象通常是爱恶作剧的、滑稽的,有时候能够跨界,打破禁忌,并且自身带有乐趣,善于改变的。魔术师通常渴望乐趣,从单调的生活中解脱出来,敢于打破禁忌,质疑不可能的事物。这种角色设定的品牌我们可以很快想到那个爱玩有趣、经常跨界合作的百事可乐。

5. 创造者

创造者更强调艺术感、想象力、创新性,以及自我表现的价值观和美感上的愉悦性。创造者通过精心制作用来表现自我的事物,让人们耳目一新从而得到认可。像这种强调创造力的品牌比如乐高,用有限的积木组合、创造出无限种可能。

6. 反叛者

反叛者也可以说是不法之徒、外来者,这种角色通常是具有变革性的、反常的、打破常规的,表达一种价值观的解放。反叛者通常存在于社会边缘的,被大部分社会群体看成局外人甚至异类的角色,我们也可以看成是亚文化的一种转变。像这种主打标新立异、反常规的品牌,最著名的就是哈雷。

7. 魔法师

前面我们提到了魔术师,那么魔法师相对于魔术师而言,会带有更多的非现实的想象,精神上的超凡魅力,带来转变的、形而上的意识的扩张。通俗地说,是带有更多迷信元素的。但是最重要的是,魔法师趋向于驾驭各种能量和环境,进而给人们带来身体上以及精神上的转变。同样,像这种强调 magic 的品牌我们第一个可以想到迪士尼,典型的魔法世界。

8. 智者

我们也可以称之为「圣人」,智者通常是一种富有哲理性的、知识渊博的形象,忠于追求真理、乐于分享知识,也是智慧的代名词。智者经常被当成真理的捍卫者以及智慧的来源,为人们指明方向,帮助大家前进的代表。这种角色设定适用于一些知识输出的品牌,比如哈佛大学、金融时报等等。

9. 天真

这是 11 个原型中唯一一个形容词而不是角色名词,它代表着信任、纯洁、健康乐观,有希望的、诚实善良并且拥有简单的快乐。天真代表着乐观主义,不管处境如何都能保持希望和信仰,更像是纷杂世俗中的一片净土或者是一个乌托邦世界。而像这种原型设定一样传达乐观、希望、天真的品牌有麦当劳、可口可乐等等。

10. 统治者

统治者象征着权威、控制、至高无上,同时也有承担、效率、和谐的属性。统治者被得到和控制权利的欲望所驱动,通过对事物的掌控来防治混乱发生。同时也是一种责任承担的表现,以有组织的的方式来完成义务。属于这种角色设定的品牌比如有 IBM、花旗银行等等。

11. 英雄

每个人心目中的英雄不尽相似,但是他们的共性都是勇敢的、有原则的,勇于克服障碍,同时敢于接受挑战、伸张正义,面对逆境的时候坚韧不拔。这种角色设定的品牌比如强调挑战、正义、勇敢的耐克、联邦快递等等。

总而言之,原型是将我们用户内心最深层次的需求,具象化成一个角色,我们的品牌对应上这些角色,相当于对应上了我们用户最深层次的需求,为我们品牌和用户产生情感交流打下基础。同时,它可以为我们设计师想为品牌找到对应的设计风格的时候,提供更多维度的灵感。而这之后的过程,就涉及到刚才提到的第二个关键点,如何为我们的品牌找到对应的设计语言?

我们从前面的心理原型中了解到品牌的角色设定之后,围绕这个角色将会有一系列的关键词去描绘这个角色的特质。我们将这些抽象的、描绘品牌特质的关键词具像化,则可以得到描绘品牌自身的设计元素。具体我们可以借助一个图形四象限来完成:

我们将图形的基本构成(点、线、面)作为我们的坐标延伸——宽窄曲直,用这四个属性我们可以组合出非常多不同形态的图形元素。比如说,我们用「宽+曲」组合出来的图形可以是:实心的圆形、波浪曲线等等;再比如说我们用「窄+直」可以组合出:细直线、带有直角边的矩形等等。

同时,在图形属性的坐标上,我们还需要延展出一些带有这种属性的事物或印象。比如,生活中带有曲线的事物,像有花瓣、棉絮等等,这些事物给人的印象是柔和、温暖的表现;而直线的事物,我们联想一下生活中的带有直角的事物,比如像玻璃、霓虹灯管等等,这些表现前卫、锋芒毕露的事物。

像上面绿色部分的认知印象,针对每一个维度可以联想出很多关键词与事物,那么在我们延展出更加详细的四象限之后,这时候可以再次拿出,我们前面说到的,原型角色的关键词,再和刚才的图形四象限进行比对,利用象限中的图形基本属性,来组合出属于我们品牌的设计元素。具体怎么做,我举一个京东直播改版的案例。

首先基于京东品牌特质(原型设定是英雄),围绕英雄这一个原型我们会有很多关键词去形容它,比如敢于挑战、坚韧不拔等等。不过,京东直播作为京东 App 的主要栏目,更希望吸引更多的年轻人以及女性群体的参与,所以在京东直播里,我们表现的是更加年轻、女性向的英雄——惊奇队长,一位自信、勇敢挑战的女英雄形象。因为像人在不同场合下都会有不同的表现,对于品牌来说也是如此,我们设计师也需要根据不同的场景或者子产品的需求,基于原型的核心理念再做出适应性的设计,让我们设计的品牌更像一个生命体,而不是一成不变的事物。

那么我们围绕年轻、女性、自信这个主题再脑暴出更多相关的关键词。比如具象的可以代表女性的事物:口红、高跟鞋;比如一些抽象的内容,我们可以把他们具像化,比如年轻的「活力」,我们可以用泡泡、花朵来表现,女性的「优雅」可以用香水、丝带表现,英雄的「自信勇敢」用笑容表现。

不过,我们知道用户界面设计相对于平面设计的海报、插画而言,更重要的是对产品信息功能的辅助,所以这里的设计元素运用会更加克制,这意味着需要我们回归到更基础的层面。所以我们需要从刚才的具象事物(比如花朵、笑容)中提取出他们的基础属性,比如花瓣是圆弧形的、片状的,笑容是向上的曲线。同时借助图形四象限,用「宽+曲」的手法来表达我们的设计元素(年轻、女性向在第二象限,对应的宽+曲属性)。在后期设计过程中,融入这几个元素再作出界面设计。

当然,在整个设计流程中,设计语言的设定并不单单包含元素这一部分,还包括颜色、框架、布局等,各个方面的考量缺一不可。

颜色 —— 相对统一而非绝对一致

为什么是相对统一而非绝对一致?因为人们对大部分颜色的认知其实是来自于自身的行为,受到心理、环境、文化等背景因素的影响,更多是一种个体的主观感受。比如同样的红色,在中国是吉祥喜庆的代表,在国外普遍认为危险警告的颜色。比如黑色,在大部分年轻人眼里会认为是酷的时尚的颜色,而相对年长传统的人则更多会觉得是邪恶、忌讳的颜色。所以我们并不需要过分强调建立绝对一致的色彩规则,这样也能使我们设计的品牌更像是一个有灵性的生物,而不仅仅是一个僵硬的组织。

比如今年的京东 618 项目,时间跨度长达 30 天,活动页面覆盖上千个,设计师不可能一个个去指定颜色规范、或者让同一个颜色适用于所有页面,所以需要设定的只有色彩感觉和表现手法,这种统一的大方向。所以我们可以看到这些在 618 期间的设计,虽然不尽相同但能让人清楚的感知到,这是来自同一个生态下的主题,并不会因为颜色不同就无法识别。

虽然人们对大部分颜色的认知来自于心理的主观感受,但还有对另一部分的颜色的认知是来自于人们的生理反应。而这一部分,才是我们在设计的时候需要注意的,关于造成人们「感知过强」和「感知过弱」的问题。

1. 感知过强 —— 颜色对抗通道

简单讲,就是相当于我们设计常说的——对比色,虽然我们知道对比色可以给用户带来视觉刺激,但是并不建议在设计中大面积的、长期的使用(红绿或黄蓝对比色),为什么呢?

因为我们所说的颜色,其实是人眼对频率、光的波长的感知,就像我们耳朵听的音高或一个音符时所感知的声音的原理一样。下图是人们视网膜三类视锥细胞对光的敏感度,以及人造红、绿、蓝色光感受器对光的敏感度。我们可以看到,低频视锥(红线)信号是红色和黄色,中频视锥信号是绿色,高频则对应蓝色。而我们设计中常说的对比色,其实就是通过这些视锥细胞的低、中、高频信号的极值相减,才得来的颜色对抗组。所以这种通过对视锥细胞两极的强烈刺激才得到的对比色,长期使用下会让人产生疲劳甚至烦躁的情绪,而在这种不稳定的情绪下,用户非常容易产生误操作,甚至最终迁怒于你的产品不再使用。

所以我们作为设计师可以运用一些方法来尽量控制对人眼的最极端的刺激,比如通过减少对抗色的面积,或者通过将对抗色组中的一个颜色用它的近色替换,等等。

2. 感知过弱 —— 色域跨度

除了以上,让我们感知过强的颜色对抗通道,另一个需要注意的颜色问题就是,让人们感知过弱的色域跨度。我们有时候会遇到一个问题就是,按钮上的文字和按钮的颜色融在一起,导致按钮文字看不清。

这个问题其实就是两个颜色的色域跨度过小导致的,首先我们用 H(色相)S(饱和度)B(明度)的数值来划分色域(如下图)。在统一H(色相)值的情况下,规定了 10 个标准的S(饱和度)、B(亮度)值,以 10 为单位作为一个跨度。两种颜色在这个色域中,至少要相差 5个跨度,用户才能有效感知到两种颜色的差异。

比如下图中的蓝色背景色值是 60,那么放置在这个背景中的文字 A,至少要跟这个 60  的位置相差 5 个跨度,也就是 10 这个位置。如果文字A 的色值只有 30,与背景色的 60 跨度小于 5,那么文字 A 在这个背景上会难以识别。以此类推,深色模式中(如下图)这个背景色值 100,那么在这个背景上的文字 A 色值,最多不能超过 50。

以上关于颜色对抗通道和色域跨度的问题,就是我们需要了解的一些颜色运用中的边界,并在这个边界以内让设计保持最大的灵活度。所以对于颜色,我们需要强调的是相对统一的边界极值,而不是绝对一致的色值。

如果我们把前面说的设计元素和颜色看作品牌的皮肤,那么视觉框架则是品牌的骨骼。如果想让我们的品牌成为一个能够真正影响用户的存在,不仅要有好看的皮囊——在设计元素和颜色上延续品牌基因,还要有强大的内心——视觉框架要能足够支撑起我们品牌的身躯。

框架 —— 基于阶段价值诉求

视觉框架包括了层级和布局,我们需要在设计的过程中,加入对产品阶段和品牌价值的思考。因为就像人一样,处于不同阶段的人追求的东西会有所差异。同样的对于品牌也是如此,处于不同产品阶段会有不同的需求,相应的品牌价值点也会有所差别。所以如果想让设计的视觉框架能够足以撑起品牌,在这其中将会涉及 2 个关键点:如何定位产品阶段和品牌价值,以及如何围绕产品阶段与品牌价值点设计对应的视觉框架。

首先是定位我们的产品阶段和品牌价值,我们可以通过对照经济价值系统(如下图):产品的阶段分为初级产品、产品、服务和体验这 4 个阶段。

拿京东举个例子,如果我们位于初级产品阶段,我们的平台就是这样的(如下图):展示出所有商品信息,用户需要根据信息联系商品的供应商,去和供应商进行交易。那么在这个阶段的时候,品牌的核心价值在于对商品信息展现的完整性、全面性,只要这个平台能够覆盖足够多的商品,并展示完整的商品信息,这个阶段的目标就达到了;

如果我们位于产品阶段,我们会对商品进行分类,并在平台上提供统一的购买渠道。相应的,这个是以后的品牌价值在于,平台能够对商品进行精准分类或者实现统一的购买渠道功能,让用户能够在平台上买到商品;

而当我们位于服务阶段,我们的平台不仅可以购买商品,我们还会提供售前售后的服务,对应不同的客户群体推荐不同的商品,或者提供定制化的服务等等。平台除了实现交易功能,需要提高品牌的竞争力,在竞品之间形成差异化,为人们提供一系列附加价值的服务,吸引更多用户在我们平台上下单才是目标;

而如果我们位于体验阶段,我们可以从视、听、味、嗅、触觉给用户带来一系列的情感反应,为每个个体营造不同的回忆与感受。让用户与品牌产生情感上的互动,在更深层次上影响用户认知并形成坚固的情感纽带,让用户忠于我们的品牌才是这个阶段的目标。

正因为不同的产品阶段,对应的品牌价值与目标不同,我们才需要针对产品阶段,为品牌设计合适的视觉框架,到后期设计出来的产品才能更贴合地为品牌发声。像今年京东 app 改版项目,在接到这个 brief 之后,首先当然会先看看当时版本存在的问题,下图为当时京东 7.0 版本。

当时团队逐一列出了 7.0 版本存在的几个主要问题:

1. 品牌识别度低

我们可以发现在这个界面里很难发现京东的品牌元素,就算现在换一个品牌同样这个界面也适用;

2. 业务分发局限

这个版本里的商品坑位是固定的,业务展现的数量和形式是局限的;

3. 运营维护成本高

banner 模块采用通栏而且上下渐变的样式,这需要商家制作运营图片的时候,将主要内容严格控制在我们的限制区域内,这同时也增加了我们运营审核的工作量;

4. 楼层过长、转化率低

在 7.0 版本中,中间的楼层频道长达 7 屏,同质化的内容导致平台商品的转化率不高;

5. 促销信息干扰

界面的促销信息让用户眼花缭乱,难以让用户快速找到自己想要的商品;

6. 个性化感知不足

电商平台内容形式趋向单一化,没有太多创新的表现。

有了这些具体的问题项,设计师们开始进行针对性地视觉框架设计。比如,针对个性化感知不足的问题,我们希望重新设计百宝箱区域,打破常见的圆底 icon 的样式,每个图标的边框都是不规则的,让整个区域更有表现力,同时与其他电商平台的界面形成差异化。再比如,针对促销信息干扰的问题,我们希望简化原本频道入口的信息,将原本好几个 sku 信息对应同 1 个入口,优化为单个 sku 与单个入口一一对应,让用户保持专注力快速找到自己想要的频道入口。

诸如此类,当时我们为这几个问题延展出许多设计上的解决方案,输出了不少有创新性的视觉稿。但是随着设计工作越往后进行,我们发现手中的设计并不能很好地解决,品牌在当前阶段中面临的实际问题。

因为在前期框架设计的整个过程中,我们没有把品牌定位这一因素考虑进去,我们发现旧版本的问题,埋着头只想把这些问题都解决了,却忘记抬起头看看我们的品牌现在在哪。我们前面说过,对照经济价值系统,京东目前主要处于服务阶段,还在逐渐迈向体验阶段的进程中。

而处于这个阶段的京东,外部环境是电商平台的逐渐趋同化;内部环境是业务体量庞大,同时产品仍有上升空间。所以我们的阶段目标就是需要加深用户对品牌的认知,业务内容需要更加具备兼容性、延展性,同时需要提高产品的业务分发能力。

结合这个阶段性目标,我们可以从旧版本存在的问题中,发现这 4 个问题才是当前优先级最高的、需要在当前阶段中解决的内容。所以基于筛选后的 4 个问题,我们开始将设计往回收,从视觉框架上更多聚焦于这 4 个问题的优化。

比如针对业务分发局限性的问题,对首页下拉区域的布局进行优化:下拉刷新除了常规的刷新状态外,在营销活动期间用户可下拉跳转至活动页面。我们将下拉路径缩短 30%,共享元素空间兼容更多的业务内容,充分利用首焦区域丰富业务的展现形式。

比如针对品牌识别度的问题,将首页头部区域的层级进行优化:在京东品牌形象 Joy 中提炼出微笑曲线,将微笑弧度应用在头部的背景轮廓上,并且在整个页面中统一植入品牌色京东红,同时在当前我们的品牌尚未成熟的阶段,直接使用京东 logo 强化用户对品牌的感知度和记忆点。

比如针对运营维护成本高的问题,还记得前面说的我们一开始做的百宝箱的设计么,虽然那种设计是更具有差异化和创新性,但是目前产品量级大、业务入口多,而且这一区域涉及合作商家自己提供的素材露出,如果没有统一的外框与规范的内容,运营维护成本是相当高的。所以我们保留了 icon 外框,同时规范每个框中只居中展示一个对应的图形,不能包含文字等其他元素。

最终我们可以看到,改版后的京东 app 无论是在品牌、业务层面,还是在多种复杂的运营场景中,都能实现作为平台的兼容性和延展性。所以,在视觉框架的时候需要预先考虑产品阶段,针对不同阶段需求作出相应的设计侧重,让设计出来的产品能够更加贴合品牌本身。

经过刚才的推导和框架设定,我们对眼前要做的产品设计风格、视觉框架已经确定的七七八八,界面的形态也初具雏形了。接下来要做的设计执行阶段就是我们设计师的魔法时刻,相信每位设计师都有自己的方式和能力让我们的产品变得更优美,所以关于这部分的内容暂不在此赘述。

通过以上章节我们了解到,只有从品牌自身出发,设计出来的产品才能在每一个方面都延续品牌基因、展现出设计的整体性。一方面满足品牌价值需求为品牌发声,另一方面将用户的所闻、所见、所感打造成一个特别的情感反应,让用户更长久的忠于我们的品牌。

不过,如果我们想要创造出能深化品牌基因的产品,我们在用户方面也要投入和品牌方面同样多的关注。因为不仅要看产品的外观界面,还要看产品给用户的感觉、使用方式和效果。比如用户因为什么才被你的产品吸引,用户会从中得到什么,你的产品能带给用户什么感受,用户如何才能为你的产品发生实际行动,等等。正因为我们所做的一切,都应该对品牌产生支撑作用。所以不仅仅是品牌能够识别和定义我们的产品,用户的认知体验也应该成为我们设计考量的一部分。究竟怎样做,才能让我们的设计能够有效的影响用户、让用户为我们的品牌买单呢?

文章来源:优设

京东首款品牌定制字体!「京东朗正体」设计过程全纪录

资深UI设计者

京东推出品牌字体的原因

Type defines type. 在英文中,单词 Type 包含两个含义,文字和类型。这从某个角度说明了字体对于品牌的意义。一种字体能影响甚至决定人们对于这个品牌风格的认知。随着产品使用场景的不断拓宽,一个品牌的呈现已经不再局限于一个 LOGO 那么简单。

品牌可以通过 LOGO、品牌色、IP 形象、字体等多种方式与受众构建联系。根据权威机构 Salesforce 今年 4 月的调查,75% 的消费者期望在与品牌互动时获得一种持续性的、连贯的体验。

纵观京东现在的品牌光谱,可以发现,之前我们在字体方面的确是处于缺位的状态。而字体作为一个分布广泛的媒介,必将成为连通全部潜在品牌触点的重要工具。

因此,京东朗正体的推出,将会与我们现有的资源一起,全面提升京东的品牌体验的连贯性,并有利于构建新的品牌生态。

神秘组织,自给自足的艰难探索

京东朗正体其实脱胎于京东内部设计团队所称的「京东字体」。与很多品牌(IBM、奥美)相似,我们的品牌字体也是从我们的 LOGO 文字中延伸而来。

一开始,我们也是边学边做,通过已有的一些基础字体设计知识,从 LOGO 里寥寥无几的笔画中总结了一些笔画规律,比如横细、竖粗、点平、锐折等,然后将其应用到各个部门提过来的做字需求中。另外有时候也需要对其他部门提交的文字 LOGO 进行审核。

△ 这个神秘组织就是我本人

但是渐渐的,我们开始感到力不从心。一方面是随着京东业务不断扩充,希望设计京东字体作为 LOGO 的需求越来越多。使用京东字体作为标志,具有强品牌背书的优点,而且相比专门设计一个图形 LOGO 乃至一套 VI 体系,使用京东字体更加节省时间,具备更高的推广效益。但仅靠一个设计师来对接整个集团众多部门的做字需求,还是有点不堪重负。

△ 源源不断的做字需求

另一方面是我们意识到,我们根据 LOGO 字体制定的造字规则,其实非常模糊且局限,这也是我们缺乏字库设计的经验造成的。而这样的漏洞使得我们在实际的应用中遇到了问题。比如一开始我们简单地将撇的收笔都规定为纵切,但是在某些字中,使用横切收笔,视觉上却显得更为舒适。

后来我们在与专业的字体设计师沟通后了解到,这其实是因为在汉字中,单是一个撇笔就分为左上撇,斜撇,弯撇,直撇这么多种类型,而简单地将一个规则应用到所有的撇笔中,会造成某些字结构上的失衡。

交棒方正,专业化产出

就在京东字体的造字工程陷入困局时,市场部刚好找到我们,提出了与专业字库公司合作定制京东品牌字体的计划,从而推进品牌升级。我们与市场部一拍即合,确定了与方正的合作。于是,整个字库的创作主力转到了方正身上,而我们主要承担掌舵的角色,整个字库的制作也开始向专业化、规模化、系统化发展,生产速度更是呈现出爆炸性增长。

首先,我们与方正的老师确定了字体整体的基调,希望仍然保持简洁、直接、力量的感觉。对已有材料进行分析后,方正团队重新调整了字体的笔画、字面、重心和结构等方面,特别是对笔画粗细比例和规则进行了规范化。

可以看到,新版字体的纵横笔画比例从 20:11 缩小到 3:2 后,字面布白变得更均匀,辨识度也显著提高。

同时,方正团队对笔画规则的重新分类,也解决了我们之前碰到的难题。例如规定:点、撇、捺及镜像点撇的收笔采用横切,较为扁平的撇捺和镜像撇捺的收笔则采用纵切。

明确规则后,方正团队先小规模试点,做了 130 个字,这些字涵盖了京东常用字以及中文里的主要偏旁部首和部分独特字形。同时,方正也邀请我们为这些字提供意见。

由此,我们开始了字体找茬大赛。我们把这些字放大,打印后贴在墙上细细端详。近看,远看,坐着看,站着看,跪着看,走着看,调动起我们体内最原始的设计直觉,试图找出这些字里不自然的地方,然后贴上便利贴标记。后来我们甚至走火入魔,看字不是字。

△ 看字看到失智的同事

跷跷板两边——专业意见与业务需求

这次的项目合作,方正团队派出了两位重量级的设计专家,方正字库的设计总监仇寅老师与设计副总监汪文老师。(如此深厚沉淀的字体设计资历让我们忍不住就直呼老师)

一开始,我们还担心在项目过程中会比较被动,无法很好地参与到字型设计的讨论中。毕竟相比之下,我们简直是字体小白,缺乏系统的字体设计知识与建设大型字库的经验。但在合作的过程中,我们慢慢能体会到,从某个角度来说设计还是相通的。

在一期和二期字样中,我们都根据「设计直觉」,对一些基本结构提了调整意见,甚至直接上手做了修改的尝试,因为感觉这样讨论起来也比较直观。这也的确得到了方正老师们的认可与呼应,其中还包括一些比较重要的偏旁部首。

比如竖心旁、火字旁的两点,老师们一开始都做得特别纤细。这可能是因为点笔在初始的调性设定上,就被规定从起笔到收笔都不能有弧度。老师们或许是出于字面留白的考虑做小了。但我们认为从总体来看,还是显得过于「可爱」了点,于是将它们适当加粗,并向中心靠拢。老师也采纳了我们的意见,终稿效果呈现上双方都比较满意。

确认核心字样后,方正开始进一步快速地扩充字库。整个字库制作的时间虽然只有短短的 3 个月,但还是进行得比较流畅和有序的。

而这当中,还有一个无法忽略的角色,那就是市场部。市场部作为整个集团的品牌资源中继站,长期负责承接各个部门的设计需求,对字体在业务前线的实际应用效果有很强的发言权。于是,方正和市场部,自然落在了跷跷板的两边,而我们站在中间,既要信任双方,又要平衡好双方的意见,推进字库快速而高质量地产出。

这次制作间隙,刚好碰上了新板块业务——「京东健康」的品牌发布,因此方正团队需要临时先制作这几个字的标准字。在康字上,我们费了不少的功夫。

市场部认为方正给到的「康」字设计,有种不稳固的感觉。这可能是康字右下角的捺笔过高过短造成的。这可以理解,因为涉及到京东健康的业务范围和希望传达的品牌调性,业务方自然希望在字体标志上体现出稳定、安全的感觉。

但业务方提过来的建议,从设计上看还有欠缺,与其他字体也不成体系。因此我们在此基础上为方正老师提供了一些修改方向的建议,也就是让折捺更贴近地面,左边的两点也相应做出调整适应。

方正侧根据我们的意见,又做了进一步的创新修改。我们以设计角度和业务需求结合的角度进行挑选,认为将右边的点和捺打散,捺笔能获得更大的舒展空间,整个字符也「站得更稳」,选定了方案C。这个小插曲也就顺利解决了。

谁的字体?我们的字体

品牌定制字体,从名字上可以看出,似乎具有天然的专属性,它只属于其服务的品牌。但正如蒙纳在 2020 字体设计趋势报告所说,品牌的字体策略不应该是固定的、死板的,它更像是一个可扩展、可变化的工具,帮助我们实时重塑品牌。这意味着京东朗正体在未来仍将持续进化,更加开放。它不只是属于京东的字体,它还是我们所有人的字体,它试图满足设计师、合作商家、消费者等多方的需求。

京东朗正体目前仅有一个字重,比较粗,主要适用在大型标题或标志中,还不能满足目前众多文字内容样式的需要。后续我们将会制作更多字重,丰富京东朗正体的字体家族。我们也不排除京东朗正体会覆盖更多语言的计划。毕竟京东作为一个全球化的品牌,在各个国家的露出将会越来越多,使用字体在不同语境中保持品牌连贯性也一样至关重要。

除此之外,可变式字体(Variable Font) 可能是我们更长远的一个发展方向。可变式字体的特点在于其无限性,只需下载一套支持这种技术的字体,就可以直接调整字的各种外形参数,包括字重、字宽、衬线、斜度等。这既能减轻字体设计师的工作,也能为使用字体的设计师提供更多可能性。同时,这也有助于消除字体在各种电子终端演绎的屏障,释放更多品牌活力。目前我们正在与技术平台的小伙伴沟通这一计划的实现进程。

在使用范围上,京东朗正体已经开放授权给所有合作的商家和机构。我们也希望借助品牌字体增强与合作方的联系,让这个品牌符号为合作伙伴提供更多展示的空间,进一步拓展品牌生态的广度。

品牌战略公司 Lippincott 的负责人提到:「在这个新的时代,字体比任何时候,都更需要也更可能统一人们关于品牌的体验,并在各个渠道和载体上都实现无缝连接。」

这一次,我们做京东的品牌字体,当然不是为了「赶潮流」。它立足于现实环境的需要。京东,根源上看是一个提供零售基础设施服务的平台。这个服务,既是硬件上的,比如储存和传送包裹,也是软件上的,处理和分发信息。 而文字,作为信息的重要载体之一,是我们这一次尝试为京东创造设计价值而抓住的发力点和机会点。

和京东朗正体一起成长的历程,包含了我们在系统化字库设计中的懵懂探索,与跨界设计师合作的思想碰撞,乃至对京东品牌字体未来发展的想象,辛酸和快乐等比混合。

让我们期待京东朗正体的表现。

另外一款品牌字体「腾讯字体」也值

2020年该如何自我提升?来看设计高手的10个思考习惯

资深UI设计者

除了专业和工作,你思考过别的问题吗?最近反思了这十个问题,分享出来与各位酷友共勉。

年关将至,越是这个时候行业的波动也比较大,设计师萌生跳槽想法、被离职风险、薪资拖欠带来焦虑情绪、常年加班的职业病等等。也许我们在耗费心力提升专业能力的同时,是否应该思考点别的问题。

最近进行了一些反思,除了专业以外我还有哪些需要坚守的习惯和培养的目标。整理出最近思考的十个问题,希望与大家一起共勉。

有自己的短期目标吗?

无论是职场新人还是行业老司机,我们不怕专业能力不足,就怕浑噩度日,漫无目标。看到过很多工作多年的设计师迷茫,缺少新人的工作激情,却又不知道自己应该如何前进一步。

小时候老师总会问我们梦想是什么,却很少有人实现,现在如果问我梦想的话,我一般会说自己的短期目标是什么。你可以定一个大的目标,但是一定要拆分为短期可落地执行的目标,阶段性的验收才能做出灵活的调整。

如果是专业层面可以梳理当前行业需要的技能树,然后对自己的能力进行梳理,看看不足的是哪些,以此制定短期目标一个一个进行攻破。目标不一定与专业有关,也可以是生活中的兴趣,比如学会游泳、看十本书、完成一次自驾游、让自己瘦十斤、年底有钱回家~O(∩_∩)O~一切都可以成为自己的短期目标。短期目标是为了丰富自己的时间管理,也能充分的利用好阶段性的时间去完成,不断增进自信和维持这份驱动力。

能控制好时间规划吗?

如果你能控制好自己的时间,就是一个优秀的设计师,时间规划主要的难度不是制定,而是坚持,很多人都半途而废。我从实习开始工作以来为了更好的掌控自己的时间,喜欢以日记的形式记录当日完成的工作和接下来需要准备去执行的事项。完成之后以勾选的方式划掉,如果发现接下来没有任务进来,会制定一些日常提升的计划。

业余的碎片化时间根据出现的场景做规划,刚工作的时候上下班地铁时间需要 2 小时左右,通常就会安排进行阅读,不仅可以消磨时间也增加了自己的阅读量。如果加入一些日常练习主要的不是一天要做多少,而是能否长期坚持,通常是一天完成两个界面就睡觉,不多做也不少做,随着练习的坚持后面完成的时间就会越来越快。通过一些设计平台以打卡的形式发布作品,目的就是为了有一个可以记录自己成果展示的场景,调动起氛围。

也可以给自己的时间规划设定提醒,以免忘记这个时间段应该做什么,规划不能过于密集,休息是为了放松自己,如果被规划压得喘不过气,会把一个好的东西变得排斥。所以,留足一些休息的时间追剧、刷抖音、锻炼身体、逛逛商场散散步等等,劳逸结合才能持之以恒。

能驾驭自我驱动吗?

其实专业能力不足并不可怕,只要你想学都可以弥补不足,难的是缺少自我驱动力。三分热度你都能有,持之以恒却没多少人可以做到了。要时刻反思自己坚持了曾经的那份初心了吗?

如果自己自控意识薄弱,要刻意而为之,强迫自己按照定好的轨迹运行。可以制定阶段性的小目标和规划,这样战线不会拉得很长,有助于刻意坚持。可以给自己设定一些奖励,完成目标大吃一顿、看一场电影、去一个地方旅游、买一件规划好的商品等。如果没有完成就要强迫自己完成才能获得设定好的奖励,现在不对自己狠一点,未来职场就会对你狠一点,进而抛弃你。

如何提高自我驱动力:

除了专业还有兴趣爱好吗?

思考一下除了专业和工作以外,你有兴趣爱好吗?如果你犹豫停顿了,希望你可以培养一个兴趣爱好,丰富自己的精神追求。当然,这个爱好需要是阳光积极的,别把陋习当成爱好。

除了设计以外,我从小喜欢画国画,虽然没有走这个方向去发展,我把它作为兴趣爱好来看待,丰富自己的业余生活。作为设计师兴趣爱好不一定是与设计沾边的,我以前有个同事她是 UI 设计师,业余时间却是某游戏栏目的专栏博主,也有专门写旅行日记的,研究美食的等等。

培养兴趣爱好可以让你在工作之余放松心情,释放压力,没有束缚才能释放自己压抑的情绪,也能更好的调整好心态。

有哪些适合设计师的兴趣爱好?

作息时间是否合理?

年轻的自己从来不担心这个问题,只有当发现自己身体透支过度的时候才会有所意识。作为设计师来说加班似乎已经家常便饭,不过如果加班透支了自己的身体也要进行反思了,毕竟健康是属于自己的。

虽然没办法立马做到早睡早起,但是可以逐步把休息时间和起床时间提前,早点起来锻炼一下身体、看半小时书也不错。好的身体才能实现更多价值,我最近都在尽量控制晚上十一点前睡觉,逐渐调整出更好的作息时间和习惯。

把青春和时间奉献给了工作,别把健康也搭进去了,如果公司不注重员工的健康而一味的压榨,不值得你为之拼命。

如何看待自己的青春流逝?

青春我们都曾有过,也都会失去,如果你正直青春期间,如何看待自己当前的经历和奋斗的动力比较关键。

刚毕业的时候用一部分青春换取了职场经验和专业进阶,后来选择创业也是希望把青春留给自己,为自己而奋斗。每个人都有自己的选择,只希望你今日的努力能够对得起未来的自己。

能肩负起自己的责任吗?

责任感是我们每个人都需要具备的,上学期间我们习惯了在爸妈的庇护下成长,从我们步入职场的时刻,我们就要学会独立生活。虽然你可能过着月光族的生活,一人吃饱全家不饿,也不一定尽到了自己的责任,但是总有从某一刻开始你会意识到自己的责任。

当我们在追求自己的未来的时候,也要回头思考自己的责任,从肩负起一个小的责任开始。可以是对家人的关心与照顾,如果当你成家之后应该会感触更深。今日对未来的反思与规划是为了使自己变得更优秀,将来有能力守护家人,实现自己的价值,肩负起自己的责任。

是一个有态度的设计师吗?

作为设计师我们是商业环节中的一环,随着感官体验的升级,设计的质量越发显得重要。在工作中我们需要成为一个有态度的设计师,主导自己的设计使其发挥更大的价值。个人态度分为性格层面和习惯层面的态度,下面分别梳理一下。

从性格层面体现自己的态度:在对接需求的时候,我们不能是一只温顺的小羔羊,被人牵着走并任人宰割。要有自己的态度,敢于为自己的设计发声,有自己坚守的原则,通过案例和经验进行引导需求方的选择。坚持不一定可以改变别人的选择,但是我们做到了专业设计师的态度。

从习惯层面体现自己的态度:设计能力都是可以学习培养的,养成良好的习惯至关重要,对细节的态度、设计质量的态度、提案演示的态度、沟通对接的态度等等。养成一个好的设计习惯,就算生活中也应如此,态度可以决定你能把一件事做到何种深度,希望我们都可以成为一个有态度的设计师。

坚持总结了吗?

优秀的设计师总能善于总结,总结可以对自己的知识体系进行梳理和检索,查漏补缺。总结个人分为两个方向,一是对自己的经验进行总结梳理,把经验形成可传递的方法论;二是对优秀的案例和资源进行梳理总结,把他人的优秀方法论转化为自己可吸收的轨迹。

有句话叫为了写作而看书,通过输出倒逼输入,主动吸收的通常转化和记忆都更强。除了专业相关的总结以外,我们也可以是一些读书笔记、日常感悟等,锻炼自己写作的能力和养成习惯。以前我们一个学员有记录生活感悟和写读书笔记的习惯,一年能坚持输出十万多字的随记,这个习惯值得学习。坚持几年后可以看出她在各方面的理解能力都非常好,也善于将自己的经验进行总结,带来的结果自然是得到了很多机会去更好的发挥自己的价值。

写作与你的专业能力不一定强关联,不要以经验不足而自我放弃,这只是一个习惯的培养。只有去尝试了才知道那里不足,如何去优化,下次应该如何写才能更合理。希望从今天以后,你可以坚持写作总结的习惯。

自己是否够专业?

一切的自信和态度都是建立在自我专业的基础上,特别是设计师,如果自身不够专业如何说服别人。要时刻质问自己是否依然保持专业性,低姿态面对学习,时刻评估和提升自己。

不同阶段关注的焦点不同,刚开始我们可能在意技能操作层面,执行能力为第一保障。随着工作经验的积累,我们的关注面更综合,有时候也会感觉学得越多发现自己越是什么都不会。如果在职场中一直都没有新的知识和认知丰富自己,会逐渐变得被动,很难突破自己的瓶颈期。要保持学习的动力和日常输出的自我驱动力,不要温水煮青蛙,把自己陷入被动的状态。

所以,时刻问问自己,我是否够专业。

总结

反思自己是为了让自己时刻保持清醒,作为设计师我们需要有态度、要自信、够专业;除了专业层面我们还需要反思更多问题,有自己的短期目标、能管理好时间、培养更多兴趣爱好等等。不断丰富自己的生活状态,可以带给自己更多乐趣,把有限的时间过得更合理。

希望本文可以抛砖引玉,大家都可以反思自己面临的问题,提升自己的综合素质和能力。

文章来源:优设

如何做好数据可视化设计?

资深UI设计者

本文的英文原标题是「10 Rules of Dashboard Design」,其中 Dashboard 如果翻译成仪表盘的话,总觉得不大容易理解,所以我在这里把它翻译为数据可视化。数据展示方面的设计,相信大家会经常用到,这篇文章有很多简单直接,立马就能用上的干货,一起来学习吧!

为什么数据可视化设计非常重要?

数据可视化的目的是以一种用户更容易理解的形式呈现复杂信息。

一个优秀的数据可视化界面包含以下几个关键要素:

  • 清晰:一个好的数据可视化界面一定是能够清晰的展现用户所需要的信息。当用户看到界面内容时,应该能在 5 秒内了解到它的用途,而不是花费至少几分钟才能理解各个数据的含义。
  • 有意义: 一个有用的数据可视化界面上的每一条信息都应该是有意义的。这些有意义的信息能准确传达设计师想要表达的内容。每一条数据的背后,用户都是可以读懂的。
  • 一致性:优秀的数据可视化界面,会有一套非常严谨一致的版面。这里的一致性需要考虑到布局,结构和内容。
  • 简单: 复杂的界面违背了数据可视化设计的初衷。如果一个信息呈现不够简单直接,那么肯定是在设计上出现了问题。

如何设计一个数据可视化界面?

数据可视化界面设计最重要的步骤是需要了解目标用户是谁,能为他们提供什么价值。了解目标受众的知识背景和理解水平能帮助你做出对他们有价值的设计。

在了解目标用户时,有必要了解受众感兴趣的数据类型。

「专注于用户的需求,更容易产生他们喜欢使用的结果。」

目标用户级别可能会在一级和另一级之间变化,这是一个挑战性的点。与其他任何设计项目一样,可以细分受众并将信息相应地分为基本内容和高级内容。

在界面中表示一组信息有多种方法,选择正确的数据指标是设计数据可视化的另一个关键元素。这也与目标用户的偏好有关,即他们希望看到什么样的信息。

「根据需要设计数据可视化界面,为不同的业务使用不同类型的展示方式。」

下面是为目标用户设计数据可视化界面时需要考虑的一些重要规则。

1. 区分层级

一个常见的错误就是设计师没有对信息区分层级,所有的内容看起来都一样重要。

可以尝试使用组件的大小和位置来区分数据的层次结构。

  • 通过定义信息层级,让用户清楚什么是最重要的
  • 在左上角显示更重要的信息,沿着对角线方向,信息的重要程度应该依次减弱,右下角的信息重要性最弱
  • 还可以将信息划分为不同类别,并在不同的视图中显示它们

2. 简单易懂

数据可视化的真正目的是用一种更方便理解,更简单的形式来传达复杂信息。

  • 不要放一些大多数用户都难以理解的信息
  • 使用更少的列来显示信息
  • 删除冗余内容来减少混乱

3. 一致性

使用一致性布局设计的数据可视化界面看起来更好。

  • 为了使界面更容易阅读,可以在信息组之间使用类似的可视化效果。
  • 把相关的信息放的更近一些
  • 对相关内容进行可视化分组

4. 临近原则

在界面中把相近的信息放在一起可以帮助用户快速理解。

  • 把相关的信息放的更近一些
  • 不要将相关信息分散在界面上
  • 对相关内容进行可视化分组

想更深入了解接近原则,看这篇:

5. 对齐

可视化组件元素需要在视觉上对齐,并保持视觉平衡。

  • 将可视化组件元素在视觉上进行对齐,可以将界面组织的更好
  • 尝试将组件元素进行网格布局设计
  • 不对齐的界面会给用户带来糟糕的体验

6. 留白

留白是为了让界面有呼吸感,它使得用户在使用你的界面时能够有喘息的空间。

  • 当用户查看需要的信息时,界面中的留白能够吸引用户的目光,提升用户体验。
  • 减少留白会使用户的界面变得混乱
  • 使用留白能对信息进行可视化分组

△ 留白太少简直就是在鼓励你的用户尽快离开

7. 颜色

使用有效的配色方案来吸引用户的注意力,帮助他们轻松地浏览信息。

  • 仔细选择颜色,目标是使内容易于阅读
  • 使用大对比度来显示背景上的视觉元素

△ 避免使用低对比度和低效的渐变

8. 字体

标准字体是可视化界面中的最佳字体,除非有特别的理由,一般不要用其他字体。

  • 使用标准字体,因为它们更容易阅读和扫描
  • 特别和美术字体可能看起来不错,但很难理解
  • 避免所有的大写字母文字,因为它很难阅读,人类的大脑需要时间来消化它。
  • 使用合适的字体大小和风格,有效地传达信息

△ 不要使用影响可读性的字体

9. 数字排版

显示精度超过要求的数字使它们难以阅读和理解。

  • 必要时使用整数,因为长数字会使用户混淆
  • 省去不必要的信息
  • 让用户能够容易地比较简单的差异细节

10. 标签

使用能够快速有效地向用户传达所需信息的标签。

  • 避免使用带旋转的标签,因为很难阅读
  • 尽可能的使用标准的缩写

△ 避免旋转标签

总结

数据可视化旨在节省时间和精力,将复杂和抽象的数据以更简单的形式表示,目的是以用户能够理解的方式将关键信息传达给他们,确保自己理解用户所需,并给他们需要的信息。

文章来源:优设

HTML 知识点总结

seo达人

一、HTML简介

HTML 俗称网页,就是我们打开浏览器访问任何一个网站所看到的都是由 HTML 页面提供的(或者与 HTML 技术相关的内容提供)。



HTML 全称为 HyperText Markup Language,被译为超文本标记语言。所谓的超文本就是不仅只有文本内容,包括链接、音频和视频、图像等内容。所谓标记语言,简单来说就是元素。也就是说,HTML 提供一系列的元素来构成一个页面中最基础的内容。



HTML 是一种描述 Web 文档结构和语义的语言,它由元素组成,每个元素可以有一些属性或文本。



当你保存 HTML 文件时,既可以使用 .htm 也可以使用 .html 文件后缀。



编写HTML代码的工具:



记事本

sublime text

hbuilder

webstorm

vscode

pycharm – python代码 也可以写html代码

二、第一张网页

一个页面有且只有一个根标签是html, 元素一般包含 和 两个元素,也就是 HTML 的头部和主体内容。



<html>

    <head>

        <title>网页的标题</title>

    </head>

    <body>

        <!-- 这是一个文本框 -->

        <input type="text"></input>

    </body>

</html>

1

2

3

4

5

6

7

8

9

HTML标签:由尖括号包围:

成对出现: <p></p> ,即开标签和闭标签.

属性: 定义在开标签中,如input标签中的type属性

简写: 开闭标签之间的内容是标签体,如果标签体为空,则可以简写:

注释: 是注释标签

HTML文档在浏览器中被解释运行,展示的不是源码而是渲染之后的效果

三、HTML头部

< head > 元素包含了当前 HTML 页面的所有头部元素,在 < head > 元素内必须定义 < title > 元素,还可以定义 < script >、< link > 等元素。



这些 HTML 的头部元素定义了当前页面的标题、编码、使用的脚本或样式等信息。



1、title元素

< title >元素定义了当前HTML页面的标题



<title>百度一下,你就知道</title>

1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AGycI1jQ-1578023422160)(HTML.assets/1530668619163.png)]



2、meta元素

元素提供了 HTML 页面的元数据(Metadata),元数据是存储数据的信息。

通常用于设置页面的编码、描述、关键词、作者等信息。



元素不会显示在页面中,但会被浏览器解析。

2.1 定义网页内容的编码格式

<meta charset="utf-8">

1

2.2 定义HTML页面关键字,用于搜索引擎

<meta name="keywords" content="HTML,CSS,XML,JavaScript">

1

2.3 定义HTML页面描述

<meta name="description" content="百知教育IT培训,java培训,PHP培训,UI培训,H5培训,linux培训,大数据培训,Python人工智能,IT行业培训领跑者,高薪就业 ">

1

2.4 定义HTML页面作者

<meta name="author" content="百知教育">

1

四、HTML主体

1、body元素

标签定义文档的主体。 元素包含文档的所有内容(比如文本、超链接、图像、表格和列表等等)。body元素中包含的内容(子标签)是用户可以看到的。

一个 HTML 文件只能存在一个 标签。



2、HTML元素基本构成

2.1 元素类型

HTML 是标记语言,所谓标记就是指页面中的元素(元素也可以叫做标签)。一个完整的 HTML 页面都是由众多不同的元素组成的。



闭合元素:必须包含开始元素和结束元素,如果没有结束元素会产生意料之外的错误。



<title>百知教育Python人工智能培训</title>

<p>这是一个段落标签</p>                     <!--该标签的作用是表示一个段落,会有换行--> 

1

2

空元素:也可以叫做单元素,只需要开始元素,而不需要结束元素。



<meta name="description" content="渥瑞达Web前端培训">



<br/>            <!-- 换行 -- >   

1

2

3





2.2 HTML属性

属性是设置在HTML元素中的,用于为元素添加附加信息。属性一般都是定义在开始元素中,并且是以“名称/值”对出现



 <input type="text" />   <!-- 这是一个文本框 -->



 <input type="button" value="点我" />   <!-- 这是一个按钮 -->

1

2

3

五、HTML文本

1、标题元素

HTML 提供了 6 个标题元素,由大到小依次为 <h1> 到 <h6>



<h1>这是一级标题</h1>



<h2>这是二级标题</h2>



<h3>这是三级标题</h3>



<h4>这是四级标题</h4>



<h5>这是五级标题</h5>



<h6>这是六级标题</h6>

1

2

3

4

5

6

7

8

9

10

11

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gpmb9nTx-1578023422163)(HTML.assets/1530670234313.png)]



2、段落

元素定义段落



: 浏览器会自动地在段落的前后添加空行 ```html

这是一个段落.                

1

这是另一个段落.



注意: 在html中手动换行无效<br />
<br />
3、换行<br />
元素定义的段落内容是不会自动换行的,如果换行需要使用 br 元素<br />
<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。<br />
<span style="white-space:pre;"> </span>&lt;br&gt;<br />
&nbsp; &nbsp; 人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志。<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LbaNYf1L-1578023422165)(HTML.assets/1530670731312.png)]<br />
<br />
4、水平线<br />
在浏览器中显示一条水平线(分隔线)效果。<br />
属性:size=“10” color=“red” width=“100px 或者 50%” align=“left/right/center”<br />
<br />
10像素高 颜色 宽度 对齐方式<br />
<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。<br />
<span style="white-space:pre;"> </span>&lt;br&gt;<br />
<span style="white-space:pre;"> </span>&lt;hr size="1" width="100%" color="red"/&gt;<br />
<span style="white-space:pre;"> </span>人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志。<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nK6UOf0r-1578023422166)(HTML.assets/1530671029915.png)]<br />
<br />
5、文本修饰<br />
5.1 粗体字<br />
这是一段正常未加粗的文本内容.<br />
&lt;br&gt;<br />
&lt;b&gt;这是一段加粗之后的文本内容.&lt;/b&gt;<br />
&lt;br&gt;<br />
&lt;strong&gt;粗体--着重强调&lt;/strong&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Va3GdgFK-1578023422168)(HTML.assets/1530672074778.png)]<br />
<br />
5.2 斜体字<br />
&lt;i&gt;这是一段斜体的文本内容.&lt;/i&gt;<br />
1<br />
5.3 下划线<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>证明人:&lt;u&gt;百知教育&lt;/u&gt;<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJY0EaxC-1578023422169)(HTML.assets/1530671768110.png)]<br />
<br />
5.4 删除线<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>&lt;del&gt;这是一段要被删除的文字&lt;/del&gt;<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X4f2bCuN-1578023422172)(HTML.assets/1530671905293.png)]<br />
<br />
5.5 下标文字<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>H&lt;sub&gt;2&lt;/sub&gt;O<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E8DEONkQ-1578023422179)(HTML.assets/1530672009385.png)]<br />
<br />
5.6 上标文字<br />
32 = 9<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTEZhEkv-1578023422180)(HTML.assets/1530672138124.png)]<br />
<br />
5.7 小号字<br />
正常文字<br />
&lt;small&gt;小号文字&lt;/small&gt;<br />
1<br />
2<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6KckvEOc-1578023422182)(HTML.assets/1530672191397.png)]<br />
<br />
5.8 大号字<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>&lt;small&gt;小号文字&lt;/small&gt;<br />
<span style="white-space:pre;"> </span>正常文字<br />
<span style="white-space:pre;"> </span>&lt;big&gt;大号文字&lt;/big&gt;<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCJaBbhq-1578023422184)(HTML.assets/1530672254286.png)]<br />
<br />
六、图像与链接<br />
1、图像元素<br />
&nbsp;元素引入外部图像, 元素是空元素。<br />
<br />
1.1 src属性<br />
<span style="white-space:pre;"> </span>src 属性(必需),表示引入图像的 URL 地址。<br />
<br />
&lt;img src="images/img.png"&gt;<br />
1<br />
图像可以是本地地址,也可以是网络地址。<br />
<br />
&lt;img src="https://himg.bdimg.com/sys/portrait/item/c8764d725f6c6963656e6365g872fc876872f.jpg"&gt;<br />
1<br />
1.2 图像大小<br />
width 和 height 属性用于设置图像显示的宽度和高度。<br />
<br />
&lt;img src="img.png" width="350" height="233" /&gt;<br />
1<br />
1.3 图像定位(了解)<br />
align 属性用于设置图像显示的位置。<br />
<br />
left:水平方向居左。<br />
right:水平方向居右。<br />
top:垂直方向居上。<br />
bottom:垂直方向居下。<br />
middle:居中。<br />
&lt;img src="img.png" width="350" height="233" align="right" /&gt;<br />
1<br />
1.4 alt属性<br />
&lt;img src="abcdef.png" alt="无法加载图片"/&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evR6GiGo-1578023422185)(HTML.assets/1530673186561.png)]<br />
<br />
2、超链接<br />
2.1 用法<br />
href 属性(必需),表示指定跳转的 URL 地址<br />
<br />
&lt;a href="http://www.baizhiedu.com"&gt;百知教育&lt;/a&gt;<br />
1<br />
2.2 打开方式: target 属性<br />
元素的 target 属性用于设置链接的打开方式。<br />
<br />
_blank:在新窗口打开链接。<br />
_self:在当前窗口打开链接。<br />
&lt;a href="http://www.baizhiedu.com" target="_blank"&gt;百知教育&lt;/a&gt;<br />
1<br />
2.3 锚点<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>&lt;a name="postion"&gt;&lt;/a&gt;&nbsp; &nbsp; &nbsp; &nbsp;&lt;!-- 定义锚点 --&gt;<br />
<span style="white-space:pre;"> </span>&lt;!-- 页面其它内容<br />
<span style="white-space:pre;"> </span>...<br />
<span style="white-space:pre;"> </span>...<br />
<span style="white-space:pre;"> </span>...<br />
<span style="white-space:pre;"> </span> --&gt;<br />
<span style="white-space:pre;"> </span>&lt;a href="#postion"&gt;定位到postion的位置&lt;/a&gt;&nbsp; &lt;!-- 链接到锚点 --&gt;<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
2.4 回到顶部的空链接<br />
&lt;body&gt;<br />
<span style="white-space:pre;"> </span>&lt;!-- 页面其它内容<br />
<span style="white-space:pre;"> </span>...<br />
<span style="white-space:pre;"> </span>...<br />
<span style="white-space:pre;"> </span>...<br />
<span style="white-space:pre;"> </span> --&gt;<br />
<span style="white-space:pre;"> </span>&lt;a href="#"&gt;回到顶部&lt;/a&gt;&nbsp; &nbsp;&lt;!-- 回到顶部 --&gt;<br />
&lt;/body&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
七、列表<br />
1、无序列表<br />
1.1 定义无序列表<br />
元素定义无序列表,用于列出页面上没有特定次序的条目。<br />
&lt;ul&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;北京市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;上海市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;重庆市&lt;/li&gt;<br />
&lt;/ul&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8MFYHQJB-1578023422187)(HTML.assets/1530684550787.png)]<br />
<br />
1.2 type属性<br />
定义列表的项目符号的类型<br />
<br />
disc:实心圆,默认值。<br />
circle:空心圆。<br />
square:实心矩形。<br />
&lt;ul type="circle"&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;北京市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;上海市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;重庆市&lt;/li&gt;<br />
&lt;/ul&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCwhGGdG-1578023422188)(HTML+CSS_pic/1530684771419.png)]<br />
<br />
2、有序列表<br />
2.1 定义有序列表<br />
&lt;ol&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;北京市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;上海市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;重庆市&lt;/li&gt;<br />
&lt;/ol&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofA5U8WE-1578023422190)(HTML.assets/1530684878880.png)]<br />
<br />
2.2 type属性<br />
1:数字值,默认值。<br />
a 或 A:小写或大写字母。<br />
i 或 I:小写或大写罗马数字。<br />
&lt;ol type="a"&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;北京市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;上海市&lt;/li&gt;<span style="white-space:pre;"> </span><br />
<span style="white-space:pre;"> </span>&lt;li&gt;重庆市&lt;/li&gt;<br />
&lt;/ol&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3l1LPm9P-1578023422191)(HTML.assets/1530685009075.png)]<br />
<br />
3、自定义列表<br />
&lt;dl&gt;<br />
&nbsp; &nbsp; &lt;dt&gt;北京&lt;/dt&gt;<br />
&nbsp; &nbsp; &lt;dd&gt;海淀&lt;/dd&gt;<br />
&nbsp; &nbsp; &lt;dd&gt;昌平&lt;/dd&gt;<br />
&nbsp; &nbsp; &lt;dd&gt;朝阳&lt;/dd&gt;<br />
&nbsp; &nbsp; &lt;dt&gt;广东&lt;/dt&gt;<br />
&nbsp; &nbsp; &lt;dd&gt;广州&lt;/dd&gt;<br />
&nbsp; &nbsp; &lt;dd&gt;深圳&lt;/dd&gt;<br />
&nbsp; &nbsp; &lt;dd&gt;东莞&lt;/dd&gt;<br />
&lt;/dl&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
八、表格<br />
1、表格使用<br />
表格由 &lt; table &gt; 标签来定义。每个表格均有若干行(由 标签定义),每行被分割为若干单元格(由 标签定义)。<br />
<br />
&lt;table&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JL9Sjv2t-1578023422196)(HTML.assets/1530685462072.png)]<br />
<br />
2、表格属性<br />
属性名称<span style="white-space:pre;"> </span>描述<br />
width 和 height<span style="white-space:pre;"> </span>设置表格的宽度和高度<br />
align<span style="white-space:pre;"> </span>设置表格的对齐方式<br />
border<span style="white-space:pre;"> </span>设置表格的边框宽度<br />
bgcolor<span style="white-space:pre;"> </span>设置表格的背景颜色<br />
cellpadding<span style="white-space:pre;"> </span>设置内边距(单元格边框与内容之间的距离)<br />
cellspacing<span style="white-space:pre;"> </span>设置外边距(单元格之间的距离)<br />
bordercolor<span style="white-space:pre;"> </span>边框颜色<br />
&lt;table border="1" cellspacing="0" bgcolor="gray" bordercolor="red" width="300px" height="100px" align="left"&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3bucqAYt-1578023422198)(HTML.assets/1530685943196.png)]<br />
<br />
3、tr元素<br />
属性名称<span style="white-space:pre;"> </span>值<span style="white-space:pre;"> </span>描述<br />
align<span style="white-space:pre;"> </span>right、left、center<span style="white-space:pre;"> </span>左右对齐方式<br />
valign<span style="white-space:pre;"> </span>top 、middle 、bottom<span style="white-space:pre;"> </span>垂直对齐方式<br />
bgcolor<span style="white-space:pre;"> </span>rgb(xxx,xxx,xxx)、colorName<span style="white-space:pre;"> </span>背景颜色<br />
&lt;table border="1" cellspacing="0" width="500px" height="100px"&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr align="center"&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr align="right" valign="top" bgcolor="blue"&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-737Gkc1r-1578023422199)(HTML.assets/1530695272576.png)]<br />
<br />
4、td元素<br />
元素是定义表格的数据单元格。<br />
属性名称<span style="white-space:pre;"> </span>值<span style="white-space:pre;"> </span>描述<br />
align<span style="white-space:pre;"> </span>right、center、left<span style="white-space:pre;"> </span>设置水平对齐方式<br />
valign<span style="white-space:pre;"> </span>top、middle、bottom<span style="white-space:pre;"> </span>设置垂直对齐方式<br />
width和height<span style="white-space:pre;"> </span>pixels 、%<span style="white-space:pre;"> </span>设置单元格的宽和高<br />
colspan和rowspan<span style="white-space:pre;"> </span>number<span style="white-space:pre;"> </span>设置单元格的跨列和跨行数量<br />
bgcolor<span style="white-space:pre;"> </span>rbg()、colorName<span style="white-space:pre;"> </span>单元格背景色<br />
&lt;table border="1" cellspacing="0" width="500px" height="100px"&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td align="center"&gt;第1行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td valign="top"&gt;第1行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td width="300px"&gt;第2行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td bgcolor='red'&gt;第2行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcLpE6Ii-1578023422201)(HTML.assets/1530697152946.png)]<br />
<br />
合并行和列<br />
<br />
&lt;table border="1" cellspacing="0" width="500px" height="200px"&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td colspan="2"&gt;第2行,第1列&lt;/td&gt;<span style="white-space:pre;"> </span>&nbsp;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第3行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td rowspan="2"&gt;第3行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第4行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z6ythYQ4-1578023422203)(HTML.assets/1530697074613.png)]<br />
<br />
5、表格标题caption<br />
元素用于定义表格的标题,必须紧随 元素之后,且只能对每个表格定义一个标题。<br />
&lt;table border="1" cellspacing="0" width="500px" height="100px"&gt;<br />
<span style="white-space:pre;"> </span>&lt;caption&gt;表格标题&lt;/caption&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第1行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第1列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;第2行,第2列&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3X7gcxe-1578023422204)(HTML.assets/1530697414224.png)]<br />
<br />
6、表头thead、tbody表主体、tfoot表脚注<br />
标签定义表格的表头。<br />
&lt;table border="1" cellspacing="0" width="500px" height="100px"&gt;<br />
<span style="white-space:pre;"> </span>&lt;caption&gt;信息&lt;/caption&gt;<br />
<span style="white-space:pre;"> </span>&lt;thead&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;th&gt;姓名&lt;/th&gt; &lt;!-- 定义表头单元格 会加粗显示 --&gt;&nbsp;&nbsp;<br />
<span style="white-space:pre;"> </span>&lt;th&gt;性别&lt;/th&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;/thead&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;Tom&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;boy&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;tr&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;Linda&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;td&gt;girl&lt;/td&gt;<br />
<span style="white-space:pre;"> </span>&lt;/tr&gt;<br />
&lt;/table&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
tfoot 元素应该与 thead 和 tbody 元素结合起来使用。 (比较少用)<br />
<br />
九、表单<br />
1、form 元素<br />
表单用标签描述,表单内部可以有多个子标签,用来完成用户信息的收集,并发送请求给服务器。<br />
<br />
属性:action=“xxx” method=“get/post”<br />
<br />
请求地址 请求方式<br />
<br />
http://www.baidu.com?uname=abc&amp;passwd=123<br />
&lt;form action="http://www.baidu.com" method="get"&gt;<br />
<span style="white-space:pre;"> </span>username:&lt;input type="text" name="uname" id="uname115"/&gt;&lt;br/&gt;&nbsp; # abc<br />
<span style="white-space:pre;"> </span>password:&lt;input type="text" name="passwd" id="pwd115"/&gt;&lt;br/&gt;&nbsp; &nbsp;# 123<br />
<span style="white-space:pre;"> </span>&lt;input type="submit" value="提交" id="sub115"/&gt;<br />
&lt;/form&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
2、表单元素<br />
元素有很多不同类型,根据不同的 type 属性来决定。<br />
<br />
用户名:&lt;input type="text" name="txt" /&gt;&nbsp; &lt;!-- text表示文本框--&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nLWfznhF-1578023422206)(HTML.assets/1530757524606.png)]<br />
<br />
type属性:<br />
类型名称<span style="white-space:pre;"> </span>描述<br />
text<span style="white-space:pre;"> </span>文本输入框<br />
password<span style="white-space:pre;"> </span>密码框<br />
radio<span style="white-space:pre;"> </span>单选按钮<br />
checkbox<span style="white-space:pre;"> </span>复选框<br />
button<span style="white-space:pre;"> </span>按钮<br />
submit<span style="white-space:pre;"> </span>提交按钮<br />
reset<span style="white-space:pre;"> </span>重置按钮<br />
file<span style="white-space:pre;"> </span>文件域<br />
name属性 :标签的普通的属性,相当于别名,是每个输入控件的重要属性==请求参数名。<br />
<br />
id属性 : 标签的唯一标识名,不能重复。<br />
<br />
value属性 :标签的普通属性,是中药属性==请求参数值。<br />
<br />
2.1 文本框<br />
用户名:&lt;input type="text" name="txt" /&gt;&nbsp; &lt;!-- text表示文本框--&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6IYvY3p-1578023422207)(HTML.assets/1530758139189.png)]<br />
<br />
用户名:&lt;input type="text" name="pwd" value="Mr_lee" maxlength="10" readonly="readonly" /&gt;<br />
1<br />
2.2 密码框<br />
密码:&lt;input type="password" name="pwd" value="123456" /&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Nk9Lys0-1578023422208)(HTML.assets/1530758213655.png)]<br />
<br />
2.3 单选按钮<br />
&lt;!-- name:值必须一样,value:表示提交表单时的值 checked:默认选中--&gt;<br />
&lt;input type="radio" name="sex" value="1"&gt;男&nbsp; &nbsp; &nbsp; &nbsp;<br />
&lt;input type="radio" name="sex" value="0" checked="checked"&gt;女<br />
1<br />
2<br />
3<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XP3i844U-1578023422210)(HTML.assets/1530758647865.png)]<br />
<br />
2.4 复选框<br />
&lt;input type="checkbox" name="course" value="Mysql"&gt;Mysql<br />
&lt;input type="checkbox" name="course" value="HTML"&gt;HTML<br />
&lt;input type="checkbox" name="course" value="Linux"&gt;Linux<br />
&lt;input type="checkbox" name="course" value="Django"&gt;Django<br />
1<br />
2<br />
3<br />
4<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5mPRrZ3-1578023422211)(HTML.assets/1530758924865.png)]<br />
<br />
2.5 按钮<br />
&lt;input type="button" name="btn" value="点我"&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ozchiqAW-1578023422214)(HTML.assets/1530759170832.png)]<br />
<br />
2.6 提交按钮<br />
&lt;input type="submit" name="sub_btn" value="提交"&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kIOKVxLo-1578023422215)(HTML.assets/1530759206331.png)]<br />
<br />
2.7 重置按钮<br />
&lt;input type="reset" name="set_btn" value="重置"&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cG06duKx-1578023422217)(HTML.assets/1530759252821.png)]<br />
<br />
2.8 文件域<br />
<br />
&lt;input type="file"&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHkQp3fZ-1578023422219)(HTML.assets/1530759404657.png)]<br />
<br />
2.9 文本域<br />
&lt;textarea name="txtInfo" rows="4" cols="20"&gt;aa&lt;/textarea&gt;<br />
1<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-406qSTUX-1578023422221)(HTML.assets/1530759866508.png)]<br />
<br />
3、下拉选框<br />
选择课程:<br />
&lt;select name="course"&gt;<br />
<span style="white-space:pre;"> </span>&lt;option value="1"&gt;Java&lt;/option&gt;<br />
<span style="white-space:pre;"> </span>&lt;option value="2" selected="selected"&gt;C++&lt;/option&gt;<br />
<span style="white-space:pre;"> </span>&lt;option value="3"&gt;PHP&lt;/option&gt;<br />
&lt;/select&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b9rrRffX-1578023422222)(HTML.assets/1530759604602.png)]<br />
<br />
4、表单综合实例<br />
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9sgjtXvT-1578023422223)(HTML.assets/1530759682014.png)]<br />
<br />
十、特殊符号<br />
显示结果<span style="white-space:pre;"> </span>描述<span style="white-space:pre;"> </span>实体名称<br />
空格<span style="white-space:pre;"> </span>&nbsp;<br />
&lt;<span style="white-space:pre;"> </span>小于号<span style="white-space:pre;"> </span>&lt;<br />
&gt;<span style="white-space:pre;"> </span>大于号<span style="white-space:pre;"> </span>&gt;<br />
&copy;<span style="white-space:pre;"> </span>版权(copyright)<span style="white-space:pre;"> </span>&copy;<br />
&reg;<span style="white-space:pre;"> </span>注册商标<span style="white-space:pre;"> </span>&reg;<br />
™<span style="white-space:pre;"> </span>商标<span style="white-space:pre;"> </span>™<br />
ile"&gt;<br />
<br />
<br />
[外链图片转存中...(img-mHkQp3fZ-1578023422219)]<br />
<br />
##### 2.9 文本域<br />
<br />
```html<br />
&lt;textarea name="txtInfo" rows="4" cols="20"&gt;aa&lt;/textarea&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
[外链图片转存中…(img-406qSTUX-1578023422221)]<br />
<br />
3、下拉选框<br />
选择课程:<br />
&lt;select name="course"&gt;<br />
<span style="white-space:pre;"> </span>&lt;option value="1"&gt;Java&lt;/option&gt;<br />
<span style="white-space:pre;"> </span>&lt;option value="2" selected="selected"&gt;C++&lt;/option&gt;<br />
<span style="white-space:pre;"> </span>&lt;option value="3"&gt;PHP&lt;/option&gt;<br />
&lt;/select&gt;<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
[外链图片转存中…(img-b9rrRffX-1578023422222)]<br />
<br />
4、表单综合实例<br />
[外链图片转存中…(img-9sgjtXvT-1578023422223)]<br />
<br />
十、特殊符号<br />
显示结果<span style="white-space:pre;"> </span>描述<span style="white-space:pre;"> </span>实体名称<br />
空格<span style="white-space:pre;"> </span>&nbsp;<br />
&lt;<span style="white-space:pre;"> </span>小于号<span style="white-space:pre;"> </span>&lt;<br />
&gt;<span style="white-space:pre;"> </span>大于号<span style="white-space:pre;"> </span>&gt;<br />
&copy;<span style="white-space:pre;"> </span>版权(copyright)<span style="white-space:pre;"> </span>&copy;<br />
&reg;<span style="white-space:pre;"> </span>注册商标<span style="white-space:pre;"> </span>&reg;<br />
™<span style="white-space:pre;"> </span>商标<span style="white-space:pre;"> </span>™<br />
<br />
<br />

Vue 数据持久化

前端达人

方法一:使用 localStorage 存储数据

window.localStorage.setItem(key,value)

 

方法二:使用 vuex-persistedstate插件

vuex 存在一个痛点,就是刷新以后vuex里面存储的state就会被浏览器释放掉(state都是存储在内存中的)。

办法:

通过vuex-persistedstate插件,实现将数据存储到本地。

1.实现

import createPersistedState from 'vuex-persistedstate'
export default new Vuex.Store({
    state:{},
    getters:{},
    actions:{},
    mutations:{},
    modules:{},
    plugins: [createPersistedState()]  //加上这个就可以了 //里面设置需要缓存的内容
})

API:  https://www.npmjs.com/package/vuex-persistedstate

方法三: 使用vue-cookie插件

cookie 可以设置过期时间

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex)
var VueCookie = require('vue-cookie');

export default new Vuex.Store({
  state: {
    token: VueCookie.get('token')
  },
  mutations: {
    saveToken(state, token) {
      state.token = token;
      // 设置存储
      VueCookie.set('token', token, { expires: '30s' });
    }
  },
  actions: {

  }
})

简单有效的JavaScript图片预加载效果

seo达人

首先编写一个简单的容器:



<style>

content {

    width: 600px;

    height: 100vh;

    overflow-y: auto;

}

 

content ul {

    width: 100%;

}

 

content ul li {

    width: 50%;

    float: left;

    margin: 20px 0;

    list-style: none;

}

 

content ul li p {

    width: 200px;

    height: 200px;

    overflow: hidden;

    margin: 0 auto;

    border: 1px solid #999999;

}

 

content ul li p img {

    width: 100%;

    display: block;

    position: relative;

    top: 50%;

    transform: translateY(-50%);

}

</style>

<div id="content">

   <ul>

   </ul>

</div>

然后,编写js代码:



let imageArr = [{

    img_url: "http://www.lexilisi.com/Uploadpth/c45cc952-dcb7-493c-a171-357d1b820b37.png",

}, {

    img_url: "http://xiaobanyou.com/static/images/xby_user_3.jpg",

}, {

    img_url: "http://xiaobanyou.com/static/images/xby_user_4.jpg",

}, {

    img_url: "http://xiaobanyou.com/static/images/xby_user_5.jpg",

}, {

    img_url: "http://xiaobanyou.com/static/images/xby_user_6.jpg",

}, {

    img_url: "http://xiaobanyou.com/static/images/xby_user_799.jpg",

}];

const lazyLoad = (src) => {

    //加载loading动画

    let _image = new Image();

    _image.src = './loading.gif';

    //加载需要展示的图片

    let image = new Image();

    image.src = src;

    //加载成功,将loading图片路径改成对应的真实路径

    image.onload = _ => image.src = .currentTarget.src;

    //加载失败,将loading图片路径改成默认图片路径

    image.onerror = _ => _image.src = './error.png';

    return _image;

}

let _content = document.getElementById('content');

let _ul = _content.getElementsByTagName('ul');

imageArr.forEach(value => {

    let _li = document.createElement('li');

    let _p = document.createElement('p');

    let _image = lazyLoad(value.img_url);

    _p.appendChild(_image);

    _li.appendChild(_p);

    _ul[0].appendChild(_li);

})

展示效果如图:







每个图片都是异步加载,加载完成后:







 






日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档