本篇文字將展示給你的是,如何利用HTML5/CSS3,僅用5步就可以製作便籤貼效果的HTML頁面,效果圖如下:
(註:圖裡的文字純屬杜撰,搞笑目的,如有雷同,純屬巧合,謝謝! )
註:該效果可以在Safari, Chrome,Firefox和Opera在看到效果,IE上由於對HTML5的支持不完全,所以看不出效果。
第一步:建立基本HTML和正方形
先加入基本的HTML結構以及建構基本的正方形,程式碼如下:
每個note都加一個href連接,主要是為了支持鍵盤訪問,CSS代碼如下:
*{
margin:0;
padding:0;
}
body{
font-family:arial,sans-serif;
font-size:100%;
marginif: 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;
height:10em;
width:10em;
height:10em;
width:10em;
padding:1em;
}
ul li{
margin:1em;
float:left;
}
效果如下:
複製程式碼
程式碼如下:
複製代碼
代碼如下:
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;
color: #000;
background: #ffc;
display: block;
height: 10em;
width: 10em;
padding: 1em; /* Firefox */
-moz-box-shadow: 5px 5px 7px rgba(33,333,33,333, ,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,每6個傾斜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-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實驗室系列文章,就可以看出來了。
另:圖裡的文字純屬杜撰,如有雷同,純屬巧合,謝謝!