(注:圖裏的文字純屬杜撰,搞笑目的,若有雷同,純屬巧合,謝謝!)css

注:該效果能夠在Safari, Chrome,Firefox和Opera在看到效果,IE上因爲對HTML5的支持不徹底,因此看不出效果。html
第一步:建立基本HTML和正方形web
首先添加基本的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代碼以下:api
- *{
- 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%;
- }
關於陰影,因爲各個瀏覽器還都不徹底支持,因此須要分別處理,代碼以下:google
- 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實驗室系列文章,就能夠看出來了。