使用CSS3和RGBa创建超酷的按钮
作者:神采飞扬 来源:前端观察 发布时间:2009-06-02 12:41:00
呃,看到这个标题,我们可以首先将IE系浏览器无视了。
我承认,我是有极简主义倾向的,我希望能够使用最少的代码和图片做更多的事情。
虽然CSS3仅仅增加了少数新特性,但是这些属性却可以做很多有用的事情,可以大大的简化我们的工作。我们今天做的这些按钮,就是充分利用CSS3的圆角、盒子阴影和文字阴影效果,同时使用RGBa色彩。
让我们先来看一下demo吧:
我们可以通过四步来做出这些漂亮的按钮:
1.按钮的基本设置
我们需要先设置一下按钮的基本样式,这里我们使用a标签,当然也可以使用input、button标签等,这里使用a标签是因为这三个标签中只有a标签支持:hover伪类。
.btn {
display: inline-block;/*thanks to ytzong*/
/*display:block;
float:left;
margin:5px; */
padding: 4px 10px;
font:bold 13px/180% Tahoma, sans-serif;
color: #fff;
text-decoration: none;
overflow:hidden;
}
此处多谢ytzong童鞋的建议,我们改为采用display:inline-block,这样可以省去float和margin两行代码。——神飞@05.31.2009
2.半透明的png渐变图片
这是我们这里唯一用到的一个图片,这个透明的png图片用来实现颜色的渐变。这个图片我们可以称之为单色透明度渐变。在CSS中,使用背景演示+这样的png图片就可以实现不同的色彩渐变效果。当然,这个不是CSS3的特性,除了IE6以下版本的浏览器,所有的浏览器都可以实现这样的效果。你可以点击这里查看该png文件。
.btn {
...
background: #222 url(sprites.png) repeat-x;
/**background**/
}
3.圆角
圆角(border-radius)是目前浏览器支持最好的CSS3特性之一,除了IE系浏览器,各个A级浏览器都支持,尽管大都是通过私有属性来实现的,至少,这是可用的。
.btn {
...
background: #222 url(sprites.png) repeat-x;
/**background**/
}
4.阴影和RGBa
box-shadow和text-shadow是CSS3新增的两个重要的属性,它们可以很方便的实现块级元素阴影和文字的阴影。但是,如果如果阴影的颜色使用半透明效果,岂不是更好?这样元素可以更好的和背景融合到一起。值得注意的是,FF只有等到3.5版本才支持text-shadow属性(目前Firefox3.5beta4版本已经支持)。
.btn {
...
background: #222 url(sprites.png) repeat-x;
/**背景图片**/
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
/**圆角**/
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
/**按钮阴影**/
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25);
/**文字阴影**/
}
好了,到现在,我们的按钮已经完全做好了。它已经实现我们的目标了。
这个按钮,是黑色的,那么其它颜色的按钮实现起来也就比较容易了:
...
.green.btn, .green.btn:visited {background-color: #91bd09;}
.green:hover {background-color: #749a02;}
.blue, .blue:visited {background-color: #2daebf;}
.blue:hover {background-color: #007d9a;}
.red, .red:visited {background-color: #e33100;}
.red:hover {background-color: #872300;}
...
请注意,这些样式一定要放在.btn的后面。这样这些绿色、蓝色、红色等颜色的按钮的背景色才能重写.btn的背景色。然后再使用<a class=”btn green”…就可以了。
最后,让我们来可怜一下IE浏览器吧,这些按钮在IE7和IE8浏览器中会显示直角、有渐变色、无阴影、无透明色,但是在IE6中,它将显示浅蓝色的背景,这是因为IE6不支持png透明所致,如果你想让它在IE6中能够像个按钮,就用那些js后IE的滤镜来处理吧。
猜你喜欢
- 简介本文主要简述如何通过sklearn模块来进行预测和学习,最后再以图表这种更加直观的方式展现出来数据集学习数据预测数据数据处理数据分离因为
- 在面向对象的编程中,很多语言都支持函数重载,能根据函数传递的不同个数、类型的参数来做不同的操作,JS对它却不支持,需要我们额外做些小动作。在
- 原文:http://research.microsoft.com/~helenw/papers/subspace.pdfwindow.nam
- 引言:在机器学习还有深度学习中,经常会用到这几个函数,为了便于以后熟练使用,现在对这几个函数进行总结。(一)np.random.rand()
- 如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计
- 相信很多程序员在调试代码时,都用过 print。代码少还好说,如果是大型项目,面对众多 print 的输出结果,可能要头大了。今天推荐一个
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&
- 2008年的圣诞节LOGO依旧延续着2007年的圣诞老人、鹿车、红帽子、圣诞树、蜡烛等元素装点。当然,也少不了雪花,但在LOGO设计上,较0
- SVM支持向量机是建立于统计学习理论上的一种分类算法,适合与处理具备高维特征的数据集。SVM算法的数学原理相对比较复杂,好在由于SVM算法的
- 第一种 #This File was made using the WinMySQLAdmin 1.4 Tool #2004-2-23 16
- 对于outerHTML这个DOM属性,在IE/Opera/google Chorme等浏览器中都是可以使用的,但唯独Firefox是不支持的
- 将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码function changeNumMoneyToCh
- 如下所示:import numpy as np# 等差数列print(np.linspace(0.1, 1, 10, endpoint=Tr
- 使用的类库pip install openpyxl操作实现•工作簿操作# coding: utf-8from openpyxl import
- 纯代码通过神经网络实现线性回归的拟合参考链接中的文章,有错误,我给更正了。并且原文中是需要数据集文件的,我直接给替换成了一个数组,采用直接赋
- 目录快速使用模式总结今天学个简单点的😀,termtables处理表格形式数据的输出。适用于随时随地的输出一些状态或统计数据,便于观察和调试。
- php创建JSON数据详解:<?php //创建一个字符数组 $arr=array( 'id'
- switch是很容易理解的,先来个代码,运行起来看看你的操作系统是什么吧package main import (  
- 常用方法浅拷贝copya = {"ilpy1": {"company": "aaa&quo
- 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT som