UI界面16条设计黄金原则

1. 使用留白和分组来划分元素 把信息分成几组相关元素可以帮助构建一个有条理的界面,更易于组织和阅读信息。这样做可以让人更快更容易地理解和记住界面的内容。 你可以使用这些方法来对信息分组: 使用容器是将界面元素分组的最强视觉表现方式,但它可能会增加不必要的杂乱感。寻找使用其他分组方法的机会,它们通常更微妙,可以帮助简化设计。 使用留白是一个非常有效的元素分组方式,你可以同时使用这些方法用以更好的将信息组织起来。 比如在下面的例子中,留白空间不够,让信息显得挤在一起难以阅读,通过增加留白,能帮助更好的对信息进行分组,让整个排版显得更舒服,更利于阅读。 2. 保持一致性 在 UI 设计中,一致性的意思是相似的元素,在外观和行为上保持相似。这种一致性不仅在你自己设计的产品中保持,也应该与其他已有的产品相类似,以保证用户的心智统一。这样可以提高可用性并减少错误,用户不再需要重新学习如何使用。 在下面的例子中,图标的风格是不统一的,一些图标是填充的一些是描边的。这会让用户感到困惑,填充图标通常会让用户觉得是已经选择了。当所有图标都用描边的形式,统一描边 2pt 的粗细和统一的圆角,并设计相似的视觉重量,那么就可以很好的提高一致性。 文本用来提升图标的易读性,以帮助用户更好的理解它的意思。特别是当一些用户使用读屏时(屏幕阅读器是一种软件,用于描述界面,并通过语音或盲文向看不到它的人进行描述)。 3. 确保看起来相似的元素功能也相似 如果元素看起来是类似的,用户会觉得它们在功能上也是类似的。因此,尝试确保对于具有相同功能的元素使用一致的视觉设计。相反,尝试确保具有不同功能的元素看起来也是不同的。 在我们的例子中,图标区域的样式与“Book now”按钮的样式非常类似。这使得它们看起来是可以点击的,但实际上是不可以的。把底部的蓝色背景区域去掉,避免用户的误解。 4. 创建一个清晰的层次结构 不是所有在界面上的信息都同等重要,为了让信息更容易理解,要让更重要的信息被设计的更突出一些。 一个清晰的层次关系,能帮助用户更快的阅读内容,并能把焦点放到他感兴趣的地方。同时,它还可以通过创造秩序来提高美学效果。你可以通过大小、颜色、对比、间距、位置和深度进行优化,打造一个清晰的视觉层级。 下面的例子是一个视觉层次不清晰的网站 banner 示例,在它下面是一个明确的层次结构的案例。 一个非常快且容易的检查你的视觉设计层次是否清晰的方法是采用“眯眼测试( Squint Test)”。只需眯起眼睛观察你的设计,或者远离屏幕或使设计模糊。你仍应该能够看出哪些元素最重要,知道界面的用途。 用“眯眼测试”看下面的例子,我们可以发现多个具有类似视觉强度的元素在争抢用户的注意力。同时,左下角的主要操作反而没有凸显出来。 主要按钮在界面中通常是最突出的元素。通过给它一个与背景强对比的颜色,并把字体加粗可以实现这一点。这样做也解决了可读性的问题,后面会详细研究。 再次用上“眯眼测试”,主要按钮这次成了页面中最突出的元素了。 视觉层次现在终于清晰了,但依然还有提升的空间。例如,正文相对于它的层级来说,还是有点太突出了。 5. 删除不必要的样式 不必要的信息和视觉样式可能会分散注意力,增加认知负荷。避免使用不必要的线条、颜色、背景和动画,目的是创建一个更简单、更专注的界面。 在我们的例子中,图片周围的留白和描边是没必要的,会增加视觉复杂度。这些样式不需要来传达信息或对元素进行分组,因此我们可以安全地将它们删减以简化设计。 6. 有目的的使用颜色 有目的地、节制地使用颜色。尽量避免仅仅因为装饰而使用颜色,因为这样会让人感到混乱和分散注意力。从黑白开始,只在需要传达意义时才引入颜色。 一个简单有效的方式是把品牌颜色应用到文字链接和按钮等可交互的元素上。它能帮助用户理解哪些是可点击的而哪些不可以。尝试避免使用品牌颜色在不可交互的元素上。 你也不需要把品牌颜色应用到所有可交互的元素上,一些元素其实本身就已经给出了可交互的线索。例如,卡片设计本身给人的隐喻就是全部可点击的,所以不需要在文字上单独再加一个蓝色的链接。 在我们的例子中,优化前的蓝色标题可起来还挺好看的,但它让文字看起来是可交互的。为了帮助避免这种困惑,我们需要把这种蓝色样式给移除掉。 我们同样需要把其他不可交互的元素中的蓝色样式删除掉,比如蓝色的星星。这样优化后,界面上可点不可点的信息就能一目了然了。 7. 确保界面上的元素能保持 3:1 的对比度 Read more…

