有网友问到大智星模板的那两个按钮(预览和下载)是怎么实现的,这里照葫芦画瓢简单说一下。
CSS3有很多漂亮的网页效果,这些效果在CSS3未出现之前,通常需要使用图片、JS甚至flash来实现,自从CSS3出现以后,这一切都变得简单了。
先看一下动画气泡效果》》
下 载
继续说这两个按钮,既不用JS也不用falsh,来实现一带动画气泡效果的按钮。
首先写好HTML:
为按钮添加class类,比如这里使用的button,同时可以添加多个类以实现不同大小和颜色的按钮,例如这样:
<a class="button blue big" href="#">下载文件</a> <a class="button blue medium" href="#">预览效果</a> <a class="button small blue rounded" href="#">提交内容</a> |
使用不同的类(如 “blue”, “big”, “rounded” )可以定义元素不同的大小颜色和形状,就像下面这样:
开始添加CSS:
可以把CSS代码单独保存为一个.css文件,也可以添加到网站模板的style.css文件中,我们先添加以下CSS代码:
.button{ font:15px 微软雅黑, Arial, sans-serif; /* 半透明的文本阴影 */ text-shadow:1px 1px 0 rgba(255,255,255,0.4); /* 重置默认的下划线样式 */ text-decoration:none !important; white-space:nowrap; display:inline-block; vertical-align:baseline; position:relative; cursor:pointer; padding:10px 20px; background-repeat:no-repeat; /* 当浏览器不支持多背景时 */ background-position:bottom left; background-image:url('button_bg.png'); /* 具有多个属性值的 CSS3 背景定位 */ background-position:bottom left, top right, 0 0, 0 0; background-clip:border-box; /* 应用默认边框 8px */ -moz-border-radius:8px; -webkit-border-radius:8px; border-radius:8px; /* 按钮内部 */ -moz-box-shadow:0 0 1px #fff inset; -webkit-box-shadow:0 0 1px #fff inset; box-shadow:0 0 1px #fff inset; /* 使用CSS3对背景位置进行动画处理 (并不是所有浏览器都支持)*/ -webkit-transition:background-position 1s; -moz-transition:background-position 1s; -o-transition:background-position 1s; transition:background-position 1s; } .button:hover{ background-position:top left; background-position:top left, bottom right, 0 0, 0 0; } |
接下来我们使用一张带有气泡形状的图片做背景,就是下面这张图:
你没看错,上面确实有一张图,但是背景是透明的,不太明显,正因为如此,我们才可以方便的添加其它颜色来显示,现在在CSS文件中添加以下代码:
/* 根据不同的类定义按钮的大小 */ .button.big { font-size:30px;} .button.medium { font-size:18px;} .button.small { font-size:13px;} /* 下面是很明显的圆角 */ .button.rounded{ -moz-border-radius:4em; -webkit-border-radius:4em; border-radius:4em; } |
以上的规则指定了按钮的大小和形状,下面开始添加颜色,不同的类定义不同的颜色,下面以蓝色为例:
/* 蓝色按钮 */ .blue.button{ color:#0f4b6d !important; border:1px solid #84acc3 !important; /* 回退时的颜色 */ background-color: #48b5f2; /* 不同浏览器支持的规则 */ background-image: url('button_bg.png'), url('button_bg.png'), -moz-radial-gradient( center bottom, circle, rgba(89,208,244,1) 0,rgba(89,208,244,0) 100px), -moz-linear-gradient(#4fbbf7, #3faeeb); background-image: url('button_bg.png'), url('button_bg.png'), -webkit-gradient( radial, 50% 100%, 0, 50% 100%, 100, from(rgba(89,208,244,1)), to(rgba(89,208,244,0))), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4fbbf7), to(#3faeeb)); } .blue.button:hover{ background-color:#63c7fe; background-image: url('button_bg.png'), url('button_bg.png'), -moz-radial-gradient( center bottom, circle, rgba(109,217,250,1) 0,rgba(109,217,250,0) 100px), -moz-linear-gradient(#63c7fe, #58bef7); background-image: url('button_bg.png'), url('button_bg.png'), -webkit-gradient( radial, 50% 100%, 0, 50% 100%, 100, from(rgba(109,217,250,1)), to(rgba(109,217,250,0))), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#63c7fe), to(#58bef7)); } |
以上代码定义了按钮在静止时和有鼠标划过时的状态,其中linear-gradient(线性渐变)和radial-gradient(径向渐变)效果,由于不同核心的浏览器对此属性定义不同,所以分别添加了-webkit-和-moz-前缀,用于支持不同核心的浏览器。
CSS3的出现大大方便了一些网页效果的实现,恰到好处的一点特效,也许就会使你的网页变得非常美观。但是,不可滥用!
好复杂啊!!! 😯
看上去复杂而已,其实挺简单