热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

原文地址:http:www.cnblogs.comBearsTaR
原文地址: http://www.cnblogs.com/BearsTaR/
 
=======================================================================================

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

 

圆角效果

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

    

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

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

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

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

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

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

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

CSS 小技巧
 
 
 
 
    
CSS 小技巧
 
 
 
 

 

阴影效果

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

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

 

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

 

渐变效果:

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

CSS 小技巧

    代码:

?
1
2
3
4
5
6
7
.gradients{
     text-align : center ; width : 200px ; line-height : 60px ;
     background-image : -moz-linear-gradient( top , #BDD738 , #7E9516 );
     background-image : -webkit-gradient(linear, left top , left bottom , from( #BDD738 ), to( #7E9516 ));
     filter:progid:DXImageTransform.Microsoft.gradient(startColorstr= #BDD738 ,endColorstr= #7E9516 );
     -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
2
3
4
5
6
7
8
9
10
11
12
< style >
.b_btn{
     padding:5px 10px;color: #fff;
     background:url(http://pic002.cnblogs.com/img/bearstar/201006/2010062420253961.png) repeat-x;
     text-decoration: none;font-weight: bold;
}
.b_btn:hover{
     background:url(http://pic002.cnblogs.com/img/bearstar/201006/2010062420254656.png) repeat-x;
}
style >
< a class = "b_btn" href = "Javascript:void(0);" style = "background-color:#2daebf;" >精彩推荐 a >  
< a class = "b_btn" href = "Javascript:void(0);" style = "background-color:#e33100;" >水平一般 a >

 

 

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

 

评论更新:本来设置个快捷评论,没想到很多朋友都随便点着玩,虽然赚去了很多评论数,但大部分都是无意义的评论,而不是技术交流的评论,所以决定把快捷评论关闭掉,并以后再也不启用该功能了。希望大家都用心交流。

[作者]:BearRui(AK-47)
[博客]:  http://www.cnblogs.com/BearsTaR/
[声明]:本博所有文章版权归作者所有(除特殊说明以外),转载请注明出处.

推荐阅读
  • 本文介绍了如何利用摄像头捕捉图像,并将捕获的图像数据保存为文件。通过详细的代码示例,展示了摄像头调用的具体实现方法,适用于多种应用场景,如安全监控、图像处理等。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 期末Web开发综合实践项目:运用前端技术打造趣味小游戏体验
    期末Web开发综合实践项目中,学生通过运用HTML、CSS和JavaScript等前端技术,设计并实现了一款趣味性十足的小游戏。该项目不仅检验了学生对前端基础知识的掌握情况,还提升了他们的实际操作能力和创意设计水平。视频链接展示了项目的最终成果,直观呈现了游戏的互动性和视觉效果。 ... [详细]
  • HTML5 Web存储技术是许多开发者青睐本地应用程序的重要原因之一,因为它能够实现在客户端本地存储数据。HTML5通过引入Web Storage API,使得Web应用程序能够在浏览器中高效地存储数据,从而提升了应用的性能和用户体验。相较于传统的Cookie机制,Web Storage不仅提供了更大的存储容量,还简化了数据管理和访问的方式。本文将从基础概念、关键技术到实际应用,全面解析HTML5 Web存储技术,帮助读者深入了解其工作原理和应用场景。 ... [详细]
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 在第10天的夜灵HTML日志中,我们深入探讨了浏览器兼容性和高级选择器的应用。CSS3引入了许多新属性,但在旧版浏览器中的支持情况并不理想。然而,目前主流浏览器的最新版本已全面支持这些新特性。对于那些不支持CSS3新属性的浏览器,我们提供了多种解决方案,以确保网站在不同环境下的兼容性和用户体验。此外,我们还详细讨论了如何利用高级选择器提升页面布局的灵活性和可维护性。 ... [详细]
  • 在HTML5应用中,Accordion(手风琴,又称抽屉)效果因其独特的展开和折叠样式而广泛使用。本文探讨了三种不同的Accordion交互效果,通过层次结构优化信息展示和页面布局,提升用户体验。这些效果不仅增强了视觉效果,还提高了内容的可访问性和互动性。 ... [详细]
  • Eclipse JFace Text框架中IDocument接口的getNumberOfLines方法详解与编程实例 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • 使用 Vue 集成 iScroll 实现移动端表格横向滚动与固定列功能 ... [详细]
  • 定义Function类型:1functionsum(num1,num2){return num1+num2;}2varsumfunction(num1,num2){returnn ... [详细]
author-avatar
ccsv0601604
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有