css style override

CSS 优先级

CSS 有许多选择器,例如:id、class,当有一个元素重复用到选择器定义的样式时,优先级的概念就很重要,优先级高的选择器样式会优先出现,而这些选择器的优先级也是被定义好的,以下文章会分享到大部分选择器的优先级排列。 优先级分数 了解每个选择器的顺序优先级之前,要了解分数 (specificity scoring) 的概念,每个由选择器组成的样式自己本身会有一个加总分数,分数最高的会胜出。但是,当我们在开发 CSS 时,如果同样能写出想要的样式,要尽可能选择分数较低的,而不是分数较高的;因为如果未来有一个更重要的样式,可以比较容易添加上去。假如某个样式在最开始就被写成最重要,这时要加上其他样式就会变得困难。 选择器分数 选择器优先级整理 除了上数的分数计算规则以外,另外补充几点样式优先级的特性 实际例子 透过以下例子来了解选择器加总后的分数是如何计算的

CSS Flex盒子全指南

本文图片较多,如有不清楚的地方,可以点击原文链接查看高清大图。另,如有翻译不周之处,请指摘。 原文: The Complete CSS Flex Box Tutorial 译文: Flex 盒子与CSS 网格 (Grid)很相似,都十分复杂,这是因为它不止包含一种元素类型,而是两种:container 和 items。 CSS 视觉字典(译者注:原作者推荐的一本讲述CSS属性的付费书籍) Contains visual diagrams for every single CSS property in common use.medium.com​medium.com/@js_tut/css-visual-dictionary-e53329daf93e 如果想更好地理解Flex的工作原理,可以在此页面上尝试flex 布局编辑器。 当我刚开始学习Flex的时候,我想搞清楚它能做的所有事情,但却始终找不到一本能展示Flex所有属性事例的全面性教材。因此,我以鸟瞰 的方式,用Flex的方式画了以下图表。 这就是Flex能做的所有事情。但是……还是让我们以评论的方式来逐一重温以上图表吧。在本课程结束时,相信你一定会对Flex所能做的事情了如指掌。 Flex Flex是在父容器中自动伸展多行和多列内容的规则集。 display: flex 与其他CSS属性不同,在Flex布局中,存在一个主container,items嵌入其中。有些CSS Flex属性只作用于父container。有些则只作用于items。 你可以把flex元素看作是带有display:flex属性的父container,而放置在这个container中的元素则叫做items。每个container均有 flex-start 和 flex-end点,如图所示。 主轴和交叉轴 尽管item都是以线性方式排列的,Flex还是要求你注意行和列。因此,Flex有两条坐标轴。水平轴指的是主轴,垂直轴指的是交叉轴。 在主轴上水平延伸的内容具有宽度和间隔,为了控制它们的显示行为,你将会使用到justify相关属性。为了控制item的垂直展示行为,你将会使用align相关属性。 如果你有3列6个item,那么在展示时,Flex将会自动创建第二行来容纳剩余的item。 如果你有多于6个item的展示列表,Flex则会创建更多的行。 行和列如何在父元素中分布是由:flex-direction 、flex-wrap 以及其他几种 Flex 属性决定的,这些属性都将在本教程的余下内容中有所涉及。 Direction(方向) 可以通过倒置的方式来设置 item 流的方向。 Wrap Read more…