侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

运用比较纯的CSS打造很Web2.0的按钮

前端  /  管理员 发布于 7年前   210

先上图,所谓有图有真相。

如果您觉得图片上这些按钮不够2.0,那没办法,请回避吧!

从图片中,我们可以看到,我们要解决如下几个问题:

  1. 背景色渐变
  2. 圆角框
  3. 阴影效果

就目前而言,要实现如上的效果,我们可以通过使用PNG图片来实现,但熟悉的人都知道,要做出这样的效果来,还是需要花费很多的经力的。更何况还要画出这么多种配色(感谢一下辛苦的前台工程师们)。

接下来,就让我们看下使用CSS(主要是CSS3)怎么来做吧。

一、背景色渐变

我们首先来解决第一个问题,背景色渐变。CSS3是支持背景色渐变的。对于在Firefox 3.6里面使用背景色渐变,可以参考以下一下这个网址:http://css-tricks.com/forums/viewtopic.php?f=8&t=3998,而WebKit引擎的可以参考这个:http://webkit.org/blog/175/introducing-css-gradients/。但在此处,我还将用比较传统的方式来实现。经常,我们会画一些渐变的图片来做背景,如图:

然后我们可以使用css设置background-image来实现渐变,而对于悬停(hover),则可通过设置background-position来实现。但这样我们会发现,但需要大量的配色时,要画出这一张张的图片来,还是一件比较耗体力的事(就算你的Photoshop里面存了一大堆这样的样式)。

仔细一想,其实这种渐变颜色基调往往都是一致的,而且往往是从较亮的颜色变到次亮点的颜色(我相信不会有人会要一个蓝变到红的按钮)。那么,我们想,既然是从亮变到暗,而且颜色基调一致,这不就和我们生活中把光从顶部往下照到一块纯色的布上的效果是一样的嘛。那么,如何模拟这种效果呢?很简单,画一张从白色到透明渐变的图往一个纯色的区域上一罩不就OK啦。PhotoShop中的渐变图:

CSS如下:

.orange{
background
: #FF5C00 url(images/light-overlay.png) repeat-x scroll 0 0;
}
.orange:hover
{
background-color
: #D45500;
}

这样呢,我们就以一种相对比较简单的方式解决了能够满足大多数场合需求的背景色渐变效果。效果图如下:

二、圆角框

接下来,我们看看圆角框。按照我们现在的习惯,圆角框一般都是通过图片来实现。当然也有通过纯CSS(2.0)实现的,园子里有人介绍过。

但那样会多写一丁点HTML。幸运的是CSS3支持圆角框,而且目前那些真正叫做的浏览器的浏览器也是支持圆角框的。只是写法稍微有点不同而已。如下:

.orange{
-moz-border-radius
: 5px;
-webkit-border-radius
: 5px;
}

明眼人一看就知道,上面那个是针对Firefox用的,下面是针对webkit内核的浏览器用的。效果图:

三、阴影效果

在平常切页面(psd->html)的过程中,我最不喜欢做的就是两件事:一件是切圆角框,另外一件是切阴影,第三件便是切带阴影的圆角框(我讨厌数数数不清的人)。

但是,自从看到下面的代码之后,哥笑了。

.orange {
-moz-box-shadow
: 0 1px 3px rgba(0,0,0,0.5);
-webkit-box-shadow
: 0 1px 3px rgba(0,0,0,0.5);
}

先看效果图:

这里面,需要特别指出的是,在CSS3里面,我们可以用RGBA模式选取颜色。所谓RGBA就是在原来的RGB中加了个A(废话)。这个A就是指Alpha,即透明度。合起来,我们就叫RGBA。然后写css时就可以采用rgba(0,0,0,0.5)这样的写法了。

对于-moz-box-shadow的写法可以参考https://developer.mozilla.org/En/CSS/-moz-box-shadow,

嗯,阴影有了,写法如此简单。什么?文字不够2.0?好吧,继续加码:

1 .orange {
2 text-shadow: 0 -1px 1px rgba(0,0,0,0.8);
3  }
  

还是明眼人就知道,text-shadow就是给文字加阴影。

哦耶,最终效果图:

text-shadow的写法可以参考https://developer.mozilla.org/en/CSS/text-shadow。

最终的CSS代码如下:

复制代码代码如下:
.orange,.magenta,.blue,.green,.red {
display: inline-block;
width: 150px;
height: 36px;
line-height: 36px;
color: #ffffff;
text-decoration: none;
text-align: center;
font-family: "Courier New", Courier, monospace;
font-weight: bold;
background: transparent url(images/light-overlay.png) repeat-x scroll 0 0;
margin: 5px;
border-bottom: 1px solid rgba(0,0,0,0.25);
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
text-shadow: 0 -1px 1px rgba(0,0,0,0.8);
}
.orange {
background-color: #FF5C00;
}
.orange:hover {
background-color: #D45500;
}
.blue {
background-color: #2DAEBF;
}
.blue:hover {
background-color: #007D9A;
}
.green {
background-color: #91BD09;
}
.green:hover {
background-color: #749A02;
}
.red{
background-color:#E33100;
}
.red:hover {
background-color:#872300;
}
.magenta{
background-color:#A9014B;
}
.magenta:hover {
background-color:#630030;
}

Html是酱子的:

复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>使用比较纯的CSS创建很Web2.0的按钮</title>
<style type="text/css">
.white-area,.dark-area {
padding: 10px;
margin: 0px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.white-area {
background-color: #ffffff;
}
.dark-area {
background-color: #333333;
}
.columns {
float: left;
margin-left: 10px;
}
.clear {
clear: both;
}
</style>
<link rel="stylesheet" href="https:/css/css3buttons.css" charset="utf-8" />
</head>
<body>
<div class="white-area">
<a href="" class="orange">Web 2.0</a>
<a href="" class="magenta">Web 2.0</a>
<a href="" class="red">Web 2.0</a>
<a href="" class="blue">Web 2.0</a>
<a href="" class="green">Web 2.0</a>
</div>
<div class="dark-area">
<a href="" class="orange">Web 2.0</a>
<a href="" class="magenta">Web 2.0</a>
<a href="" class="red">Web 2.0</a>
<a href="" class="blue">Web 2.0</a>
<a href="" class="green">Web 2.0</a>
</div>
</body>
</html>

要看更丰富的效果,可以下源码,点击下载呀!

四、结语

嗯,感谢CCTV、感谢KTV,感谢。。。唉呀,谁扔的臭鸡蛋!!!

说正经的,本人不是专业美工,更谈不上UI设计师。我只是一位码农,不管是写代码的的农民也好,还是天天除了写代码就玩农场的程序员也好,我就是这样的。之所以写这篇东西,也是因为看到了这个地方http://www.zurb.com/article/266/super-awesome-buttons-with-css3-and-rgba,感觉很好玩,就连翻译带自己的理解加上周未休息的时间(农场里面菜还没熟,等得寂寞了),写下这个东西了。

谢谢观赏!
文件打包下载 http://xiazai..net.cn/200912/yuanma/ButtonsByCSS3.rar


  • 上一条:
    CSS expression 隔行换色效果
    下一条:
    通过css样式控制单元格文本超长省略
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 使用 Alpine.js 排序插件对元素进行排序(0个评论)
    • 在js中使用jszip + file-saver实现批量下载OSS文件功能示例(0个评论)
    • 在vue中实现父页面按钮显示子组件中的el-dialog效果(0个评论)
    • 使用mock-server实现模拟接口对接流程步骤(0个评论)
    • vue项目打包程序实现把项目打包成一个exe可执行程序(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-03
    • 2018-04
    • 2018-05
    • 2018-06
    • 2018-09
    • 2018-11
    • 2018-12
    • 2019-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客