求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
使用HTML5/CSS3五步快速制作便签贴特效
 

作者:汤姆大叔 ,发布于2013-2-22,来源:博客

 

本篇文字将展示给你的是,如何利用HTML5/CSS3,仅用5步就可以制作便签贴效果的HTML页面,效果图如下:

(注:图里的文字纯属杜撰,搞笑目的,如有雷同,纯属巧合,谢谢!)

注:该效果可以在Safari, Chrome,Firefox和Opera在看到效果,IE上由于对HTML5的支持不完全,所以看不出效果。

第一步:创建基本HTML和正方形

首先添加基本的HTML结构以及构建基本的正方形,代码如下:

   <ul> 
      <li><a href="#">            
          <h2>Dudu:</h2>            
          <p>最近咋没有美女发帖呢?我一定给个头条推荐,recommend!recommend!</p>        
      </a></li>        
      <li><a href="#">            
          <h2>汤姆大叔:</h2>            
          <p>Team的一个成员去了Microsoft做SDE3,又得hire new member了</p>        
      </a></li>        
      <li><a href="#">            
          <h2>技术弟弟:</h2>            
          <p>O2DS和我翻译的书是一样,我一定要比他翻得快, 晚上加班翻,fast! fast! fast!</p>        
      </a></li>        
      <li><a href="#">            
          <h2>Artech:</h2>            
          <p>WCF的帖子真是少,看来我得多发点帖子让大家学习呢</p>        
      </a></li>        
      <li><a href="#">            
          <h2>吉日嘎拉:</h2>            
          <p>将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情</p>        
     </a></li>        
     <li><a href="#">            
         <h2>某武林高手:</h2>            
         <p>低于25000块的面试再也不去了,它grandma的</p>        
     </a></li>    
   </ul> 

每个note都加一个href连接,主要是为了支持键盘访问,CSS代码如下:

   *{ 
        margin:0;
        padding:0;
      }
      body{
        font-family:arial,sans-serif;
        font-size:100%;
        margin:3em;
        background:#666;
        color:#fff;
      }
      h2,p{
        font-size:100%;
        font-weight:normal;
      }
      ul,li{
        list-style:none;
      }
      ul{
        overflow:hidden;
        padding:3em;
      }
      ul li a{
        text-decoration:none;
        color:#000;
        background:#ffc;
        display:block;
        height:10em;
        width:10em;
        padding:1em;
      }
      ul li{
        margin:1em;
        float:left;
      }

效果如下:

第二步:阴影和手写草体字

这一步,是我们要实现正方形的阴影效果,并且将字体改为草体(仅限英文),由于google提供了Font API的支持,所以我们可以直接使用了,首先添加对Google API的调用:

<link href="http://fonts.googleapis.com/css?family=Reenie+Beanie:regular" rel="stylesheet" type="text/css">

然后设置引用这个字体:

   ul li h2        
   { 
       font-size: 140%;
       font-weight: bold;
       padding-bottom: 10px;
    }
   ul li p
   {
       font-family: "Reenie Beanie" ,arial,sans-serif,微软雅黑;
       font-size: 110%;
   }

关于阴影,由于各个浏览器还都不完全支持,所以需要分别处理,代码如下:

   ul li a        
   { 
      text-decoration: none; 
      color: #000; 
      background: #ffc;
      display: block;
      height: 10em;
      width: 10em;
      padding: 1em; /* Firefox */ 
      -moz-box-shadow: 5px 5px 7px rgba(33,33,33,1); /* Safari+Chrome */ 
      -webkit-box-shadow: 5px 5px 7px rgba(33,33,33,.7); /* Opera */ 
      box-shadow: 5px 5px 7px rgba(33,33,33,.7);
   }

效果如下:

第三步:倾斜正方形

为了让正方形倾斜,我们需要在li->a里添加如下代码:

   ul li a{ 
       -webkit-transform:rotate(-6deg);        
	   -o-transform:rotate(-6deg);        
	   -moz-transform:rotate(-6deg);      
	}

但是为了能让正方形随机倾斜,而不是全部都倾斜,我们需要使用新的CSS3选择器,让正方形在每2个倾斜4个deg,每3个倾斜负3个deg,每5个倾斜5个deg:

   ul li:nth-child(even) a{  
      -o-transform:rotate(4deg);        
	  -webkit-transform:rotate(4deg);        
	  -moz-transform:rotate(4deg);        
	  position:relative;        
	  top:5px;    
   }      
   ul li:nth-child(3n) a{        
      -o-transform:rotate(-3deg);        
	  -webkit-transform:rotate(-3deg);        
	  -moz-transform:rotate(-3deg);        
	  position:relative;        
	  top:-5px;      
   }      
   ul li:nth-child(5n) a{    
      -o-transform:rotate(5deg);        
	  -webkit-transform:rotate(5deg);        
	  -moz-transform:rotate(5deg);        
	  position:relative;        
	  top:-10px;     
   }

效果如下:

第四步:Hover和Focus时放缩正方形

想在hover和focus的时候达到缩放的效果,我们需要添加如下代码:

   ul li a:hover,ul li a:focus{ 
      -moz-box-shadow:10px 10px 7px rgba(0,0,0,.7);    
	  -webkit-box-shadow: 10px 10px 7px rgba(0,0,0,.7);    
	  box-shadow:10px 10px 7px rgba(0,0,0,.7);    
	  -webkit-transform: scale(1.25);    
	  -moz-transform: scale(1.25);    
	  -o-transform: scale(1.25);    
	  position:relative;    
	  z-index:5;  
   } 

设置z-index为5是为了让正方形在放大的时候盖住其它的正方形,同时因为也设置了focus,所以也支持Tab键切换访问,效果如下:

第五步:平滑过渡和添加颜色

第四步的特效,看起来有些生硬,我们可以添加Transition来达到平滑动画的效果,另外颜色比较单一,我们可以设置一下不同的颜色,首先在ul->li->a里添加Transition:

   -moz-transition:-moz-transform .15s linear;    
   -o-transition:-o-transform .15s linear;    
   -webkit-transition:-webkit-transform .15s linear; 

然后在even和3n里定义不同的颜色:

   ul li:nth-child(even) a{   
       -o-transform:rotate(4deg);        
	   -webkit-transform:rotate(4deg);        
	   -moz-transform:rotate(4deg);        
	   position:relative;        
	   top:5px;        
	   background:#cfc;      
	}      
	ul li:nth-child(3n) a{    
	    -o-transform:rotate(-3deg);        
		-webkit-transform:rotate(-3deg);        
		-moz-transform:rotate(-3deg);        
		position:relative;        
		top:-5px;        
		background:#ccf;     
   }

这样,就完成了我们最终的效果:

总结

至此,我们利用了HTML5和CSS3的基本特性做成了一个还不错的便签贴效果,HTML5/CSS3确实很强大,如果在加一些高级特性,比如和JavaScript结合起来,能实现更加牛逼的效果,从当耐特砖家给大家的HTML5实验室系列文章,就可以看出来了。

相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
 
分享到
 
 


十天学会DIV+CSS(WEB标准)
HTML 5的革新:结构之美
介绍27款经典的CSS框架
35个有创意的404错误页面
最容易犯的13个JavaScript错误
设计易理解和操作的网站
更多...   


设计模式原理与应用
从需求过渡到设计
软件设计原理与实践
如何编写高质量代码
单元测试、重构及持续集成
软件开发过程指南


东软集团 代码重构
某金融软件服务商 技术文档
中达电通 设计模式原理与实践
法国电信 技术文档编写与管理
西门子 嵌入式设计模式
中新大东方人寿 技术文档编写
更多...