您的位置:首页 > Web前端 > CSS

一个按钮引发的css3知识

2014-03-18 09:36 330 查看
还在用死板的图片做按钮的背景吗,我之前就这么用,但现在不了,也没那么绝对,假如你的老板,非让你把ie6的问题都解决完,那你有两种方法,一继续用图片,二辞职走人,追逐刺激的新技术吧!哦,好像在国外,有一种玩意css3他不叫新技术,人家玩的差不多了。

看看下边的这个按钮,话说,纯css打造,当然,我不敢直面淋漓的ie浏览器,你也算了,来看看火狐,谷歌,以及移动端的表现吧



看css代码,先后运用了空城计,反间计,糊里糊涂砸车计,唉?等等,好熟悉的台词,完全不在一个世界啊,赶紧回来-------先后应用了圆角border-radius、投影box-shadow、文本投影text-shadow、背景渐变linear-gradient、倒影-webkit-box-reflect

.button1{
color:#444;
text-decoration:none;
font-size:22px;
font-weight:bold;
font-family:Verdana, Geneva, sans-serif;
text-transform:uppercase;
display:inline-block;
text-align:center;
background-color:#ccc;
width:235px;
height:70px;
line-height:70px;
border:2px solid #444;
-webkit-border-radius:15px;
-moz-border-radius:15px;
border-radius:15px;
-webkit-box-shadow:0px 3px 2px #ccc;
-moz-box-shadow:0px 3px 2px #ccc;
box-shadow:0px 3px 2px #ccc;
box-shadow:0 0 3px 1px rgba(255, 255, 255, 0.36) inset;
text-shadow:0px 1px 1px #fff;
background-image:-moz-linear-gradient(center top , #ddd 0%, #D4D4D4 50%, #C5C5C5 50%, #ADADAD 100%);
background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ddd), color-stop(0.5, #D4D4D4), color-stop(0.5, #C5C5C5), color-stop(1, #ADADAD));
-moz-box-reflect:below 0 -moz-linear-gradient(transparent,transparent 50%,rgba(255,255,255,0.3));
-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 50%,rgba(255,255,255,0.3));}



圆角border-radius


border-radius:length|%

这是一个缩写,相当于四个角设置同样的值,用px或者百分比都可以,想要成为圆形,就用50%,你也可以单独设置每个角,语法和设置边框有的一拼,例如border-radius:5px
2px 4px
1px,分别是左上、右上、右下、左下,你恍然大悟,不就是顺时针吗,哦,是这样的,也可以啰嗦的分开写,border-top-left-radius:5px;太罗嗦,我就不细讲这个分开写了,兼容IE9+、Firefox
4+、Chrome、Safari 5+ 以及 Opera
支持。。。还有为了兼容老版本的火狐啊,谷歌啊等等,你可以加前缀,火狐-moz、谷歌/苹果-webkit、Opera -o、ie
-ms。注意样式顺序最好是私有样式然后标准样式.

投影box-shadow

box-shadow:h-shadow
v-shadow blur spread color inset

好多的参数啊,依次说下,h-shadow水平阴影(必需) v-shadow垂直阴影(必需)
blur模糊距离(可选) spread的尺寸(可选) color阴影颜色(可选)
inset内部阴影,这些属性值自己试了才记得快些,就不细说了,最后要提的是inset,加上就是内阴影,不加就是外阴影。

文本投影text-shadow

text-shadow:h-shadow v-shadow
blur color

h-shadow水平阴影(必需) v-shadow垂直阴影(必需)
blur模糊距离(可选)
color阴影颜色(可选)看起来和box投影一个意思,也没啥可讲的,相信你可以举一反三。

背景渐变gradient

gradient更确切的是属性值,由于火狐和谷歌写法不同,所以分开来说,规定按钮的背景,那就是background-image:-moz-linear-gradient(center
top , #ddd 0%, #D4D4D4 50%, #C5C5C5 50%, #ADADAD
100%);linear-gradient是线性渐变,radial-gradient是径向渐变,我们这里的按钮时用线性的,top是从上到下、left是从左到右,如果定义成left
top,那就是从左上角到右下角,我写了个center,可以去掉,#ddd
0%这个是起始颜色的意思,#ADADAD
100%结束颜色,中间可以按自己的需求添加各种百分比位置的颜色,我那个50%是指中间部位,第一个50%是前半程的结束颜色,第二个50%是后半程的起始颜色

再看下webkit内核的写法,background-image:-webkit-gradient(linear,
left top, left bottom, color-stop(0, #ddd), color-stop(0.5,
#D4D4D4), color-stop(0.5, #C5C5C5), color-stop(1,
#ADADAD));linear线性渐变写到了括号里边,然后是一对起始坐标,一对结束坐标,可以用具体数字也可以用关键位置,我用的关键位置代表左上到左下,你得脑海里是不是出现了一条竖着的直线,对了,在往后边的参数看color-stop(0,
#ddd)写颜色要用color-stop这个呀,0就是起始,后边是对应的颜色,1代表结束颜色,中间参数可以用0到1之间的小数表示,说了好多呀,求你自己一定要试一试,才能把握好这些看似很多的参数,转下一个样式。

倒影-webkit-box-reflect

-webkit-box-reflect:direction | offset |
mask-box-image

你眼睛尖不尖,发现我直接就是-webkit了吗,是呀,这个样式目前只有weibkit内核的浏览器支持,但是好玩的东西,就要玩起来
呀,direction的参数有above:倒影在对象的上边、below:下边、left:左边、right:右边,offset倒影与对象之间的间
隔,可以用像素单位,可以用百分比,可以为负数;懂ps的知道倒影需要遮罩层,mask-box-image就是遮罩层,其可用的参数是;none:无遮
罩图像、url:引用图像作为遮罩、linear-gradient:使用线性渐变创建遮罩图像、radial-gradient:使用径向(放射性)渐
变创建遮罩图像、repeating-linear-gradient:使用重复的线性渐变创建背遮罩像、repeating-radial-
gradient:使用重复的径向(放射性)渐变创建遮罩图像,咱不复杂,就用线性渐变就够了,-webkit-linear-gradient(transparent,transparent
50%,rgba(255,255,255,0.3))这个参数组合你可以直接用的,就是一个遮罩的用处。

终于介绍完了,及官方又长篇,勿喷啊,如果看不爽,那我建议你,亲自写写,你会明白的更快吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: