[CSS] An Introduction to the Basics of Modern CSS Buttons(译)_html/css_WEB-ITnose
译:关于现代化 CSS 按钮的基础知识介绍
按钮是构建网页的最重要组件之一,它拥有许多不同的设计方案以匹配不同的状态和功能。在这篇文章中,我们将介绍三种风格的按钮设计思路,通过 CSS 和设计工具来帮助新的开发人员创建他们自己的按钮。
在我们深入了解不同的按钮设计思路之前,我们需要加强一下对 CSS 按钮基础的了解。如果你不了解 CSS 对组件的影响,那么即使了解 Flat UI 和 Material Design 之前的区别也对你没什么帮助。
现在让我们快速的回顾一下基本的 CSS 按钮。
CSS 按钮的基本点
每一个网站对好按钮的定义都有不一样的标准,但还是有一些非技术上的标准:
- 可访问性– 这是至关重要的。按钮对那些残疾人和旧版本的浏览器也应该有良好的访问性。网络的开放性是很美好的,不要用因偷懒而写的 CSS 毁了它。
- 简单的文本– 尽可能的简化你的按钮文本。用户应该能够立即了解到这个按钮的作用和按钮跳转的目的地。
几乎所有你在网络上看到的按钮都会用到色彩的改变,转换时间以及边框和阴影的变化。这些效果可以通过 CSS 的伪类做到。我们将重点讨论以下两种 – :hover和 :active。 :hover伪类定义了当鼠标覆盖你的目标时 CSS 应该采取何种行动。 :active通常在用户点下鼠标和松开鼠标之间的时间内执行动作。
通过伪类你能够完全改变按钮的外观,但这并不是一个对用户友好的方式。对于初学者来说一个好的方法是,在尽可能保持按钮原貌的情况下给它添加一些微小的简单的改变。其中的三个基本点是 颜色, 阴影和 转换时间。
基本点1 – 颜色
这是一个最常见的改变。我们可以通过属性改变颜色,其中最简单的是 color, background-color和 border属性。在我们开始例子之前,让我们先来关注如何选择按钮颜色:
-
颜色构造– 使用不同的颜色相互排列。 Colorhexa是一个很好的颜色管理工具,用于找出适合搭配的颜色。如果你仍然犹豫不决,可以到 Flat UI color picker获取灵感。
-
匹配你的颜料– 无论你在使用什么调色板,这都是一个很好的主意。如果你没使用调色板,可以看看 lolcolors。
基本点2 – 阴影
box-shadow使目标周围增加阴影。可以为每个边添加不同的阴影,这种设计 Flat UI 和 Material Design 中都有运用。如果想要更深入的了解 box-shadow,可以访问 MDN box-shadow docs。
基本点3 – 转换时间
transition-duration允许你为 CSS 的改变效果添加一个时间表。没有过渡时间的 CSS 伪类 :hover会立即生效,这可能会使用户产生不悦感。在本教程中会使用过渡时间使你的按钮动画变得自然。
下面的例子会用超过 0.5s 的时间来逐渐实现伪类 :hover的动画效果。
.color-change { border-radius: 5px; font-size: 20px; padding: 14px 80px; cursor: pointer; color: #fff; background-color: #00A6FF; font-size: 1.5rem; font-family: 'Roboto'; font-weight: 100; border: 1px solid #fff; box-shadow: 2px 2px 5px #AFE9FF; transition-duration: 0.5s; -webkit-transition-duration: 0.5s; -moz-transition-duration: 0.5s;} .color-change:hover { color: #006398; border: 1px solid #006398; box-shadow: 2px 2px 20px #AFE9FF;}
看起来是这样的:
See the Pen Button with transitionsby SitePoint ( @SitePoint) on CodePen.
实现过渡效果的这段代码有点复杂, 所以老版本的浏览器实现的效果可能会有点差异。因此,我们需要为不同的浏览器添加不同的前缀。
transition-duration: 0.5s /* this is standard and works on most modern browsers */-webkit-transition-duration: 0.5s; /* helps some versions of safari, chrome, and android */-moz-transition-duration: 0.5s; /* helps firefox */
有许多复杂和有趣的方式能够利用transition来实现你的CSS,这个例子仅仅是最基础的。
按钮的三种风格
1 — Simple Black and White
See the Pen Suit and Tie Button Examplesby SitePoint ( @SitePoint) on CodePen.
这通常是我的项目中首先加入的按钮,因为它能个各种风格搭配。这种风格完美的利用了黑白反差效果。
这两种变化是相似的,所以我们通过代码来展示白底黑字的按钮。要获取另外一种效果只需在代码中把 white和 black对调。
.suit_and_tie { color: white; font-size: 20px; font-family: helvetica; text-decoration: none; border: 2px solidwhite; border-radius: 20px; transition-duration: .2s; -webkit-transition-duration: .2s; -moz-transition-duration: .2s; background-color: black; padding: 4px 30px;} .suit_and_tie:hover { color: black; background-color: white; transition-duration: .2s; -webkit-transition-duration: .2s; -moz-transition-duration: .2s;}
在上面的例子中,通过设置 transition-duration,你会看到 font和 background-color的改变都发在在 0.2s 内。这是一个很简单的例子。从这个例子开始,你可以选择那些给你带来灵感的品牌的色彩。你可以通过 BrandColors获取你喜欢的品牌色彩。
2 — Flat UI buttons
Flat UI 注重于极简主义,通过小的变化阐述一个丰富的故事。当我的项目开始成型后我会把黑白按钮向 Flat UI 按钮迁移。Flat UI 按钮朴素到足够适配大部分设计。
接下来让我们改善我们的按钮,通过给按钮添加位移来模拟 3D 按钮。
SeethePen FlatUIButtons bySitePoint (@SitePoint) on CodePen.
这个例子包括五个按钮,他们之前的差异只是颜色不同,所以让我们关注第一个按钮即可。
.turquoise { margin-right: 10px; width: 100px; background: #1abc9c; border-bottom: #16a085 3px solid; border-left: #16a085 1px solid; border-right: #16a085 1px solid; border-radius: 6px; text-align: center; color: white; padding: 10px; float: left; font-size: 12px; font-weight: 800;} .turquoise:hover { opacity: 0.8; } .turquoise:active { width: 100px; background: #18B495; border-bottom: #16a085 1px solid; border-left: #16a085 1px solid; border-right: #16a085 1px solid; border-radius: 6px; text-align: center; color: white; padding: 10px; margin-top: 3px; float: left;}
这个按钮有三种状态,普通的(没有状态), :hover和 :active。
值得注意的是, :hover状态只有一行代码,用于降低透明度。这是一个有用的技巧,当你需要一个更透明的颜色时不需要额外去寻找即可。
CSS 中的变量并不是新的,但使用了一些小的技巧。通过给 border-bottom, border-left, 和 border-right设置 3D 深度效果取代以往统一设置的边框属性。
对于Flat UI按钮来说, :active能起到很重要的作用。在我们的例子中,使用 :active起到了两个变化。
-
border-bottom从 3px变为 1px。这会导致按钮下面的阴影收缩并且降低整个按钮的像素。虽然代码简单,但这个改变会使得用户认为他们点击了页面中的按钮。
-
颜色的变化。将背景颜色变暗,模拟按钮远离用户并朝着页面前进的运动轨迹。再次重申,细微的改变会暗示用户他们点击了这个按钮。
对于 Flat UI 按钮来说,简单和微小的变化能传达出重要的含义,许多人用 border-bottom创造移动轨迹。值得注意的是,一些扁平化按钮不需要移动效果只需要改变颜色即可。
3 — Material Design
Material Design 是一种利用卡片传达信息和移动的设计观念。谷歌设计了 Material Design,并把其中的三个主要准则列在了 Material Design Homepage中。
- Material is a metaphor
- Bold, graphic, intentional
- Motion provides meaning
为了更好的理解这三个准则,让我们用 Material Design 进行实际练习。
See the Pen Material Design Buttons With Polymerby SitePoint ( @SitePoint) on CodePen.
这些按钮主要设计两个方面 – box-shadow和 Polymer。
Polymer是一种用于构建网站的组件化框架工具。如果你熟悉Bootstrap,那么Polymer对你来说也是很熟悉的。实现下面这个强大的效果只需要一行代码。
SUBMIT
推荐阅读
-
[译](深入了解CSS Box Shadow)_html/css_WEB-ITnose
-
[CSS]Flexbox and Truncated Text(译)_html/css_WEB-ITnose
-
[CSS]Flexbox and Truncated Text(译)_html/css_WEB-ITnose
-
【译】建立更好的可访问性原语_html/css_WEB-ITnose
-
[CSS3] Using CSS’s object-fit and object-position Properties(译)_html/css_WEB-ITnose
-
[CSS3] Using CSS’s object-fit and object-position Properties(译)_html/css_WEB-ITnose
-
固定网页页脚的最佳方法(译)_html/css_WEB-ITnose
-
【译】60个有用CSS代码片段_html/css_WEB-ITnose
-
【译】建立更好的可访问性原语_html/css_WEB-ITnose
-
【译】60个有用CSS代码片段_html/css_WEB-ITnose