考慮一下,如何在網頁中達到類似以下文字漸變的效果?
傳統的實現中,是用一副透明漸變的圖片覆蓋在文字上。具體實現方式可參考 http://www.qianduan.net/css-gradient-text-effect.html 。這種方式優點是圖片可控,所以可實現很復雜的漸變效果,但是缺點是圖片漸變色必須與背景色一致,同時損失了鼠標點擊、文字選擇等事件。
改進的方法可以使用 CSS3 的背景漸變 -webkit-gradient ,用一個背景漸變的 DIV 代替圖片。下面是實現效果示例,相比以上方案優點是不使用圖片,減小請求量和流量,但是對于以上缺點,仍然無法解決。
有沒有完美的解決方案呢?
以下介紹使用 -webkit-mask 遮罩的方案來實現文字漸變,完全避免了以上方案的不足。下面是實現的完美效果圖:
現在讓我們開始 CSS3 Text Gradient 之旅。
1、構建 HTML 內容和基本樣式
我們使用一個 H1 標簽包裹一個 A 標簽:
<h1><a href= "#" mce_href= "#" >Jiangyujie</a></h1>
<h1><a href="#" mce_href="#">Jiangyujie</a></h1>
樣式定義如下,我們使用 text-shadow 為文字添加陰影:
h1 {
font-family: Segoe UI, Verdana, sans-serif;
font-size: 100px;
line-height: 100px;
text-shadow: -3px 0 4px #006;
}
h1 a:link,
h1 a:visited,
h1 a:hover,
h1 a:active {
color: #d12;
text-decoration: none;
}
h1 {
font-family: Segoe UI, Verdana, sans-serif;
font-size: 100px;
line-height: 100px;
text-shadow: -3px 0 4px #006;
}
h1 a:link,
h1 a:visited,
h1 a:hover,
h1 a:active {
color: #d12;
text-decoration: none;
}
基本效果如下:
2、添加漸變效果
我們通過 CSS3 的 mask 屬性為文字添加線性漸變。和 background 的漸變相比,可以理解為 background是在文字后面,而 mask 是疊加在文字上面的。 Mask 可以設置為普通顏色、線性漸變、徑向漸變或者圖片。
代碼如下:
h1 a:link,
h1 a:visited,
h1 a:hover,
h1 a:active {
color: #d12;
text-decoration: none;
-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
}
h1 a:link,
h1 a:visited,
h1 a:hover,
h1 a:active {
color: #d12;
text-decoration: none;
-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
}
效果如下所示:
3、漸變為另外一種顏色
因為 -webkit-gradient 實際上是按照圖片的方式進行處理的,所以我們不能通過設置文字顏色為漸變來實現文字顏色漸變為另外一種顏色的效果(不信的話你可以試試)。
|
新聞熱點
疑難解答