首页

vue-router的两种模式的区别

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

1、大家都知道vue是一种单页应用,单页应用就是仅在页面初始化的时候加载相应的html/css/js一单页面加载完成,不会因为用户的操作而进行页面的重新加载或者跳转,用javascript动态的变化html的内容

优点: 良好的交互体验,用户不需要刷新页面,页面显示流畅, 良好的前后端工作分离模式,减轻服务器压力,
缺点: 不利于SEO,初次加载耗时比较多

2、hash模式
vue-router默认的是hash模式—使用URL的hash来模拟一个完整的URL,于是当URL改变的时候,页面不会重新加载,也就是单页应用了,当#后面的hash发生变化,不会导致浏览器向服务器发出请求,浏览器不发出请求就不会刷新页面,并且会触发hasChange这个事件,通过监听hash值的变化来实现更新页面部分内容的操作

对于hash模式会创建hashHistory对象,在访问不同的路由的时候,会发生两件事:
HashHistory.push()将新的路由添加到浏览器访问的历史的栈顶,和HasHistory.replace()替换到当前栈顶的路由

在这里插入图片描述

在这里插入图片描述

3、history模式

主要使用HTML5的pushState()和replaceState()这两个api来实现的,pushState()可以改变url地址且不会发送请求,replaceState()可以读取历史记录栈,还可以对浏览器记录进行修改

window.history.pushState(stateObject, title, URL)
window.history.replaceState(stateObject, title, URL)

包括back,forward , go 三个方法
history.go(-2);//后退两次
history.go(2);//前进两次
history.back(); //后退
hsitory.forward(); //前进

区别:

前面的hashchange,你只能改变#后面的url片段。而pushState设置的新URL可以是与当前URL同源的任意URL。
history模式则会将URL修改得就和正常请求后端的URL一样,如后端没有配置对应/user/id的路由处理,则会返回404错误

参考于: https://www.cnblogs.com/ceceliahappycoding/p/10552620.html

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

干货分享:如何更好地使用栅格系统

雪涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

栅格系统在UI设计和前端开发中是被应用的很广泛一套体系,但真正能掌握并很好运用的人却不多,一起来学习吧!


环顾身边常见的优秀设计很多都使用了栅格系统,你可能非常赞同在界面中使用栅格系统,但却没有人告诉你应该如何使用它们。


印刷中也会用到栅格,但就本文而言,我主要想讨论的是用于PC和移动设备上的栅格系统设计。


Image title

紫色块放内容


内容块包括文本,图片或者是两者的组合形式,背景颜色实际上不能算是内容元素,除非是作为文本或者图片的容器。


Image title


上图中的粉色块作为栅格中的列,它们构成了内容宽度。一般来说,列宽是不会变的,只是列数会随着设备的不同而变化,比如从PC端的12列变为平板电脑上的8列,然后在移动端变为4列。严格来说,你其实可以定义任何想要的列宽,但大多数情况下的网格列宽都设置在60-80px之间。选择合适的列宽是最重要的,因为它是内容宽度的主要决定因素。


Image title


水槽是在列与列之间的空间。20px是一个常见的尺寸设置,当设计块状或者卡片元素的网格时,这种间距非常重要,比如做照片类设计的时候。有些系统会随着设备宽度的增加而增加水槽的宽度,但也可以保持固定。


Image title


外边距也称为外水槽,是内容宽度之外的空白区域。为了更方便的设计,外边距会随着设备宽度的增加而增加。移动设备的边距通常为20-30px,而在平板电脑和PC端,这个间距通常会差异很大。


下面会介绍一些基本的准则,但要明白在实际设计中其实没有任何硬性的规定。


1. 内容元素必须位于若干列上

其核心思想是内容元素必须位于若干列上,你可以任意分割,比如6x2,3x4,4x3。下面的例子中,我展示了不同分割方式设计的信息卡片。

Image title

Image title

不同栅格设计展示


很棒,这看起来很简单对吧。有的时候,你想把内容严格的套用在栅格布局上,会发现可能不够美观,比如下面的例子。


Image title

Image title



如果我们把内容都放在网格上,文本内容会显得很长,最佳的位置是不严格在任何网格上,这也是可以的,只要理解了整个元素实际上是一个不可见的,更大的容器就行。


Image title

Image title


这也是4x3的布局,只是给了它内部不可见的填充。当把这样的设计稿给到开发时,他们就能很直观的知道这一点,所以这更利于去理解如何实际地分配好内容。


2. 不要将内容元素留在水槽中


Image title

Image title


内容元素应该要在列宽以内,而不能流出在水槽之外,这样会违背栅格化的目的。


3. 只要父级元素对齐栅格,子级可以不完全对齐列

有些时候,你想要将设计和卡片分成两部分,一半是图片,一半是文字。你可能遇到这样尴尬的情况,图片没有完全落在一列上,文字被迫以一种奇怪的方式自适应。其实不用担心,只要“父”容器对齐栅格,这就没有关系。


Image title

Image title

Image title

父子级内容栅格排版示意


4. 除非有意,否则不要把列作为外部填充

所有重要内容都应该与栅格列宽相适应。一开始会觉得奇怪,因为如果不习惯使用网格,可能会把网格宽度当成全部内容区域,所以还需要给它设定一定的内边距。此时外边距就起到了留白的作用,它们充当了内边距。不要在网格内部利用列宽当成内边距,而是要与网格最外面保持对齐,利用网格外的间距来当做留白区域。根据代码实现方式,要么网格内的内容按比例缩放,边距固定,要么外边距与内容同时缩放。


Image title

Image title

正确的内容填充方式和不正确的把栅格当做边距


所以如果有人说“我需要一个1200px宽的设计”,这并不意味着你的设计就是1200px宽,这其实是说设计内容宽度在1200px的画布内,实际内容占位是960px,这样就会有空间留出外边距。


5. 完全出血的元素或纹理图形应该设计在画板边缘,并理解为出血的列网格


Image title

这个页面布局的顶部图片被设计成完全出血


这是一个例外的规则,当背景颜色或者图片在完全出血的情况下,开发同学会把它理解为一个全屏的内容元素。


Image title

Image title


如果设计的是装饰元素之类的内容,可以接受它被裁切掉,此时也可以脱离栅格化的设计。


Image title

Image title

一些图片和文字的出血设计


页眉和页脚有时也有例外,它们不被认为是内容的一部分。有些设计将它们固定在浏览器边缘,有些则喜欢保持内容的宽度,这取决于自身功能和内容的情况。将它们保持在内容宽度内的好处是,当用户在宽屏显示器上看页面时,不需要来回扫视;将它们固定在浏览器上的好处是可以为导航元素提供更多的空间。


栅格化布局如何做到响应式


Image title

图片来源Intuit


Image title


在传统的栅格化系统设计中,列的宽度和水槽的宽度是保持不变的,只是列的“数量”发生变化。为什么要这么处理呢?这是为了让设计更简单。如果一组三张卡片分别放在桌面的四列上,那么在平板电脑上,会显示两张卡片,并把第三张卡片进行折行显示在第二行上。不需要做任何的调整,因为已经知道它位于第四列上了。在手机上,答案也很简单,只需要一张卡片,其他的就会自动堆到下面的行中。如果你愿意,也可以变得有创意,选择只在手机上显示一张卡片,或者做一个水平滚动。这些列的自适应对于代码来说就是很简单的参考。


实际上,web必须呈现任何浏览器的宽度。例如,有一个大显示器,它可以看到1600像素宽的东西,实际上pc端的网页设计是1200px宽,平板电脑上是768px宽,手机是360px宽。所以你会看到一个小于1200px的设计,有大量的留白。但是当你的浏览器再小一个像素,1199px,会发生什么呢?


固定网格


Image title

Image title

固定栅格示意


如果开发那边写了一个固定栅格,当你从桌面缩小到平板电脑,就像是在900px的浏览器宽度时,你不会看到任何变化,设计就像是被剪掉了一样。但当达到768px临界点时,设计马上就会改变,平板电脑上的显示效果就会好起来。如果继续减小这个值,同样的事情也会发生,在到达另一个临界值之前,设计看起来都是不变的。


流动网格


Image title

Image title

流动网格的示例


现在来看看流动网格的特点,当窗口缩小时,内容将动态的发生变化,文本会进行换行,元素也会变窄。然而,这些元素在内容宽度缩小到下一个临界值之前,布局是不会变化的。


所以我想说的是,设计的临界值只是一个更改布局的参考点。这就是为什么列宽和水槽在网格中不会改变的原因,因为我们想让设计师在考虑布局时能够更容易地创建一致性。


混合网格

在实际项目中,使用流动网格和固定网格的组合也是常见的做法。网站通常是流动网格,因为它要去适应各种不同终端的大小。


一些做的很酷的栅格系统

不需要太死板地去坚持传统栅格套路,12、8、4这样的分布,甚至不需要20px的水槽。下面是一些在设计中使用栅格系统做的很棒的设计灵感。


Image title

Invision’s Genome Project


Image title

可以看到,他们的设计故意不去使用任何的水槽,所以看起来是无缝的。


这个网站不仅设计的很好,他们还利用了在设计中展示他们自己的栅格系统来让整体的设计变得更加酷炫。


Dropbox Design


Image title


他们没有设计水槽和外边距,相反,整个页面被分成两半,然后将内容填充到这两部分。


Wordpress


Image title

Wordpress创建账号页面


使用网格的方式取决于你自己。你可以在主要内容部分使用网格,次要内容则不使用。在Wordpress的例子中,页面中间的部分使用栅格化设计,左侧的侧边栏则没有使用。


The Mockup Club


Image title


内容和网格也并不总是从中间开始,对于模型网站,内容在左边也未尝不可。


Instagram


Image title

Image title


我非常确定的说,Instagram的PC端是用上了6列栅格布局。


