您好,登錄后才能下訂單哦!
隨著Web技術的發展,HTML5和CSS3技術在網站建設中越發普及,除此之外,由于扁平化風格設計的風靡,CSS3技術所帶來的SEO搜索引擎優化收益越來越大。以色塊為主的扁平化設計風格大大減少了網站的圖片數量,CSS3的使用大大減少了網站中JS的調用以及大量對DOM的操作,從根本上優化網站,從而提高用戶體驗。在本次教程中,讓我們通過CSS3 Transform屬性來實現華麗的導航菜單3D轉換效果。
HTML代碼
<section class="bg-color">
<nav class="sytm-effect">
<a href="http://www.sytm.net/"><span data-hover="sytm">添美科技</span></a>
<a href="http://www.sytm.net/wangzhanjianshe/"><span data-hover="Develop">網站建設</span></a>
<a href="http://www.sytm.net/jiejuefangan/"><span data-hover="Design">網上商城</span></a>
<a href="http://www.sytm.net/mobile/"><span data-hover="Mobile">移動應用</span></a>
<a href="http://www.sytm.net/ruanjiankaifa/"><span data-hover="sytmsoft">軟件開發</span></a>
</nav>
</section>
我們使用HTML5語義化標簽section以及nav來進行布局,值得注意的是,我們將變化后的數據儲存在了自定義屬性data-hover中,從而充分實現我們所提倡的前端解耦。
CSS代碼
[css] view plaincopyprint?
.sytm-effect a span {
position: relative;
display: inline-block;
padding: 0 14px;
background: #2195de;
-webkit-transition: -webkit-transform 0.3s;
-moz-transition: -moz-transform 0.3s;
transition: transform 0.3s;
-webkit-transform-origin: 50% 0;
-moz-transform-origin: 50% 0;
transform-origin: 50% 0;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
}
通過CSS3 Transform屬性來保留3D轉換,通過CSS3 Transition屬性定義變化效果時間。
[css] view plaincopyprint?
.sytm-effect a span::before {
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 100%;
background: #0965a0;
content: attr(data-hover);
-webkit-transition: background 0.3s;
-moz-transition: background 0.3s;
transition: background 0.3s;
-webkit-transform: rotateX(-90deg);
-moz-transform: rotateX(-90deg);
transform: rotateX(-90deg);
-webkit-transform-origin: 50% 0;
-moz-transform-origin: 50% 0;
transform-origin: 50% 0;
}
我們通過before這個偽類,將data-hover中的數據加入到變換的單位中,從而減少DOM的構建數量。
通過CSS3 Transform屬性來定義before這個偽類的變形效果。
[css] view plaincopyprint?
.sytm-effect a:hover span,
.sytm-effect a:focus span {
-webkit-transform: rotateX(90deg) translateY(-22px);-moz-transform: rotateX(90deg) translateY(-22px);transform: rotateX(90deg) translateY(-22px);}
.sytm-effect a:hover span::before,
.sytm-effect a:focus span::before {
background: #28a2ee;
}
通過hover以及focus動作來定義對應的元素屬性,從而實現華麗的變化效果,完成!
注:該效果只能在高級瀏覽器下實現,不支持IE8及以下版本瀏覽器。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。