zoukankan      html  css  js  c++  java
  • 使用HTML 5/CSS3五步快速制作便签贴特效

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

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

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

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

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

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

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

    1. *{    
    2.     margin:0;    
    3.     padding:0;    
    4.   }    
    5.   body{    
    6.     font-family:arial,sans-serif;    
    7.     font-size:100%;    
    8.     margin:3em;    
    9.     background:#666;    
    10.     color:#fff;    
    11.   }    
    12.   h2,p{    
    13.     font-size:100%;    
    14.     font-weight:normal;    
    15.   }    
    16.   ul,li{    
    17.     list-style:none;    
    18.   }    
    19.   ul{    
    20.     overflow:hidden;    
    21.     padding:3em;    
    22.   }    
    23.   ul li a{    
    24.     text-decoration:none;    
    25.     color:#000;    
    26.     background:#ffc;    
    27.     display:block;    
    28.     height:10em;    
    29.     width:10em;    
    30.     padding:1em;    
    31.   }    
    32.   ul li{    
    33.     margin:1em;    
    34.     float:left;    
    35.   } 

    效果如下:

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

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

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

    然后设置引用这个字体:

    1. ul li h2 
    2.        {  
    3.            font-size140%;  
    4.            font-weightbold;  
    5.            padding-bottom10px;  
    6.        }  
    7.        ul li p  
    8.        {  
    9.            font-family"Reenie Beanie" ,arial,sans-serif,微软雅黑;  
    10.            font-size110%;  
    11.        } 

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

    1. ul li a  
    2.      {  
    3.          text-decorationnone;  
    4.          color#000;  
    5.          background#ffc;  
    6.          displayblock;  
    7.          height10em;  
    8.          width10em;  
    9.          padding1em/* Firefox */ 
    10.          -moz-box-shadow: 5px 5px 7px rgba(33,33,33,1); /* Safari+Chrome */ 
    11.          -webkit-box-shadow: 5px 5px 7px rgba(33,33,33,.7); /* Opera */ 
    12.          box-shadow: 5px 5px 7px rgba(33,33,33,.7);  
    13.      } 

    效果如下:

    第三步:倾斜正方形

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

    1. ul li a{    
    2.    -webkit-transform:rotate(-6deg);    
    3.    -o-transform:rotate(-6deg);    
    4.    -moz-transform:rotate(-6deg);    
    5.  } 

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

    1. ul li:nth-child(even) a{    
    2.      -o-transform:rotate(4deg);    
    3.      -webkit-transform:rotate(4deg);    
    4.      -moz-transform:rotate(4deg);    
    5.      position:relative;    
    6.      top:5px;    
    7.    }    
    8.    ul li:nth-child(3n) a{    
    9.      -o-transform:rotate(-3deg);    
    10.      -webkit-transform:rotate(-3deg);    
    11.      -moz-transform:rotate(-3deg);    
    12.      position:relative;    
    13.      top:-5px;    
    14.    }    
    15.    ul li:nth-child(5n) a{    
    16.      -o-transform:rotate(5deg);    
    17.      -webkit-transform:rotate(5deg);    
    18.      -moz-transform:rotate(5deg);    
    19.      position:relative;    
    20.      top:-10px;    
    21.    } 

    效果如下:

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

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

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

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

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

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

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

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

    1. ul li:nth-child(even) a{    
    2.       -o-transform:rotate(4deg);    
    3.       -webkit-transform:rotate(4deg);    
    4.       -moz-transform:rotate(4deg);    
    5.       position:relative;    
    6.       top:5px;    
    7.       background:#cfc;    
    8.     }    
    9.     ul li:nth-child(3n) a{    
    10.       -o-transform:rotate(-3deg);    
    11.       -webkit-transform:rotate(-3deg);    
    12.       -moz-transform:rotate(-3deg);    
    13.       position:relative;    
    14.       top:-5px;    
    15.       background:#ccf;    
    16.     } 

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

    总结

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

  • 相关阅读:
    作业2
    实验12——指针的基础应用2
    实验11——指针的基础应用
    实验十——一维数组的定义及引用
    实验九——基本数据类型存储及应用总结
    实验八--函数定义及调用总结
    实验七——函数定义及调用总结
    实验六——循环结构程序练习总结
    实验五——循环结构学习总结
    实验三——for 语句及分支结构else-if
  • 原文地址:https://www.cnblogs.com/xingui/p/3547819.html
Copyright © 2011-2022 走看看