要点总结

写这篇文章的目的是想提供一些关于如何在响应式设计中使用栅格系统。我知道对于我自己来说,我花了很多年的时间写了大量的代码来理解网格是如何工作的。我在YouYube上看了很多视频,也阅读了大量的文章,但每个人都在关注它为什么重要,却不去注重到底怎么在自己的项目中使用这些原则。


你要做的最好的事情就是从现在开始注意那些优秀设计是如何对齐元素的,你将会开始看到这些模式。为了帮助理解,这里有一些设计系统概述了它们的网格使用:


Google’s Material Design System

Intuit’s Design System

IBM’s Carbon Design System

…And here’s huge list of other systems you can look through


在完全理解了网格的工作原理之后,我已经成为了一名更好的设计师,因为我知道我的设计将如何在临界值之间进行转换。我也可以落地我的设计,使它们能够有一个完美的像素对齐。这样的规范带来了更一致,更简洁的设计,当用户从一个界面到另一个界面流转时,这真的提升了产品的档次。我建议在你的设计中去应用这些网格,并和开发一起,以相同的方式将它们落地,这将会是一个非常不错的进步。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

官方出品!揭秘阿里巴巴APP 8.0 视觉品牌升级背后的设计思路

雪涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

阿里巴巴副总裁、中国内贸事业部总经理汪海在对外分享时提出 1688 已经从信息平台时代进入数字化营销平台时代,让 1688 用户在平台内完成营销和销售一体化的整个商业闭环。1688 的使命也升级成「在数字化经济时代,让天下没有难做的生意!」在全新的业务态势下,为了更好的满足用户需求,阿里巴巴(1688)主客升级势在必行。

首页重要性

首页既是业务分流的中心场景,也是平台卖家判断平台打法,买卖家感知平台价值的重要「门面」。从 UED 专业视角来看,首页是定义 APP 内体验范式及视觉风格的核心场景。

如何改?

1. 盘点现象,定义问题

满足业务新的诉求:平台阶段性战略不同,1688 从曾经的信息平台过渡到交易平台,如今向数字营销平台转型,旧的内容框架难以承载业务的新发展。

提升分流质量:从过去的数据效果来看,需重新判断,在 For 特色采购需求和服务大面采购需求之前,如何平衡调优,提升首页的流量转化效能。

体验升级:移动端 APP 天然生长在手机系统上,系统的风格更迭也牵动着 APP 的变化和升级。在 8.0 升级前,1688APP 存在着 5.0、6.0、7.0 多个由不同设计师在不同时间点所设计的场景,到8.0,APP 趋待从框架层、表现层以及品牌等方面进行统一及升级。

改版策略

1. 聚焦用户价值,基于业务打法升级内容框架

APP 升级前与业务对焦,我们收到三点诉求:

  • 用算法的能力去承接首页买家的转化;
  • 搜索是 B 类买家找品、选商的核心工具,需要引导更多用户更高频地使用搜索;
  • 互联网流量红利到瓶颈期,需要进一步做好新用户的承接。

在内容框架制定上,我们聚焦用户价值,舍掉 7.0 时的内容版块个性化,聚焦做商品的个性化,仅保留For大面用户的营销、内容场景,提升算法推荐区的曝光率,以此区域的商品做首页的直接转化。

2. 弱化容器,突出内容,塑造心智

视觉容器升级

做平视觉框架,选择「大间距分隔」,为内容留出干净、简洁的视觉空间。

精简内容栅格,避免形式给用户阅读带来的负担。

提高留白率,提升页面整体的透气性,为内容留出更清爽、轻松的阅读空间。

拉大字体大小的梯度,加重字体颜色梯度,提升文字的清晰度和可读性。

强调版块特性,塑造买家心智感知,达成业务目标

强化搜索:7.0时,曾上线过将搜索做到「主观上觉得显眼」的测试方案,但相较于之前沉浸式搜索,数据几乎没变化。

8.0 阶段,从视觉表现层跳出看:「强化搜索」并不意味把搜索设计得更「显眼」,而是达成「让更多用户更高频地使用搜索」这一目标。如提升搜索底纹词、热搜词精准度和吸引力、增加搜索布点等,都可能助力达成业务目标。

基于用户单手操作时,拇指在屏幕不同区域的点击体验,选择将搜索组件移到更易于点击、视线更聚焦的屏幕位置,上线后数据提升非常明显。

Banner 升级:7.0 的 Banner 画面丰富度高,加之描述字段多,用户阅读有一定成本,较难在 3 秒内掌握全 Banner 的信息。此外,相比于 C 类用户,B 类用户会更偏理性,我们选择以更冷静、克制的「视觉语气」与 B 类商人对话,而非渲染氛围引导点击。(上线后,同样的活动内容,按新、老两版规范设计投放两套 Banner,新版较老版 UV CTR 约高出 48%)

For 新人:以差异化的利益、个性化秒杀、新人攻略做用户的承接。

营销场景心智差异化表达:营销由伙拼爆品、天天特卖两部分组成,我们判断爆品主打心智为「卖得火爆又便宜」,特卖主打心智是「限时限量抢便宜」,选择将两个区块最关键的特质做强化表达。

内容场景(直播)动态化、互动感、实时性传递:抽象出直播间的方形版面+内容叠加形式来设计,大坑位以动图传递给用户直播的动态感,以红包、个性化商品的多维实时轮播气泡传达直播的互动感、实时性。

3. 升级品牌,贯穿APP场景

为什么要做APP应用内的品牌设计?

品牌设计是将内容层(平台价值)与接收层(用户)做柔性链接的一环,譬如在 APP 场景中,由于有商品、商家、商机等「干货」,即使不特意做品牌设计,用户也能与平台保持刚性、稳定的连接。而反过来看,品牌做得很好,但平台没有「干货」,用户也不会单奔着品牌设计来平台。我们认为,做 APP 应用内的品牌设计,核心价值在于助力用户认知到平台特性,感知平台价值。从设计专业视角来看,APP 应用内的品牌设计,有利于定义并统一 APP 内体验范式及视觉风格,保障用户的体验。

怎么做?

每位设计师所处的业务环境不一样,解决问题策略和方式也千差万别,在 APP 应用内的品牌设计中,个人选择是通过厘清内容层(平台)多层次诉求及 For 用户的价值点,认知、感知接收层(用户)特质及内容倾向,基于内容层底料+接收层用户特质确定设计底层范式,塑造用户感知。

1. 图形范式

在阿里巴巴商业操作系统中,1688 聚焦做 B 类业务,直接服务对象是 B 类买卖家,业务细分出档口尖货、淘工厂、企业采购、淘货源、微商代发、工业品超级店、跨境专供等,这些都是具有一定 B 类特质及体量感的场景,故在 APP 业务门洞及常规图标的表达上,基于扁平 vs 写实、轻盈 vs 厚重、活泼 vs 稳重的维度,图形选定轻拟物、弱对比的设计范式,塑造 B 类场景 For 买家的沉稳、份量感。

此外,异常/空白场景也是平台与用户互动,塑造用户感知品牌的机会。在空态情感化插图部分的绘制上,力求塑形出有份量、易读、有意味的场景以示对应空态,并佐以轻微动效,增强空态的互动感。(在收藏夹、我的供应商等工具型场景,基于空态信息的价值考虑,将空态与工具新手引导相结合,并未做常规的插图。)

2. 色彩范式

标准色

随着业务的发展,我们基于新的业务态势,丰富了 1688 品牌色,以橙红色作营销、利益属性的表达,以商务蓝作服务、数字化属性的表达,以金色作权益属性的表达。

辅助色

在实际产品设计中,品牌色并不足以表达各类业务场景中的多层次的内容。因此,基于 VI 品牌色,裂变出不同重量、层次更丰富的品牌辅助色。

场景用色规则

基于买家角色及场景特征定义用色规则。

1688色域及选色示意

以 HSB 模式划定出偏沉稳的 1688 色域,在日常 banner 及业务场景中可灵活取用。

3. 动效范式及应用

动效是设计的重要手段,良好的动效表达能增强信息表达强度,清晰信息层级关系,提升用户体验的舒适度。做动效之前,将 APP 信息结构平整到三层,保障内容在页面简洁明畅地呈现。

在实际落地中,动效实现非常依赖技术资源,故动效设计之前,应考虑一个前提:动效设计增益内容表达,价值可论证,效果可衡量;同时,考虑接收层用户的商人特质,我们期望动效表达给用户以稳定感,并且在设计表达上能兼顾效率。

在动效呈现部分,主要以缓入、缓出、缓动结合曲线来调节,总的来说,内容入场时节奏稍慢,速度缓,分层加载,交代清信息在 Z 轴上的层次关系,内容出场时节奏快,速度快,内容层级不用再做分层消失。

APP 内典型场景的动效案例及演示:

4. 业务品牌的价值传递

此外,除以上在图形、色彩、动效等基础维度收口外,我们也需要将业务品牌放声给买卖家,以达成业务品牌的价值传递。在 1688 向数字营销平台转型的阶段,业务提出了「源头厂货通天下」的口号,我们通过设计手段,利用 APP 开机启动页及下拉刷新的空间,将「货通天下」的概念强化表达。

结语

以上便是此次首页改版阶段性的记录。在 8.0 的视觉体系里,为更好地突出内容,视觉容器选择尽可能做轻、做平,以冷静、克制的「视觉语气」与 B 类商人对话。当然,这是设计师和业务同学阶段性的选择。后续品牌的完善及产品的优化,仍需结合数据持续打磨。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

ElementUI表格中获取当前行数据(实现对table数据的修改和删除)

seo达人

如果您想订阅本博客内容,每天自动发到

前言

