CSS中的text-shadow。
text-shadow(文字投影),box-shadow(容器投影),border-radius(圓角)這三個屬性估計以后用的比較多,記錄 一下。目前不支持IE系列(不過可以使用其他方法實現,下文有詳細介紹),無語的IE系,只支持Firefox和chrome。
?
?一、除IE之外的text-shadow
Text Shadow :文本的陰影,給文本添加陰影效果
文字陰影的結構順序為:x 軸偏移,y 軸偏移,模糊,顏色。
設置一個負值的 x 軸偏移將陰影轉移到左側。設置一個負值的 y 軸偏移轉將陰影轉移到頂部。別忘了,你可以在陰影顏色中應用 RGBA 值。
書寫格式:text-shadow:apx bpx cpx #color;
其中a指X軸上的位移,b指Y軸上的位移,c指陰影的寬度,color指陰影的顏色值;a、b可為負,c不能為負。
下面我們來簡單的演示兩個實例說明text-shadow的用法:
實例一(一種陰影):
.demo01{text-shadow:2px 2px 5px #305999}
實例二(多種陰影):
.demo02{background:#305999;text-shadow:1px 1px 1px #fff,-1px -1px 1px #fff}
text-shadow效果:
? 效果是不錯,可是讓我們頭痛的是IE是不支持text-shadow效果,但為了在兼容這一問題,我們只好使用濾鏡filter:shadow來處 理(本人不提倡使用濾鏡)。filter:shadow濾鏡作用與dropshadow類似,也能使用對象產生陰影效果,不同的是shadow可產生漸近 效果,使用陰影更平滑實現。
濾鏡語法:
E {filter:shadow(Color=顏色值,Direction=數值,Strength=數值)}
其中E是元素選擇器,Color用于設定對象的陰影色;Direction用于設定投影的主向,取值為0即零度(表示向上方向),45為右 上,90為右,135為右下,180為下方,225為左下方,270為左方,315為左上方;Strength就是強度,類似于text-shadow中 的blur值。
? 我們先不管IE下的效果了,我個人認為text-shadow運用好了,也能像photoshop一樣制作出非常好的效果,下面我這里羅列出一些比較好看的實例以供大家參考
注:下面所有的Demo需要加上這個公用的樣式:
.demo {
background: #666666;
width: 440px;
padding: 30px;
font: bold 55px "微軟雅黑", "Lucida Grande", "Lucida Sans", Helvetica, Arial, Sans;;
color: #fff;
text-transform: uppercase;
}
?
?
效果一:Glow and Extra Glow effect(也就是NEON effect)
.demo2 {
text-shadow: 0 0 20px red;
}
?
?
輝光效果,我們設置比較大的模糊半徑來增加其輝光效果,你可以改變不同的模糊半徑值來達到不同的效果,當然你也可以同時增加幾個不同的半徑值,創造多種不同的陰影效果。就如下面的NEON效果。
.demo3 {
text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 40px #ff00de, 0 0 70px #ff00de;
}
?
?
?
效果二:Apple Style Effect
.demo4 {
color: #000;
text-shadow: 0 1px 1px #fff;
}
?
?
?
效果三:Photoshop Emboss Effect
.demo5 {
color: #ccc;
text-shadow: -1px -1px 0 #fff,1px 1px 0 #333,1px 1px 0 #444;
}
?
?
?
效果二和效果三,我想用photoshop的朋友一定很熟悉,是不是很類似我們 photoshop中的投影和浮雕效果的呀。應用這兩個效果大家一定要注意,其模糊值一定要設置為0,使文本不具有任何模糊效果,主要用來增加其質感,你 也可以像photoshop中制作一樣,改變不同的投光角度,從而制作出不同的效果,這里我就不舉例子了,感興趣的朋友可以自己嘗試一下。
?
效果四:Blurytext Effect
.demo6 {
color: transparent;
text-shadow: 0 0 5px #f96;
}
?
?
?
用text-shadow制作模糊的效果主要要注意一點就是,把文本的前景色設置為透明transparent,如果模糊值越大,其效果越糊 糊;其二,我們不設置任何方向的偏移值。如果結合前面的photoshop emboss效果,可以讓你等到不同的效果。提醒一下opera瀏覽器不支持這個效果。
?
我們結合前面的Photoshop Emboss效果,我們可以制作出一個帶有模糊的浮雕效果:
.demo7 {
color: transparent;
text-shadow:0 0 6px #F96, -1px -1px #FFF, 1px -1px #444;
}
?
?
效果五:Inset text effect
.demo8 {
color: #566F89;
background: #C5DFF8;
text-shadow: 1px 1px 0 #E4F1FF;
}
?
?
?
這種效果需要注意以:文字的前景色要比背景色暗,陰影顏色稍比背景色亮一點點,這一步很重要,如果陰影色太亮看起來會怪,如果太暗將沒有效果顯示。具體實現可能看看stylizedweb的制作。Inset效果是文本的影子效果,也是常見的一種效果,陰影是同一個小偏移量給人一種微妙的突出效果。
?
效果六:Stroke text effect
.demo9 {
color: #fff;
text-shadow: 1px 1px 0 #f96,-1px -1px 0 #f96;
}
?
?
?
描邊效果跟我們在Photoshop相比,我承認效果差很多,出現斷點,但有時還是可以試用達到一種特殊的描邊效果,其主要運用兩個陰影,第一個向左上投影,而第二向右下投影,還需注意,制作描邊的陰影效果我們不使用模糊值。
?
效果七:3D text effect
.demo10 {
color: #fff;
text-shadow: 1px 1px rgba(197, 223, 248,0.8),2px 2px rgba(197, 223, 248,0.8),3px 3px rgba(197, 223, 248,0.8),
4px 4px rgba(197, 223, 248,0.8),5px 5px rgba(197, 223, 248,0.8),6px 6px rgba(197, 223, 248,0.8);
}
?
?
?
我們換過投影方向可以制作出另外一種3D文字效果:
.demo11 {
color: #fff;
text-shadow: -1px -1px rgba(197, 223, 248,0.8),-2px -2px rgba(197, 223, 248,0.8),-3px -3px rgba(197, 223, 248,0.8),
-4px -4px rgba(197, 223, 248,0.8),-5px -5px rgba(197, 223, 248,0.8),-6px -6px rgba(197, 223, 248,0.8);
}
?
?
?
3D文字效果運用原理就是像Photoshop一樣,我們在文字的下方或上方復制了多個圖層,并把每一個層向左上或右下方向移動一個1px距 離,從而制作出3D效果。同時我們層數越多,其越厚重。換成用text-shadow制作就是使用多個陰影,并把陰影色設置相同,給其使用rgba色效果 更佳,如上面的實例。
?
效果八:Vintge/Retro text effect:
.demo11 {
color: #eee;
text-shadow: 5px 5px 0 #666, 7px 7px 0 #eee;
}
?
?
?
Vintage retro這種風格的文字效果是由兩個文本陰影合成的,這里需要注意的是:第一個陰影色和背景色相同;文本前景色和第二個陰影色相同
?
效果九:Anaglyphic text effect
.demo13 {
color: rgba(255, 179, 140,0.5);
text-shadow: 3px 3px 0 rgba(180,255,0,0.5);
}
?
?
?
anaglyphic文字效果起到一種補色的效果,從而制作出一種三維效果圖。其效果是用css重新使用的文字陰影和文本前景的rgba色組合而成。在文本的前景色和陰影上同時使用rgba色,使底層的文字是通過影子可見。
? 上面我主要列出了九個不同效果的實例,當然大家可以改變各種方式制作出一些特殊的效果,也再一次證實CSS3中的text-shadow實力是不淺的,希望大家能喜歡上這個屬性,并能更好的使用這個屬性。雖然現在IE不支持,但大家不要懼怕使用CSS3,因為我們做前端的遲早都會需要掌握這些新技術的。
?
?
? 二、IE下如何實現text-shadow
1、glow濾鏡下的文字陰影效果
IE濾鏡中有個名叫glow的濾鏡,用來實現光暈效果,于是,我們可以用來實現無方向的文字陰影效果。
該濾鏡最簡單的使用類似下面:
filter:glow(color=black,strength=5);
上面實現的效果就是5像素擴散大小的黑色光暈,效果類似下面(截自IE瀏覽器):
HTML代碼:
<div class="bg">
<h1 class="font">空谷尋香覓幽蘭</h1>
</div>
css代碼:
.bg {
width: 512px;
? height: 140px;
? margin: 1em auto;
background: rgba(255, 123, 189, 0.59);
}
.font {
margin: 0;
padding: 1em;
color: #fff;
text-shadow: 0 0 5px rgb(0, 0, 0);
font-size: 36px;
font-family: "微軟雅黑";
float: left;
filter: glow(color=black, strength=5);
}
運行結果簡要展示(上為chrome,下為IE):
?
?
不足:
1. 雖然IE瀏覽器的glow光暈濾鏡可以實現勉強可以稱為的文字陰影效果,但是其效果相比原生的text-shadow屬性就是玄彬和郭德綱的區別,并且對不同顏色的支持效果大相徑庭,可以看到不僅光暈顏色不純(雜色叢生),且文字邊緣也有不和諧的黑色糙邊,讓人不僅感嘆:你能不能再丑一點。
2. 既然是光暈濾鏡,就決定了此方法實現的文字陰影效果是無方向性的,就四周均勻擴散性質的。這是該方法一個較大的局限性。
?
2、MotionBlur濾鏡下的文字陰影效果
IE濾鏡中有個名叫MotionBlur的濾鏡,用術語稱呼其為“動感模糊濾鏡”。該濾鏡使用的示例如下:
filter:progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);
??? 用中文釋義就是:145度方向上5像是大小的動感模糊。
HTML代碼:
?????????? <div class="bg">
<h1 class="font">空谷尋香覓幽蘭</h1>
</div>
CSS代碼:
??????? .bg {
width: 512px;
height: 140px;
margin: 1em auto;
background: rgba(255, 123, 189, 0.59);
}
.font {
margin: 0;
padding: 1em;
color: #fff;
font-size: 36px;
font-family: "微軟雅黑";
text-shadow: 1px 1px 5px #fff;
filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);
float: left;
}
?
運行結果簡要展示(上為chrome,下為IE):
?
不足:
1. MotionBlur濾鏡雖然有了方向性,也可以設定大小,但是,其模糊出來的投影顏色卻只能是文字本身的顏色。也就是說,單單一個標簽,一個濾鏡是無法實現類似于文字白色,投影黑色這種效果的。但是,這種先天性的不足也是可以通過某些手段修復的。
2. 此濾鏡在應用動感模糊的同時本身也被模糊了,相對于挖自己身上的肉填飽自己饑餓的肚子。這種實現效果顯然是會大打折扣的,正所謂人比人,氣死人啊。兩者的效果差距可以趕上鳳姐和志玲姐的差距了。然而,通過某些小手段,我們也可以讓MotionBlur濾鏡下的文字陰影效果爺變得很贊,這就是下面一節的內容。
?
?
3、MotionBlur濾鏡下文字陰影效果進一步優化
效果實現的原理是兩端一模一樣的文字相互重疊,背后的文字動感模糊,前面的文字就是很純潔的文字了。
filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);
考慮到不同IE瀏覽器下的兼容性問題,作為陰影效果的文字標簽需要使用block水平的標簽,且需要在IE6/IE7瀏覽器下haslayout。另外,這里的文字重疊是借助了absolute絕對定位元素的無高度性和無寬度性實現的
?
HTML代碼:
<div class="bg">
<h4 class="font"><span class="text">空谷尋香覓幽蘭</span><div class="sh">空谷尋香覓幽蘭</div></h4>
</div>
?
CSS代碼:
.bg {
width: 512px;
height: 140px;
margin: 1em auto;
background: rgba(255, 123, 189, 0.59);
}
.font {
margin: 0;
padding: 1em;
font-size: 36px;
font-family: "微軟雅黑";
}
.text {
color: #fff;
position: absolute;
}
.sh {
color: #000;
text-shadow: 1px 1px 5px #000;
filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);
*zoom: 1;
}
?
?
運行結果簡要展示(上為chrome,下為IE):
不足:
?? 由于要借助于兩段不同的文字實現效果,所以,此方法不使用與長篇大論文字處的投影效果實現,像是標題啊,導航啊這些文字不是很多的地方就可以使用使用。
?
4、遠離text-shadow和濾鏡的文字陰影實現
這里實現的原理的精髓其實跟上面的其實一致,兩段一模一樣的文字,重疊顯示,不過,投影效果是通過兩段文字的錯位差實現的,例如通過margin負值讓上下的文字出現1像素的偏移。
?
HTML代碼:
<div class="bg">
<h4 class="font"><span class="sh">空谷尋香覓幽蘭</span>
<div>空谷尋香覓幽蘭</div>
</h4>
</div>
?
?
CSS代碼:
.bg {
width: 512px;
height: 140px;
margin: 1em auto;
background: rgba(255, 123, 189, 0.59);
}
.font {
margin: 0;
padding: 1em;
font-size: 36px;
font-family: "微軟雅黑";
float: left;
}
.sh {
margin: -1px 0 0 -1px;
color: #fff;
position: absolute;
}
?
運行結果簡要展示(上為chrome,下為IE):
不足:
文字陰影效果的大小有限,且無法很好的實現透明度變化的投影效果。1像素的偏移投影是其最適用的情況。
?
兼容性解決方案:
?
1、text-shadow的各瀏覽器前綴
(1) Firefox4.0-
-moz-text-shadow: X軸偏移量 Y軸偏移量 陰影模糊半徑 陰影顏色;
(2) Safari and Google chrome10.0-
-webkit-text-shadow: X軸偏移量 Y軸偏移量 陰影模糊半徑 陰影顏色;
(3) Firefox4.0+ 、 Google chrome 10.0+ 、 Oprea10.5+ and IE9
text-shadow: X軸偏移量 Y軸偏移量 陰影模糊半徑 陰影顏色;
2、text-shadow兼容IE6-8
E {filter:shadow(Color=顏色值,Direction=數值,Strength=數值)}?
?
?
?
轉載于:https://www.cnblogs.com/theWayToAce/p/5271482.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的CSS中的text-shadow。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript如何对欧姆龙、三菱、
- 下一篇: neo4j python 算法_pyth