热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> 网页标准>>正文内容

CSS技巧 — 不使用图片实现圆角、阴影、渐变等功能

发布时间:2010年06月25日点击数: 佚名

UI要求越来越高,界面越做越华丽,给我们开发人员带来的就是使用大量的背景图片,下面介绍一些通过css(不使用图片或少使用图片)来实现一些很常见的效果,

 

圆角效果

     圆角用的越来越多,因为圆角确实好看,效果如下:

    

     要实现上面的圆角,一般切图是左,右(或上下)各切1个图片做背景,但这样做只适合固定宽度或高度的box,而且如果box背景不一样,图片需要另外切。

     现在很多浏览器都支持圆角的css,css3也支持,代码如下:

  1. .b_box{ 
  2.     text-align:center;width:200px;line-height:60px
  3.     border:1px solid #C0C0C0;background-color:#DBEAFF
  4.     /*firefox*/ 
  5.     -moz-border-radius: 5px
  6.     /*css3*/ 
  7.     border-radius: 5px
  8.     /*webkit*/ 
  9.  -webkit-border-radius: 5px

效果:

但IE9以下的版本都不支持圆角,所以上面的效果在ie9以下显示还是直角的.

    目前我们针对ie9以下的浏览器使用下面的方法实现,切1个透明的圆形图片(这个图片要求圆角内测是透明的,而外侧是不透明的),用绝对定位来显示4个圆角,这样做的好处是只使用1个图片,即可以实现任何大小,任何背景颜色的box圆角,但缺点就是需要多余的HTML代码,代码如下:

  1. <style type="text/css"
  2.     .b_box_ie{ 
  3.         text-align:center;width:200px;line-height:60px
  4.         background-color:#DBEAFF
  5.         position:relative
  6.     } 
  7.     .b_r{width:3px;height:3px;font-size:0;background:url(http://pic002.cnblogs.com/img/bearstar/201006/2010062419324216.gif) no-repeat;position:absolute;} 
  8.     .r_1{top:0;left:0;} 
  9.     .r_2{background-position:-3px 0;top:0;right:0;} 
  10.     .r_3{background-position:0 -3px;left:0;bottom:0;} 
  11.     .r_4{background-position:-3px -3px;bottom:0;right:0;} 
  12. <style> 
  13.  
  14. <div class="b_box_ie"
  15.     CSS 小技巧 
  16.     <div class="b_r r_1"></div> 
  17.     <div class="b_r r_2"></div> 
  18.     <div class="b_r r_3"></div> 
  19.     <div class="b_r r_4"></div> 
  20. </div> 

   因我切的图片是gif,而不是png,所以效果不太好看(不像真真的圆角)。效果如下:

阴影效果
    大家注意我签名的阴影效果,如果要实现这样的效果,使用图片,切图都很麻烦,让我们看看css如何实现吧,代码:

  1. .b_shadow{ 
  2.   height:60px;line-height:60px
  3.   width:200px;border:1px solid #C0C0C0;background-color:#DBEAFF
  4.   -webkit-box-shadow: 5px 5px 5px rgba(0000.5); 
  5.   -moz-box-shadow: 5px 5px 5px rgba(0000.5); 
  6.   box-shadow: 5px 5px 5px rgba(0000.5); 
  7.   /*IE6,IE7语法*/ 
  8.   filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color='gray'); 
  9.   /*IE8语法,可恶的IE,不同的版本还要写的不一样*/ 
  10.   -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color='gray')" 
  11. }  

结合圆角,实现效果如下:

  注:针对IE的filter,再测试过程中发现必须加height和background-color,如果不设置height,则无阴影效果,如果不设置背景色,则阴影效果不是作用在box 上,而是在文字上,原因不是很清楚,有兴趣的同学可以自己测下。

渐变效果:
     这个效果也应该也是用的最多的,这次先上效果:

代码:

  1. .gradients{ 
  2.     text-align:center;width:200px;line-height:60px
  3.     background-image: -moz-linear-gradient(top#BDD738#7E9516); 
  4.     background-image: -webkit-gradient(linear, left topleft bottom, from(#BDD738), to(#7E9516)); 
  5.     filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#BDD738,endColorstr=#7E9516); 
  6.     -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#BDD738,endColorstr=#7E9516)"

按钮发光效果:
     这个效果在我签名中的评论按钮实现了(我签名的效果没有考虑IE6,IE7),大家看到那几个按钮,都有些发光效果,而且鼠标移上去也有效果,可能有人看到以为我用了很多图片,其实只用了2个png图片,1个图片是上半部分完全透明,下半部分半透明,另1个图片是上半部分半透明,下半部分完全透明。用这2个图片+背景色就可以实现所有按钮的发光效果。因为我的签名中使用data:image/png;base64嵌入的图片,所以不支持IE6,IE7。
     DEMO效果(该效果在IE6下看不出来,是因为没有对PNG进行处理):

代码:

  1. <style> 
  2. .b_btn{ 
  3.     padding:5px 10px;color#fff
  4.     background:url(http://pic002.cnblogs.com/img/bearstar/201006/2010062420253961.png) repeat-x
  5.     text-decorationnone;font-weightbold
  6. .b_btn:hover{ 
  7.     background:url(http://pic002.cnblogs.com/img/bearstar/201006/2010062420254656.png) repeat-x
  8. </style> 
  9. <a class="b_btn" href="javascript:void(0);" style="background-color:#2daebf;">精彩推荐</a>&nbsp;&nbsp; 
  10. <a class="b_btn" href="javascript:void(0);" style="background-color:#e33100;">水平一般</a> 

PS:本文中只是做一些简单的介绍,每种效果都没做很详细的说明,对于具体方法的使用,请大家自己查查资料。

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作