在此之前,已经实现了vue+ElementUI的跨域查询并渲染查询结果的功能,现在想要在每一行中添加修改和删除的按钮。于是乎就需要获取当前行的数据,于是就有了下面两种方式的获取。


1 获取当前行的数据

1.1 我的笨办法

这里是我记录自己的学习过程,这个方法也能实现,但是麻烦,如果您只是为了寻找最终方案,请直接查看1.2章节。

首先我查看了官方文档,打算使用对话框来渲染修改页面和删除警告页面。这个实现起来很简单,就是对按钮绑定一个click事件,然后控制对话框的显示和隐藏:


<el-table @row-click="handleEdit" :data="dengmiQueryForm.list" stripe border width="100%" height="350">

<el-table-column prop="mimian" label="谜面" width="300" fixed="left">

</el-table-column>

<el-table-column prop="dengmiSeq" label="序号">

</el-table-column>

<el-table-column prop="mimu" label="谜目">

</el-table-column>

<el-table-column prop="mige" label="谜格">

</el-table-column>

<el-table-column prop="midi" label="谜底">

</el-table-column>

<el-table-column prop="zuozhe" label="作者">

</el-table-column>

<el-table-column prop="mizhu" label="注">

</el-table-column>

<el-table-column prop="shangxi" label="赏析">

</el-table-column>

<el-table-column prop="leixing" label="类型">

</el-table-column>

<el-table-column label="操作" fixed="right" width="200px">

<el-col :span="10">

<el-tooltip effect="dark" content="编辑当前行" placement="top">

<el-button size="mini" @click="dengmiQueryForm.dialogVisible = true">编辑</el-button>

</el-tooltip>

</el-col>

</el-table-column>

</el-table>

<div style="margin-top: 5px;"></div><!--这个只是为了在页面上显示间隔-->

<el-dialog title="编辑灯谜" :visible.sync="dengmiQueryForm.dialogVisible">

<el-form :model="modifyForm">

<el-form-item label="谜面" :label-width="modifyForm.formLabelWidth">

<el-input v-model="modifyForm.mimian" auto-complete="off"></el-input>

</el-form-item>

<el-form-item label="谜目" :label-width="modifyForm.formLabelWidth">

<el-input v-model="modifyForm.mimu" auto-complete="off"></el-input>

</el-form-item>

</el-form>

<div slot="footer" class="dialog-footer">

<el-button @click="dengmiQueryForm.dialogVisible = false">取 消</el-button>

<el-button type="primary" @click="dengmiQueryForm.dialogVisible = false">确 定</el-button>

</div>

</el-dialog>


<script>

export default {

name: "dengmiQuery",

comments: {

DengmiModify

},

data() {

return {

modifyForm:{

formLabelWidth:'120px',

mimian:'',

mimu:''

},

dengmiQueryForm: {

dialogDeleteVisible:false,

dialogVisible: false,

list: []

}

};

},

methods: {

submitForm(formName) {

console.log(formName.mimu);

this.$http.get('http://localhost:909/dengmi/showDengmi2').then(function (success) {

console.log("This request is succeed! Here is the response:");

this.dengmiQueryForm.list = success.body.result;

this.dengmiQueryForm.requestResult = true;

}, function (error) {

console.log("This request is failed! Here is the response:");

console.log(error);

this.dengmiQueryForm.requestResult = false;

})

},

handleEdit(row) {

this.dengmiQueryForm.deleteShow = row.mimian + "(" + row.mimu + ")" + row.midi + "/" + row.zuozhe;

this.modifyForm.mimian=row.mimian;

this.modifyForm.mimu=row.mimu;

}

}

}

</script>


如上代码,是在el-table标签上绑定了行单击事件*@row-click=“handleEdit”*,该方法的参数row即为当前行的数据。

在handleEdit方法中,通过对data中的参数赋值,然后新增窗口中通过使用data中的参数来获取当前行的数据,从而实现将当前行的数据传递到新的对话框中。


这个方法虽然也能实现需求,但是比较麻烦:当有别的操作的时候,比如我再添加一个删除操作,就需要在点击删除按钮的时候,获取当前行的数据,然后进行删除操作;而因为新增和删除使用的是不同的对话框,其取值也是要通过handleEdit方法来获取,因此,当按钮较多,或者当前行的字段值较多的时候,就需要在handleEdit中对许多许多的变量进行赋值,而且是对所有按钮的所有参数。这个工作量想想还是挺恐怖的。


1.2 使用slot-scope获取数据

slot-scope是属于VUE的东东,叫做插槽;至于插槽是个什么东东,来戳这里。

在操作列,对操作按钮先用带有slot-scope属性的dom进行包装,即可获取当前行的数据,具体的代码,除了操作列不同外,还需要删除el-table标签中绑定的*@row-click*方法,剩下的都一样:


<el-table-column label="操作尝试2">

<template slot-scope="scope">

<el-button type="text" @click="checkDetail(scope.row)">查看详情</el-button>

</template>

</el-table-column>

<script>

export default {

       name: "dengmiQuery",

       data() {

           return {

               modifyForm:{

                   formLabelWidth:'120px',

                   mimian:'',

                   mimu:''

               },

               dengmiQueryForm: {

                   dialogVisible: false,

                   list: [],

               }

           };

       },

       methods: {

           checkDetail(val){

               console.log(val)

           }


       }

   }

  </script>


通过<template slot-scope=“scope”>来定义当前行的数据对象,然后通过scope.row来获取当前行的数据。


全部代码

<template>

   <div>

       <el-form :model="dengmiQueryForm" ref="dengmiQueryForm" label-width="100px" class="demo-ruleForm" size="mini">

           <el-row>

               <el-col span="8">

                   <el-form-item label="谜面">

                       <el-input v-model="dengmiQueryForm.mimian"></el-input>

                   </el-form-item>

               </el-col>

               <el-col span="8">

                   <el-form-item label="谜目">

                       <el-input v-model="dengmiQueryForm.mimu"></el-input>

                   </el-form-item>

               </el-col>

               <el-col span="8">

                   <el-form-item label="谜格">

                       <el-input v-model="dengmiQueryForm.mige"></el-input>

                   </el-form-item>

               </el-col>

           </el-row>

           <el-row>

               <el-col span="8">

                   <el-form-item label="谜底">

                       <el-input v-model="dengmiQueryForm.midi"></el-input>

                   </el-form-item>

               </el-col>

               <el-col span="8">

                   <el-form-item label="作者">

                       <el-input v-model="dengmiQueryForm.zuozhe"></el-input>

                   </el-form-item>

               </el-col>

               <el-col span="8">

                   <el-form-item label="谜底字数">

                       <el-input v-model="dengmiQueryForm.midiLength"></el-input>

                   </el-form-item>

               </el-col>

           </el-row>

           <el-row>

               <el-col>

                   <el-button type="primary" @click="submitForm" icon="el-icon-search">查询</el-button>

                   <el-button type="warning" @click="resetForm" icon="el-icon-search" plain>重置</el-button>

               </el-col>

           </el-row>

       </el-form>

       <el-header></el-header>

       <div v-if="dengmiQueryForm.requestResult">

           <el-table :data="dengmiQueryForm.list.slice((dengmiQueryForm.currentPage-1)*dengmiQueryForm.pagesize,dengmiQueryForm.currentPage*dengmiQueryForm.pagesize)"

                     stripe border width="100%" height="350">

               <el-table-column type="index" fixed="left"></el-table-column>

               <el-table-column prop="mimian" label="谜面" width="300" fixed="left">

               </el-table-column>

               <el-table-column prop="dengmiSeq" label="序号">

               </el-table-column>

               <el-table-column prop="mimu" label="谜目">

               </el-table-column>

               <el-table-column prop="mige" label="谜格">

               </el-table-column>

               <el-table-column prop="midi" label="谜底">

               </el-table-column>

               <el-table-column prop="zuozhe" label="作者">

               </el-table-column>

               <el-table-column prop="mizhu" label="注">

               </el-table-column>

               <el-table-column prop="shangxi" label="赏析">

               </el-table-column>

               <el-table-column prop="leixing" label="类型">

               </el-table-column>

               <el-table-column label="操作" fixed="right" width="200px">

                   <el-row>

                       <el-col :span="10">

                           <el-tooltip effect="dark" content="编辑当前行" placement="top">

                               <el-button size="mini" @click="dengmiQueryForm.dialogVisible = true">编辑</el-button>

                           </el-tooltip>

                       </el-col>

                       <el-col :span="10">

                           <el-tooltip effect="light" content="删除当前行" placement="top">

                               <el-button size="mini" @click="dengmiQueryForm.dialogDeleteVisible = true" type="danger" plain>删除</el-button>

                           </el-tooltip>

                       </el-col>

                   </el-row>

               </el-table-column>

               <el-table-column label="操作尝试2">

                   <template slot-scope="scope">

                       <el-button type="text" @click="checkDetail(scope.row)">查看详情</el-button>

                   </template>

               </el-table-column>

           </el-table>

           <div style="margin-top: 5px;"></div>

           <el-pagination

                   prev-text="上一页"

                   next-text="下一页"

                   background

                   @size-change="handleSizeChange"

                   @current-change="handleCurrentChange"

                   :current-page="dengmiQueryForm.currentPageA"

                   :page-sizes="[5,10,50,100]"

                   :page-size="5"

                   layout="total, sizes, prev, pager, next, jumper"

                   :total="dengmiQueryForm.list.length">

           </el-pagination>

       </div>

       <div v-else>

           请求失败!

       </div>

       <el-dialog title="编辑灯谜" :visible.sync="dengmiQueryForm.dialogVisible">

           <el-form :model="modifyForm">

               <el-form-item label="谜面" :label-width="modifyForm.formLabelWidth">

                   <el-input v-model="modifyForm.mimian" auto-complete="off"></el-input>

               </el-form-item>

               <el-form-item label="谜目" :label-width="modifyForm.formLabelWidth">

                   <el-input v-model="modifyForm.mimu" auto-complete="off"></el-input>

               </el-form-item>

           </el-form>

           <div slot="footer" class="dialog-footer">

               <el-button @click="dengmiQueryForm.dialogVisible = false">取 消</el-button>

               <el-button type="primary" @click="dengmiQueryForm.dialogVisible = false">确 定</el-button>

           </div>

       </el-dialog>

       <el-dialog title="删除灯谜" :visible.sync="dengmiQueryForm.dialogDeleteVisible">

           <h1><span style="color: red"><strong>确定删除该行数据?删除后不可恢复!</strong></span></h1>

           <el-form>

               <el-form-item label="当前行数据">

                   <el-col :span="18">

                       <el-input v-model="dengmiQueryForm.deleteShow" readonly></el-input>

                   </el-col>

               </el-form-item>

           </el-form>

           <div slot="footer" class="dialog-footer">

               <el-button @click="dengmiQueryForm.dialogDeleteVisible = false">取 消</el-button>

               <el-button type="primary" @click="dengmiQueryForm.dialogDeleteVisible = false">确 定</el-button>

           </div>

       </el-dialog>

   </div>

</template>

<script>

   export default {

       name: "dengmiQuery",

       data() {

           return {

               modifyForm:{

                   formLabelWidth:'120px',

                   mimian:'',

                   mimu:''

               },

               dengmiQueryForm: {

                   deleteShow:'',

                   dialogDeleteVisible:false,

                   dialogVisible: false,

                   currentRow: null,

                   visibleA: false,

                   currentPage: 1, //初始页

                   pagesize: 5,    //    每页的数据

                   currentPageA: 1,

                   mimian: '',

                   mimu: '',

                   mige: '',

                   midi: '',

                   zuozhe: '',

                   midiLength: '',

                   list: [],

                   requestResult: true,

                   thisRowData:{}

               }

           };

       },

       methods: {

           submitForm(formName) {

               console.log(formName.mimu);

               this.$http.get('http://localhost:909/dengmi/showDengmi2').then(function (success) {

                   console.log("This request is succeed! Here is the response:");

                   this.dengmiQueryForm.list = success.body.result;

                   this.dengmiQueryForm.requestResult = true;

               }, function (error) {

                   console.log("This request is failed! Here is the response:");

                   console.log(error);

                   this.dengmiQueryForm.requestResult = false;

               })

           },

           resetForm(formName) {

               this.$refs[formName].resetFields();

           },

           handleSizeChange(size) {

               this.dengmiQueryForm.pagesize = size;

               console.log(this.dengmiQueryForm.pagesize)  //每页下拉显示数据

           },

           handleCurrentChange(currentPage) {

               this.dengmiQueryForm.currentPage = currentPage;

               console.log(this.dengmiQueryForm.currentPage)  //点击第几页

           },

           handleEdit(row) {

               this.dengmiQueryForm.deleteShow = row.mimian + "(" + row.mimu + ")" + row.midi + "/" + row.zuozhe;

               // this.dengmiQueryForm.currentRow = row;

               console.log(this.dengmiQueryForm.deleteShow);

               this.modifyForm.mimian=row.mimian;

               this.modifyForm.mimu=row.mimu;


               // console.log("event=" + event);

               // console.log(colunm)

           },

           handleClose(done) {

               this.$confirm('确认关闭?')

                   .then(_ => {

                       done();

                   })

                   .catch(_ => {});

           },

           checkDetail(val){

               console.log(val)

           }


       }

   }

</script>

<style scoped>

</style>


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

QQ20周年展 | 策划与设计执行

雪涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

即便QQ已经陪伴大家20周年,我们依旧怀揣初心,保持科技改变生活的热衷。应运而生我们设计了太空企鹅探索科技作为本次20周年的品牌理念,来寓意新的里程碑到来。

Image title

Image title

Image title

https://v.qq.com/x/page/l087071z1ua.html

01 概述 | Overview


QQ 20周年,是互联网产品长青的一个传说,也是家喻户晓企鹅IP形象的成长,同时也代表了鹅厂精神的坚韧与奋进。即便已经陪伴大家20周年,但我们依旧怀揣初心,保持科技改变生活的热衷。应运而生我们设计了太空企鹅探索科技作为本次20周年的品牌理念,来寓意新的里程碑到来。就像宇航员勇于探索未知宇宙知识一样,QQ带着初心不断保持变革与成长,为用户提供更具科技力与创新的服务!也寓意鹅厂不断探索未来与科技向善的愿景!

02 logo设计ㅣLogo Design


我们在设计的第一阶段,logo设计,就是围绕“有趣和科技”来展开发散设计。我们决定从数字“20”开始入手,把QQ和20不断结合,同时融入宇宙太空元素,寓意QQ不断的对外探索,从多个维度来看世界,寻找有趣的内容。我们为了贴合“宇宙探索”这风格,为这次展览设计了专属徽章,徽章设计沿用了太空的概念,结合星球,星空,宇航员等科幻元素。简约的几何形状和大胆的配色贴合“QQ更好玩”的年轻潮流气息。


Image title

03 概念设计ㅣConcept & Design


1. Space QQ


太空QQ的太空服设计指的是科幻电影如《星际穿越》和《火星救援》中的太空服,我们也将的时尚潮流,2018年以来运动鞋领域最为明显的趋势,将 ugly & oversize 的潮流风格注入到运动鞋的设计当中。这种将时尚潮流与太空服相结合的新型运动鞋,使整体设计看起来时尚而风趣。如果没有它,太空服可能只是一个浅显的概念。


Image title


太空QQ创意草图


Image title


运动鞋设计草图


Image title


3D原型


Image title


2. QQ X PUPU


本次设定,由两只企鹅背靠背组成,20周岁的QQ与1周岁的PUPU,鹅厂拥有着各种企鹅IP形象,除了经典的企鹅QQ,还有各种其他特色企鹅,包括PUPU,BabyQ等等,同时PUPU来自外太空也是企鹅FM产品的主形象,经典企鹅QQ携带了新生代PUPU共同探索科技太空,寓意企鹅在不断创新与拥抱新生代相互合力,为年轻用户提供更具科技力与社交娱乐化的服务。


Image title

Image title


04 最终设计ㅣFinal Design


Image title

Image title


05 8米QQ模型制作ㅣ8m QQ Model 


对于实际生产出这个巨型模型是个大挑战,我们先利用电脑三维模型生产出8米高的泡沫模型,反复检查生产的泡沫模型是否和设计模型一致,不断的打磨调整,待到确定泡沫模后开始翻模工作。


Image title


先给泡沫模喷上泥巴水,便于脱模,之后喷上石膏水,并加入麻丝增加石膏的牢固性,待石膏模晾干,把石膏里的泡沫模掏出后开始往里面涂一层泥巴水(便于后面玻璃钢脱模),然后涂上树脂和纤维布/毡,干了之后砸烂石膏模,里面的玻璃钢模型就出来了。


Image title


玻璃钢定型之后给内部焊接钢铁骨架,作为加固作用。刚脱模的玻璃钢是非常粗糙的,于是对玻璃钢的外观进行打磨,使得表面光滑和调整细节,打磨完成后开始批灰和上底色,前后三次,为的是填补空隙瑕疵使模型更逼真完整。接着我们便调模型身上的颜色,在不断尝试中调出最接近效果图的颜色,开始逐步上色。


Image title


上色完成后再喷保护漆防止褪色,待模型的漆干后清洗整个模型,为贴上专属贴纸做准备,接着确定贴纸位置并逐一贴上。最后开始搭建安装,因为在搭建过程中模型会有磨损,搭建完后再做最后的修补工作,最后巨型QQ模型完美地呈现出来。


Image title


Image title

Image title

Image title

Image title

Image title

Image title

06 贴纸设计ㅣSticker Design


配合QQ20周年庆,我们要给8m的巨型QQ模型搭配上了贴纸设计,以slogan “QQ更好玩” 为设计的出发点,希望把有趣好玩的态度注入各个品牌中,为品牌logo严肃的视觉带来玩味感和潮流感。同时配合巨型QQ宇航员的造型,我们在设计贴纸时参考了航天飞机,科幻机器等机械图案元素,每个品牌的设计方案除了有趣值得玩味外,同时需要贴合宇宙科技探险的风格。


Image title


我们针对这个大方向再进行了几轮细化,选出能代表各个品牌的最终的设计方案,并把贴纸模拟在太空QQ模型上反复测试贴纸最适合的位置,让贴纸和模型的整体风格可以完美契合。通过各个品牌的logo再设计贴纸和太空QQ的碰撞,把品牌推广做到最大化。


Image title

Image title

07 搪胶玩具设计ㅣFigure Design


作为QQ20周年庆的惊喜,我们制作了与巨型太空QQ同款的迷你搪胶玩具,在这次玩具设计上我们加入了小机关,在玩具内部放置了小磁铁,使得QQ和PUPU可以方便拆卸组合。


Image title

Image title


同时为其设计了专属包装盒,包装设计从“太空宇宙”的角度出发,以黑色为主基调,图案印花设计选用了太空QQ来进行设计,把太空QQ模型线体化,配合QQ20周年logo进行设计,利用烫金工艺与醒目的图形搭配,更有效的展现了QQ年轻化的品牌特点。同时为了减少后期生产制作之间的沟通误会,我们同期将几个较重要的角度的包装3D效果图快速渲染出来,有着非常直观的参考对照作用。


Image title

Image title


08 品牌物料设计ㅣProduct Design


1. 海报设计


设计QQ20周年展的宣传物料,我们采用了最能代表这次展览的太空QQIP为主体,作为本次展览的专属元素,太空QQ贴近科技,同时又具有趣味性和潮流感。我们结合了太空探索的特性,提炼出宇宙元素作为宣传的内容,让海报设计具有更多内容可看性和观赏性。


Image title

Image title


2. T恤设计


配合QQ20周年展,结合宇宙太空元素,并从QQ20周年logo图形中延展设计出各类代表图形,正面简洁直接地显示出本次主题,把醒目的图形放置于T恤背后,利用坐标轴和经纬度的信息图案配合各个抽象化的宇宙元素,增加T恤设计的科技感,更明确地展现了科技向善的愿景。


Image title

Image title


09 QQ20周年展览ㅣExhibition Design


QQ联合深圳福田星河COCO Park 举办了“QQ20周年主题展览”,展馆外形模拟宇宙太空站,以太空白灰色为主调,搭配简洁的立方体造型,白色灯条勾勒大门,并以QQ20周年专属徽章做门面,科技未来感扑面而来,就如大型QQ太空站坐落于地球。


Image title

Image title


展馆大门旁的墙上安置了颇具科幻气息的全息投影装置,上面展示着QQ在不同时期的形象以及20年关键大事记。代表着不同时期的QQ形象用全息投影的方式展现出来,从最开始的胖QQ到现在的新版QQ,让你一眼了解QQ演变史。中间放着QQ历届各个跨界Figure展示,总有一款捕获你的心!


Image title


Image title


同时本次展览还和% Arabica咖啡跨界合作,% Arabica咖啡展台设计简洁透气与QQ20周年展览风格完美融合。一边喝美味咖啡,一边畅游展馆,两全其美。


Image title

Image title


蓝色发光的隧道科幻神秘,一进去马上感受到了超强的氛围感,仿佛时光碎片擦肩而过。用QQ扫描墙上的二维码,立刻生成你的专属时光隧道“QQ个人轨迹”,各种瞬间涌上心头。


Image title

Image title


联合天天P图,用13个LED屏组成了“复古头像画廊”。走进互动装置小屋里,往镜头前一站,稍作等待后,以你的形象即时合成的13个复古头像就会出现在面前的13块屏幕上,体验即时“变脸”效果。让自己的头像和曾经用过的QQ经典头像合二为一,形成专属的复刻版头像海报。


结语


QQ20周年展不仅包含了展馆设计,还包含了市场营销,运营活动,周边商品等多个设计环节,环环相扣,缺一不可,一起构建了整个QQ20周年展的设计体系;展览设计了太空企鹅携带着新生代PUPU共同探索科技,寓意鹅厂不断创新探索与科技向善的愿景,为年轻用户提供更具科技力与社交娱乐化的服务,在打造“QQ更好玩”的路上奋力前行。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务


Vue 插槽之 作用域插槽

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

现在我有如下需求,子组件 <user /> 中此时有一条用户的信息(userInfo);我要在父组件通过插槽展示这个用户的姓名(userInfo.name);

注意:这里的父组件并没有这个用户的信息,子组件中有,如果直接在父组件{{userInfo.name}} 获取这条信息是获取不到的;因为,只有 <user /> 组件可以访问到 userInfo,而我们提供的内容是在父组件渲染的;
模板在哪写,就是用哪里的变量,跟插槽用在哪无关
模板是在父组件中写好,被编译过后,传到子组件的插槽中的

为了让父组件的插槽内容可以读取到子组件的数据,我们可以将userInfo 作为一个 <slot> 元素的特性绑定上去;

// 子组件
const card = {
    data() {
        return {
            userInfo: {name: '宫鑫'}
        }
    },
    template: `
    <div class='card'>
        <!-- 在插槽上绑定子组件的数据 -->
        <slot :userInfo="userInfo"/>
    </div>
    `
};

绑定在 元素上的特性被称为插槽 prop。现在在父级作用域中,我们可以给v-slot带一个值来定义我们提供的插槽 prop 的名字:

// 父组件
template: `
<div>
    <card>
        <template v-slot:default="userInfo">
            用户姓名: {{userInfo}}
        </template>
    </card>
</div>
`

// 输出:
// 用户姓名: { "userInfo": { "name": "宫鑫" } }

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

这是一篇不看会后悔的配色干货!

雪涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

今天我们来讲一讲大家期待已久的配色方面的干货。

其实几年以前我就写过一篇关于配色的文章,早期的面粉估计还有印象,在那篇文章里我基本已经把设计师需要用的关于色彩构成的主要精华内容都汇总出来了(文末会附上文章链接的,别着急)。

但是因为不同设计行业的工作内容是有差别的,而且每个人的基础和理解能力也不一样,所以仅凭一篇文章是无法解决所有人的难题的,所以今天这篇文章算是关于那篇配色知识讲解文章的补充篇。

不过在讲解如何配色之前,我们还是先应该先记住一些关于色彩的理论知识,因为有了理论依据我们才能在做设计的时候有理有据,而不是胡乱配色和瞎试浪费时间。

所以这篇文章主要分为了以下几个部分:

  • 普遍意义上的色彩是指什么?
  • 设计流程和配色思路分享
  • 我的其他配色法宝
  • 总结

普遍意义上的色彩是指什么?

简单点来说,色彩即颜色,颜色可以分成有彩色和无彩色两大类,看有彩色主要看色相/纯度/明度三个方面的属性,无彩色也就是白色/黑色/各种深浅不同的灰色,也可以说无彩色是饱和度为零的色彩。

色相,即可以明确表示颜色色别的名称,比如红橙黄绿蓝靛紫:

色彩有冷暖之分,我大致用温度的概念标注一下,其中「0」是指中性色,「-0」是指中性偏冷,「+0」是指中性偏暖(当然,这里的温度是我自己为了具体化冷暖的概念而标记的,主要是方便大家理解,所以不用去纠结这个数值准不准确哈哈,你明白他们代表很冷/很热/一般冷/一般热就好了!~)

明度,就是指色彩的明亮程度(通俗点讲,在某种色彩里添加的白色越多就越明亮,添加的黑色越多就越暗)。

纯度(饱和度),就是指色彩的纯净度,我以红色举例,如下图所示:

如果大家想看更加详细的关于色彩构成原理的解说,可以看这个系列:《优设独家配色专题》

设计流程和配色思路分享

不管我们做什么方面的设计,设计练习也好,实际项目也好,在设计之前,我们最好是能先明确我们的设计目的是什么,然后确定一个主题,依据这个设计目的和主题,去构思创意,有了创意后再去去探讨具体的落地执行,其中包含了字体(标题文案)的设计排版配色、画面整体的构图和配色、细节优化、氛围渲染等等;

当然,这一次关于其他方面的内容我只会附带着讲一点,因为我们今天的主要内容是讲配色。

以我最近做的一张照片海报设计为例:

下面是我前几天用手机拍的一张照片,照片里的内容是我的手拿着一朵花。

1. 设计之前先确定主题

比如这一次我是确定了设计主题为:浪漫。

因为我看了下这张照片里面花是粉色的,我的手指甲油也是粉色系的,而我也是一个(年纪越大就越)喜欢粉色的女人~同时因为我喜欢尝试各种不同的风格主题,浪漫这个主题我之前是没有做过的,所以要不这一次就浪漫一回好咯。

那么说到浪漫,大家脑海里的第一反应会是什么呢?我不知道大家会想到什么,反正我会想到很多场景画面,比如2002年的韩剧《冬季恋歌》里,男女主角在雪地里相拥的画面,天上飘着雪花,同时背景音乐响起了《My memory》;

△ 《冬季恋歌》因为是2002年的韩剧,所以现在看海报是有点过时了,但剧是好剧的

再比如2017年的电影《爱乐之城》里,男女主角在繁星点点的绝妙夜空下翩翩起舞和拥吻的场景,同时背景音乐响起了《City Of Stars》;

△ 电影《爱乐之城》海报

再比如1995年上映的宫崎骏动漫《侧耳倾听》的结尾情节,时隔2个月才见面的男女主角一早就偷跑到一个可以俯瞰城市和日出的角落互相表白,微风轻拂着女主的短发,一栋栋高楼弥漫在朦胧的雾气当中,日出的余辉映射在波澜的水面,同时背景音乐响起了《Take Me Home, Country Roads》;

△ 宫崎骏动漫《侧耳倾听》剧照

等等等,还有很多浪漫有关的画面我就不多说啦。

总之,浪漫是有很多种表现形式和配色的,但是有一点是有共通性的,那就是要想打造出浪漫的感觉,背景音乐、色彩搭配和氛围渲染很重要。

比如除去听觉上的背景音乐渲染氛围以外,视觉上还有《冬季恋歌》里的白雪凯凯和雪花飘、《爱乐之城》的蓝紫色夜空和繁星点点、《侧耳倾听》里的暖黄色日出和微风波澜。

那么回到我自己拍的这张照片上面,这种大面积的灰白色背景只能让人感觉很性冷淡,一点都不浪漫,所以这张照片我肯定是要抠图才可以用的;从我自己的年龄、喜好、原照片内容限定等角度,可能走《爱乐之城》那种类型的浪漫色彩可能就更适合一点:用暗色调的紫色搭配我原本图片就有的粉色系。

ok,分析到这里先打住,我们先不要继续着急去细化到底该怎么去配色了这时候我们只需要有一个大概的色彩感觉就好了,因为配色之前,我们还有很重要的一步没有做,那就是构图。

2. 配色之前先构图

很多人之所以总是说自己不会配色或不管怎么配色都感觉不对劲,其实是因为,搭配颜色这个动作不能为时太早了,你得先把你整个画面的构图和基本框架先敲定了再去考虑配色。

先构图再配色,先构图再配色,先构图再配色,重要的事情说三遍!~

因为构图相当于化妆的时候先打好底子,底子不打好,你再怎么化妆都是徒劳的。同理,如果你的构图很乱或者基本型都没出来,你就去考虑配色,很有可能就是你磨半天都设计不出一个满意的结果,这就是很多人磨蹭半天,做出来的设计依旧不好看的很重要的一个原因。

因为你的设计步骤错了。

比如我今天要拿这朵花做一幅海报,我先不考虑配色和氛围渲染的事情,我就这样光溜溜的排个版出来再说,这里的排版方式和字体选择主要考虑乐个方面,一个是照片原本的条件限制,一个是围绕着浪漫这个主题去做,最终排版如下图所示:

一个浅色一个深色,大家可以对比看看效果。

这幅海报就这样随便看看其实也是可以看的,只是缺少细节和情感,也没有特别的吸引力罢了,最重要的是不够浪漫。

那么到这一步,我们就可以继续细化配色方案,分配色彩比例,优化细节,增加最重要的一些氛围渲染步骤了。

所以我继续优化海报,最终得到了下面这幅海报:

这张海报的背景是我用ps自带的笔刷刷出来的,顺着一个方向刷出一种坠感,这就是起到一种氛围渲染的作用。

然后,虽然粉色和紫色也算是同色系的颜色了,但是因为明亮的粉色与暗色调紫色在明度上有很大的落差,所以等他们组合在一起就会有一种碰撞的感觉,给人的视觉记忆力就会强一点,暗色也给人跟多神秘的感觉,让人琢磨不透。

毕竟,让人琢磨不透的人比一眼就能看穿的人给人更多联想和猜测,有插曲有意外的浪漫爱情给人的印象才会比较深刻一点,对吧~

同时,为了方便大家理解,我又做了以下几个版本,大家可以对比看看色彩的差异给人感觉上的变化。

比如,如果我改变画面的明度,提高画面的明度,如下图所示:

这样看,是不是画面给人的感觉要少女很多?而且给人一种很温柔的感觉,但是盯久了会觉得甜腻腻的。

如果前面第一版暗色调的是为20-40岁左右的女人而设计的浪漫,那么上面这一版则像是为20岁左右的小姑娘而设计的浪漫。

在这个基础上,如果我既改变明度,也改变配色,给画面加入非同色系的颜色,如下图所示:

这样看,其实感觉也很美对不对?美归美,但是却感觉比上面那一版还要腻,因为像是为儿童或小萝莉小公主而设计的浪漫了,适用的心理年龄段更小了。

ok,我们接着往下看。

如果我将背景随便换什么颜色,但是保持背景颜色是同色系不同明度的,画面里有明也有暗,如下图所示:

最后出来的感觉其实也是可以的,也很美,但就是少了一些抓眼球的感觉,觉得中规中矩的,没什么特别之处,就好比那种平平淡淡的感情,缺少激情的感情。

但是这种同色系的做法,却是平台和品牌为了统一形象方便视觉规范化管理最喜欢使用的一种配色方式,对此,大家可以去留意一下天猫或京东的一些频道页面或者大型活动各个分会场的页面配色。

ok,前面的配色技巧大家估计发现了,我要么是用同色系配色,要么是同色系改变明度和纯度,要么是用不同色系不同纯度但是保持明度一致,所以以这种方式去配色,无论你怎么配其实最后出来的感觉都是不会太差的,只是针对的受众不同罢了,可以各取所需。

所以如果你不会配色的话,那么就在这些基本的框架规则里去变化就好了。这是非常保险的一种配色方法。

但是如果你不遵守这种规则,而是胡乱瞎配色,则很有可能会出现下面这种情况,要么是画面显得脏,要么是画面显得艳俗、花哨和乱,如下图这些错误示范所示:

上面这几幅图虽然是一些错误的配色示范,但是很多对色彩不敏感的孩子可能也会觉得:「诶,其实也还行啊」,其实主要是因为有构图的基础在那里硬撑着,底子在那里,所以色彩即使配的不够好糊弄一下也还行。

拿化妆举个例子,为什么那些本身样貌底子就好的人,即使乱穿衣或乱化妆你也觉得看起来还行,一旦她好好的打扮画个妆,那简直就是神仙颜值了,可底子不好的人呢?可能你就算再会穿衣打扮,你也只能变成看起来还行,到达不了神仙颜值的地步。

所以我再强调一遍,配色之前先构好图,把底子打好,这很重要。

总结起来就是,做设计之前先确定主题,然后搭框架搞定排版样式,接下来再考虑配色,再然后氛围渲染,最后一步优化细节,over。

我的其他配色法宝

下面这些知识点都是我平时总结出来的一些配色小心得,是我屡试不爽的一些方法,分享给大家。

总结来说,我的配色技巧主要有以下几种:联想法、提取法、目的导向法则。

1. 联想法

所谓联想法就是,类似于头脑风暴那样,当拿到设计需求或确定设计主题后,我会提取一些关键词,根据关键词去联想很多相关的可能,然后再去筛选一些结果为我所用。

比如下面这张照片,原本照片的颜色是很简单单一的。

但因为我给他确定的主题是「野花的回忆」,所以我就会去联想:「野花都是什么样的颜色?」「回忆又是什么样的色调比较合适?」,后来我就确定了野花主要以比较艳丽的色彩居多,比如玫红色、亮黄色、白色等等,至于回忆嘛,可能就是有年代感了,所以大的基调是暗色调的。

于是下面这幅海报的色彩搭配就出来了。

其他用联想法配色的还有很多,比如下面这一组。

原照片:

做成海报后:

不过这里需要说明的是,联想法要求你会联想,所以大家平时最好是多留意身边的事物,多观察大自然什么的,还有适当去了解一下色彩心理学,你会明白每一种色彩都是可以代表不同的感情和事物的。

通过长时间的锻炼自己对于色彩的敏锐度,可以帮助你快速的配出自己想要的色彩。

2. 提取法

所谓提取法,就是当我们拿到某一个产品或模特需要围绕着它们做设计,我们就可以直接从它们身上吸取颜色,作为主色或点缀色都可以,这样搭配颜色的好处就是:省时省事不容易出错,而且还有呼应主题和画龙点睛的效果。

比如下面这张照片,原本照片的颜色就是绿色和淡粉紫色。

那我最后做出来的海报配色也是这些颜色咯,只是文字部分单独用了白色而已。

哦对了,一般白色和黑色这两种无彩色都是最适合用来作为标题或文字内容部分的颜色的,也是最不容易出错的,同时联想法和提取法其实是可以互相搭配使用的,不冲突。

但是,有时候我们如果希望画面可以更活泼一点,一般做那种比较卡哇伊风向的设计,标题也会用彩色,而不是黑白无彩色,至于标题用什么彩色,也是可以用联想法和提取法啦,如下图所示:

3. 目的导向法则

前面的联想法和提取法的配色方法是教大家如何选取颜色,但具体到哪里该用什么颜色,该用什么明度什么色相的颜色,则就取决于你的设计目的是什么了,所以我将它称之为目的导向法则。

比如,之前我给大家提到过,有的设计是走艺术路线(以传递情绪为主,重在情绪上的表达),而不是常人理解的一般的商业设计路线(以传递信息为主,重在信息产传达准确),前者适用于一切与艺术有关的设计或设计师个人的自由创作,后者适用于所有以卖货为目的的商业活动设计。

这2种类型的设计目的是不一样的,面向的受众群体也不一样,所以在色彩选择上就会有差异。

举个例子,当我们提到某某平台又做活动了打折了,他还做了一个卖场促销页面,你去看看,绝对基本是以红色、橙色等暖色系为主色,并且页面氛围做的非常热闹,就跟你去逛商场,映入眼帘的就是各种sale、大减价标牌,并且还有人拿着喇叭大喊:「进来看看进来瞧瞧啊!最后一天大减价买了不吃亏买了不上当啊!」的即视感。

并且,页面里一些特别希望消费者能注意到的信息,它一定会突出处理,不仅字号要够大,而且在色彩上也会突出。

拿我的书《这么设计能热卖》作为产品图做个示范,我做了一个促销海报,如下图所示:

但是,如果你去看一些比较性冷淡或大牌画风的店铺或官网看看,它完全就是一副我根本就不care你买不买的调调,倒不是因为他不想做生意,而是他的调性就那样,比较自我或端着。

好比人家的定位就是孤傲的,或则是你高攀不起的大小姐和公子哥类的,买ta东西的人本来也就是这种类型的,或者希望别人觉得自己就是这种类型的,毕竟要彰显自己的身价和品味,不能掉价撒。

所以,你看ta基本不会给你看大大的字号,也不会用一些很花里胡哨的颜色在标题上,而是以黑白灰这些无彩色居多,更不会特地用一些突出的颜色去醒目的区分一些字眼,总之页面看起来不会有太浓的促销氛围

虽然我的书籍封面设计本身其实就不是性冷淡和大牌的风格,但我依旧做个示范给大家看看,如下图所示:

而介于这之间的,也就是那些时尚类型的,或时尚里带点促销的,或放得下身段走点接地气路线的牌子,则是会在保持好看时尚的基础上,依旧会适当的用大点的字号或显眼的颜色去突出一些重要的信息,但色彩不会用的太花哨,如下图所示:

而像上面这种比大牌感亲切一点又比大卖场时尚一点这种介于之间的情况则是绝大多数的,毕竟小众的是少数,成为大牌是少数,虽然现在是大卖场但是不想走大牌路线路线的是少数,不想赚钱的商家也几乎没有,于是最终都沦为了不高不低的大多数。

总结来说,目的导向法则可以分为2种情况:

如果你想低调一点内敛一点,你在配色上就保守一点,尽量少一点颜色比如三种颜色以内,或者是用同色系或柔和点的颜色等。

就像一个性格很温和或者很内向的人一样,没有攻击性,安安静静的。

拿我之前做的一幅照片海报为例。

原先我是考虑让这幅海报看起来有视觉冲击力一点,但是我又不想画面太过于张扬,毕竟我那天穿的衣身衣服色彩是比较柔和的橘粉色,所以我用了对比色而没有用同色系,同时控制画面里的颜色不超过3种,并且这幅海报里色彩之间的明度是差不多的,如下图所示:

但如果我用同色系不同明度和纯度来配色,出来的感觉就是下面这样的,你会感觉画面更淑女安静一点,没有什么攻击性:

可是如果你想更加高调张扬一点,那么你在配色上就可以多用一些颜色,比如三种以上颜色,或则是用对比色或互补色而不是同色系配色,或则是纯度高一点明度高一点的颜色,然后不同明度纯度的颜色互相碰撞。

就像一个脾气火爆性格张扬的人,他们不愿意淹没在人群里,而是要做人群中最醒目的那一个。

我还是那上面那张海报改个颜色给大家看看,结果如下图所示:

如果我想继续突出大标题文案,那么我还可以将标题的无彩色白色换成亮黄色,画面里的颜色更多了,冲击更大了,甚至你会觉得有点花哨:

ok,上面这几张图,大家对比一下就会知道这其中的差异了。

所以记住啊,配色不是乱来的,它一定是有章可循的,也是要依据你的目的来配的。

当然,可能有人会说:「有时客户给的主题实在是太晦涩难懂了,我实在是联想不出来啊」,或者给到你的产品本身的配色就丑的不行了,如果你直接吸取颜色那做出来的设计肯定也是丑爆了,那么,这时候就要看你是不是有一颗灵活的脑袋能够随机应变咯!~

如果联想不出来说明你百度总可以吧,然后自己要多看多积累你的脑袋里才有货的。

如果原产品本身配色就丑那你就分析它丑在哪里加以改进不就行了嘛?比如它是因为纯度太高了很艳俗,那么用低一些纯度的同色系是不是就可以了?比如如果它是因为本身的色彩太多了很花哨,那么我们只选取一两种颜色用用是不是就可以了?

再比如还有人说,给我的产品根本就没有颜色,纯白、纯黑、纯灰色,那我该怎么吸颜色啊?

天哪!~这种类型最好搞定了,因为无彩色就是万能色,无彩色无论是搭配无彩色或者其他任意有彩色都可以的,这就又回到我前面提到的目的法则了,不懂的可以回头再仔细看看~

写在最后

平时也经常会有人问我到底该看什么书来提高配色能力,其实我想说只要你掌握了我前面提到的基本的色彩构成原理这些基础知识,剩下的其实都不需要你继续去看其他的色彩书籍了。

因为看其他书籍无非就是要扩充你的知识面罢了,它只是其中一种增加知识储备的途径而已,但现实是很多人写的书一看就让人犯困,而且晦涩难懂,你买了也是浪费钱,倒不如通过看设计网站、看时尚杂志、看电影、多观察大自然等有意思的途径去培养自己对于色彩的敏锐度,然后看看我的干货文章勤加练习,多实践多思考来的有用。

尤其是大自然的色彩,那真的是一个超级大的配色宝藏啊,你随便看看那些花花草草、蓝天白云、日出日落、海底和大地,哪个配色不是美的让人惊叹?就连那些恶心的毛毛虫都有一身好看的不行的颜色。

我们做的很多设计,不管是什么行业的设计有关颜色的,电影也好,三维也好,平面的也好,其实基本都是来源于大自然的。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

优设轻访谈!拿到需求无从下手?来看这7位设计大咖的私藏搜索技巧

雪涛


如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

信息时代,每个人都需要具备基本的「搜索」技能,尤其是设计师,你有没有灵感枯竭不知所措的时候呢?今天我们召集了7位优秀设计师,对他们的设计灵感来源进行揭秘,希望这一期的轻访谈能够让你轻松Get设计大佬的搜索技巧!


优设轻访谈第八期,我们的话题是——不信息时代,能与我们分享一下你的搜索技巧么?平时的素材积累是如何进行的?

Dribbble 人气最高:Mike

Dribbble:https://dribbble.com/creativemints

实际上,现在寻找灵感或资源变得非常容易。去Pinterest,你会获取到任何你能想到的灵感!查看stock网站,获取所有你需要的资源!

△ AGE / Online courses

尽管如此,我仍然建议从外部世界获得灵感——请几天假,去一个新的城镇或国家旅行,逛逛博物馆,你会发现真实生活会成为你最重要的灵感来源。

产品视觉设计总监:Gleb Kuznetsov✈

Dribbble: https://dribbble.com/glebich

是的,你是对的,搜索技巧对产品设计师来说是必不可少的。我在一家公司做了很长时间的分析师和研究部门工作,在那里我负责用户体验,这些经历帮助我理解如何搜索有意义的数据和信息,并使用它来定义一个产品的关键指标。

但是搜索不仅仅是关于用户分析和信息,也是关于设计语言——理解什么是可能的。最好的设计只有当你跨越了可能和不可能之间的界限时才会出现。这种平衡基本上是一种新的设计语言或产品的品牌。

我使用Pinterest进行图像搜索。这个网站帮助我创建情绪板,并找到一些更具体更具象的东西,Dribbble的作品帮助我研究UI布局。然而,我不会使用Dribbble来作为我的色彩搭配灵感库。

对于颜色,我使用自己的灵感素材库,在我的职业生涯中,我花了大量的时间从互联网上搜集素材,并进行创作和整理。我也有自己的平面设计素材库,我创建并管理这些素材库大约有10年了。我几乎每天都在捕捉的设计灵感素材。问题不仅在于你如何搜索,还在于你如何将这个搜索结果应用到你的工作中。

△ Water waves simulation for 3d icon

那如何应用呢?例如,当我看到好的设计时,我将视觉图像结构分离开来——有时我在情绪板中添加新图像仅仅是因为我喜欢形状,有时是因为我喜欢颜色,有时是因为图形效果等。在将该引用添加到库之前,设计人员需要了解在何处可以使用以及如何使用。对于设计师来说,搜索绝对是一项必不可少的技能,我通过创建情绪板促进了我的搜索。

顶尖设计团队:Ramotion

我们相信灵感无处不在,当然也会取决于我们进行的项目类型。

我们在互联网上会搜索很多,比如Behance和Dribbble。然而,我们周围也有很多灵感。

△ Cellebrite Pictograms

例如,如果进行的是一个品牌项目,那么我们周围的自然环境就是我们获得灵感之所在。颜色、动效、形状和所有这些的组合使一切都在一个愉快的和谐场景中工作,这就是我们努力传递的。

对于UI/UX项目、网站和App设计,我们也是这样做的,但我们主要目的是理解用户的最终目标和每个行动背后的动机。我们不仅在数字世界中研究类似的解决方案,在现实世界中也会寻找类似的解决方案。

顶尖设计团队 FΛNTΛSY 总监:Minh-Pham-✪

Dribbble:https://dribbble.com/phamduyminh

我不在本地存储灵感资源,因为想要方便浏览必须对其进行分类,而这对于本地存储来说比较困难,所以我非常依赖于在线资源,它们有很好的搜索引擎,所以,为什么不呢?

基于不同的目的,我更喜欢从多种来源获得灵感:

  • Dribbble:是最好的互动、动效和插画资源网站。它是快速获得灵感的好地方,尤其是针对大项目中的某一个小部分。
  • Behance:主要是为项目展示,所以如果你想要找一个地方寻找大的概念、设计系统、演示,那这绝对是最理想的。
  • Pinterest:是一个丰富得多的资源,在这里你可以从中找到任何灵感。因此,当我需要寻找高层次的概时我会来这儿念(例如情绪板)。关于Pinterest,我最喜欢的是它能够显示我正在寻找的相关图片。它真的帮助我驱动我的思维,形成概念,事半功倍。

服务设计机构:Zajno Crew

说到寻找灵感,我认为有两种人:使用Dribbble的人和使用Behance的人。Dribbble更像快餐,在这里你可以迅速的饱腹,Behance更像一家高档餐厅,你可以在那里度过整个晚上。

我个人喜欢吃快餐。我喜欢每天早上上班前查看Dribbble,当我发现好东西的时候,我就把它存起来以后用。

△ Promo Website Animation for Pocket Multilingual Assistant

如果你正在寻找真正的案例,而不仅仅是概念稿,你可以在Awwwards上找到一些主流的东西,也可以在这里找到一些更奇怪的东西。

哦,还有Pinterest,它的优势是推荐你可能喜欢的东西。我经常用它来做情绪板和寻找参考素材。

如果是插画资料,没有比Dribbble和Behance更好的地方了。只要滚动鼠标,所有的好东西和你喜欢的艺术家都会一步添加到你喜欢的作品中,简单!

△ Tempers Flare

Pinterest有利于发现新的想法、主题、不寻常的元素和灵感。每天浏览这些平台也会让你培养出一双训练有素的眼睛,这对提高你自己作品的质量和风格至关重要。」

Dribbble 人气插画师:Febin Raj

Dribbble: https://dribbble.com/febinraj

我每天都想更新!我认为这是件大事。因为这个世界瞬息万变。

△ Evening From Kerala

通常,我的主要搜索源是Behance和Dribbble,同时我从其他来源获取了更多的数据,比如文章,博客。

Behance 人气设计师:李宜轩

Behance: www.behance.net/yihsuanli

信息时代,每个人都必备一个「搜索」技能,尤其是设计师,很多人在接单后,可能会第一时间在网络中或者日常的资料扩中搜索素材、参考、灵感等。

我还记得刚开始接触设计时因为没有太多经验,常常因为资料整理太久,压缩了执行时间,最后反而虎头蛇尾的完成作品。虽然创作作品时资料搜集、调查很重要,但其实整体过程有更有效率的方法。其实收集资料也是需要练习的,通过经验累积,可以渐渐增加效率与快速找到最精准的讯息,避免漫无目的搜寻。

△ ZENWATER

Work hard 不如 Work smart, 有了较有系统的资料搜寻方式后,可以将时间留给创作和尝试。随着经验累积,我开始养成了一些小技巧帮助自己更有效率的搜集资料,大家可以酌量参考:

1. 先用树状图整理出关键字

在开始找资料前我会先把设计关键字整理出来,先从Google或百度等网站去搜寻相关的话题或图片,以此方式让思考可以更突破。例如,我要做一张音乐会的海报,开始前,我会先写下关键字,例如:乐器、钢琴、音乐、琴键、流动、弹奏….,接着利用这些关键字进行中英文查询,随着找到越来越多资料,可以从其中找到更多可能性的延伸。这个阶段搜寻目的是从抽象方向出发,避免找到与别人相似的元素。一个一个关键字搜寻后,就可以把其中好的图片整理再一起,收敛成更明确的设计方向。

2. 擅用IG的#hashtag功能

除了使用搜寻网站寻找资料,我觉得IG(instagram )也是一个不错的选择。我会用IG 的hushtag去找大家对于某一个单字不同的想像,例如找#music,在其中除了可以找到音乐相关的画面,有时候也可以找到不同场域里的音乐元素。除了找灵感外,我也会利用hushtag搜集的设计作品,例如找#logo#graphicdesign时,可以看到大家正在进行中的作品,或是还未整理好放上Behance的作品。

△ One Team One Goal / IBM Taiwan Sport Day

3. 以pinterest分类整理资料库

我平常就有整理pinterest的习惯,建立资料库的习惯除了为了特定专案外,我也会以设计种类分类作品,例如以CI、packaging、poster…分类。除此之外,以风格分类的资料库也是必要的,例如:东方风格、美式、日本风格、欧式….。这些平常就累积好的资料库能够让我搜寻作品资料时,有一个快速的开始。 Pinterest会依据风格推荐更多的作品给使用者,因此当平常有了足够的累积,寻找资料就会有效率很多,能够快速找到很多需要的作品风格。

4. Behance搜集不同风格的设计师

Follow特定设计师的IG或是Behance也是我搜集资料的一个方法。我会搜集一群在每个领域最具代表性的设计师。在找不到灵感时,我会不断浏览他们的作品集,试着从他们角度出发,思考如果是他们遇见这个题目,他们可能怎么发展。除此之外,他们也是一个完整的风格库,每个作品都是该领域的标竿,当客户有特定风格的需求时,能够快速给自己一个明确的目标,期许自己能够达到他们作品的高度。


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务


z-index不起作用的大坑

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

今天遇到的就是z-index不起作用的问题。一个后台小哥不知道抽什么疯,写元素覆盖偏不让用absolute,搞的我之后废了9牛二虎之力写了一下,问题描述是这样的,

 一对兄弟节点,insert和parent,parent有两个子节点subtop和subbottom,展现的结果是想让subtop在insert上面,subbottom在insert下面,

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .insert{
            position: relative;
            z-index:100;
            background: green;
            width:300px;
            height:300px;
            top:100px;
        }
        .parent{
            /*position:relative;
            z-index: 1000;*/
            width:200px;
            height:200px;
            /*left:0;
            top:-50px;*/
            border:1px solid #eee;
        }
        .subbottom{
            position:relative;
            z-index: 50;
            width:200px;
            height:200px;
            background: red;
            top:-100px;
            left:0;
 
        }
        .subtop{
            position: relative;
            z-index:1100;
            width:100px;
            height:100px;
            left:0;
            top:0;
            background: blue;
        }
    </style>
</head>
<body>
    <div class="insert"></div>
    <div class="parent">
        <div class="subtop"></div>
        <div class="subbottom"></div>
    </div>
</body>
</html>

其实原理也很简单,就是利用了z-index的覆盖问题,在写的过程中我发现无论怎么改变,insert的z-index总是无效的,于是百度了一下z-index无效的情况,一共有三种:
1、父标签 position属性为relative;

2、问题标签无position属性(不包括static);

3、问题标签含有浮动(float)属性。

这样也很好理解为什么parent设置了position和z-index之后insert的z-index就会失效的问题了,他的解决办法有是三个:


1、position:relative改为position:absolute;

2、浮动元素添加position属性(如relative,absolute等);

3、去除浮动。

所以,去掉parent的position和z-index,达到了我想要的效果,如下图所示:

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、网站建设 平面设计服务

画底部tab图标不知道用面性还是线性?

分享达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

我们都知道UI设计并不仅仅是做出好看的东西,还涉及到交互和数据还有转化率,就像是设计师通过界面在于用户交流一样,而底部导航栏就是交流对话中的一个。因为如果用户连他们在产品的哪里都不知道,那么我们的设计再好优秀也是没用的。



底部导航栏的用法


底部导航栏在屏幕底端展示3至5个目标选项,每一个选项由一个图标和文字标签展示,点击底部导航图标时,将带领用户前往与之关联的视图。


这里将目标选项放在底部的原因是,在手持的移动设备上容易被触及,符合拇指定律,方便用户单手操作。




底部导航栏的展示


根据我的观察,底部导航栏的表现形式一般分为三种,首先我们先来说第一种:

1、文字+图标

大部分的平台都是使用的扁平风格,只有在节假日的时候才会出现,而多数情况下,我们常见的底部导航栏都是以文字+图标的形式出现,在选中的状态下,设计师也会根据对整体风格的把控和产品调性,增加一些变化和趣味,来突出产品的风格。如下图所示:


全名K歌和知乎的底部导航栏就是使用文字加图标的形式,其中全名K歌的底部图标增加了一些有趣的变化,让底部图标变得更有趣,同时文字的存在能够更好的让用户对图标进行理解,提高用户识别效率。


2、文字

文字按钮目前来说产品里使用的也是比较多的,大多出现在以图片和视频为主的产品和界面中,如下图所示:


抖音、美图秀秀、小红书,这三款APP的底部导航栏都是文字作为模块切分,在使用的过程中,更能够关注与阅读内容,底部操作栏视觉层级相比上面的那种层级比较低,不影响浏览视觉,同时文字按钮降低了用户的理解成本。


3、图标

单图标按钮是很少见的,很多图标都没有很强的识别度,所以仅仅用图标放在底部操作栏,会造成用户的认知负担,不建议使用独立的按钮。如下图所示:


VSCO是一款给用户推荐产品的APP,因此底部操作栏只有三个按钮,从设计的架构和产品的逻辑上来说,比较有利于用户对图标点击操作。


Same的是一款社交的APP,有别于目前的大部分产品,它的底部是使用的单图标的形式,虽然整体界面比较简约,但是辨识度比较低,造成了使用产品时的认知负担。


小总结:

1、当页面图片以图片为主时,使用纯文字或者纯图标的能够降低底部图标对用户造成的干扰,但是纯图标的底部导航栏降低了用户的识别度,引起用户使用时的认知负担。

2、文字+图标的搭配属于最稳妥的方式,适用于大部分的产品底部图标设计。



底部导航栏图标的设计


当我们准备做APP底部导航栏设计的时候,不知道大家有没有遇到过经常不知道该用面性还是线性的纠结中,究竟要选择哪种对用户来说才是合适的呢?

大多数的人会觉得是出于个人喜好,但是一项名为《面性图标vs线性图标,对于可用性方面的影响》的研究表明:不同的图标存在着不同的识别效率,而面性图标一般会比线性图标更快被用户所识别。


1、特征线索

用户要辨认图标依靠的就是特征线索,如果一个图标没有明显的特征,是很难被用户所识别出来的。如下图所示:



如上图所示,发现的特征线索是它的眼睛,没有眼睛,发现就是个椭圆;目的地的线索特征就是中间的圆,没有了中间的圆,就是个小气泡;行程是做成了行李的样子,而没有了行李箱上的特征标志,就变成了一个很普通的包。

所以图标上的特征线索是用户识别的关键,在我们设计图标的时候,一定要确保它包含了用户识别的线索。


2、什么情况下用线性图标?

图标除了要包含特征线索以外,线性和面性图标之间也有区别,当一些图标的外部特征为它的特征线索时,线性图标会比面性图标的识别度来的更为突出。


当我们的底部图标的信息属于特征线索比较微妙,并且出现在边缘的时候,我们可以使用线性图标,或者换个角度来说,就是当我们选择底部图标为线性的表现形式的时候,在图标的表现形式上,尽量往形状的边缘特征来靠,这样能够让图标更加突出并且很快被识别。


3、什么情况下用面性?

大多数图标其实就是将现实生活中的对象变成一个小缩影,因此面性剪影的图标形式认知高于线性图标。



尽管如此,用户还是能够识别线性图标,但是当图标的内部空间比较狭窄的时候,用户识别线性图标需要花费更多的时间来识别。

对于内部空间比较拥挤,或者线条比较多的图标,最好使用面性图标,剪影的表现方式提供了一个更简洁也更具辨识度的方式,从这里我们可以发现一个事实,线性图标的设计表现要求要高于面性图标,因为线性图标要在具有表现力的同时还需要有很高的识别度,同时不能太过复杂,内部不能过于拥挤。



划重点


1、当页面图片以图片为主时,使用纯文字或者纯图标的能够降低底部图标对用户造成的干扰;

2、文字+图标的搭配属于最稳妥的方式,适用于大部分的产品底部图标设计。

3、图标是由有识别度的特征线索组成的,而面性图标的识别度速度更快;

4、线性图标的内部间距比较宽的时候,更容易识别,内部间距比较窄的时候,使用面性图标会更好;

5、图标的特征线索在边缘的地方,使用线性的图标识别度更高。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、网站建设 平面设计服务

日历

链接

blogger

蓝蓝 http://www.lanlanwork.com

存档