整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          你不能錯過的創意CSS文字陰影效果第三彈

          .時髦的雙影

          要創建此效果,文本將被賦予兩個硬陰影,沒有模糊半徑。第一個陰影被賦予背景顏色并被放置在文本附近,第二個陰影被賦予文本顏色并且放置的距離大于文本中的第一個陰影。

          CSS

          color: #dfdfdf;
          text-shadow: 4px 4px 0px #000, 
           -4px 0 0px #000,
           7px 4px 0 #fff;
          

          22.彩色陰影

          在這個演示中,每個字母都有不同顏色漸變的陰影,使它看起來非常令人印象深刻。

          HTML

          <p>
           <span id="y">Y</span>
           <span id="o">O</span>
           <span id="u">U</span
          </p>
          

          CSS

          color: #dfdfdf;
          #y {
           text-shadow: 0 1px 2px #75b663,
           1px 3px 1px #5ea04b, 
           2px 5px 1px #5b9c49, 
           4px 7px 1px #518b41, 
           6px 9px 1px #477939,
           8px 11px 1px #3d6831,
           10px 13px 1px #335729,
           12px 15px 1px #294521,
           14px 17px 1px #1e3418;
          }
          #o {
           text-shadow: 0 1px 2px #9d64c4,
           1px 3px 1px #9759c0, 
           2px 5px 1px #8b46b9, 
           4px 7px 1px #7d3fa6, 
           6px 9px 1px #6f3894,
           8px 11px 1px #613181,
           10px 13px 1px #532a6f,
           12px 15px 1px #45235c,
           14px 17px 1px #381c4a;
          }
          #u {
           text-shadow: 0 1px 2px #c48564,
           1px 3px 1px #c07d59, 
           2px 5px 1px #b96e46, 
           4px 7px 1px #a6633f, 
           6px 9px 1px #945838,
           8px 11px 1px #814d31,
           10px 13px 1px #6f422a,
           12px 15px 1px #5c3723,
           14px 17px 1px #4a2c1c;
          }
          

          3.陷落的文本

          實際上,您可以使用CSS使文本看起來像在本演示中所做的那樣。它的方向和位置使用transform 屬性進行更改, 并給出不同的陰影組,使其看起來更自然。

          HTML

          <p data-text='FALLEN'>FALLEN</p>
          

          CSS

          p {
           transform: skew(40deg)rotate(-10deg)rotateX(50deg)translate3d(0, 0, 0);
           -webkit-perspective: 100px;
           perspective: 100px;
          }
          p::before {
           text-shadow: 0 2px 3px #747474, 
           -3px 3px 1px #222, 
           -6px 5px 1px #474747, 
           -9px 7px 1px #747474,
           -12px 9px 1px #565656,
           -15px 11px 1px #343434,
           -22px 15px 1px #171717;
          }
          p:before,
          p:after {
           position: absolute;
           left: 0;
           right: 0;
           top: 0;
           content: attr(data-text)
          }
          p:after {
           color: #edc;
          }
          

          4.多個彩色陰影

          這是通過使用藍色和粉紅色的兩個遠距離陰影創建的多文本陰影效果的另一個令人印象深刻的示例。

          CSS

          color: #474747; 
           
          text-shadow: 20px 10px 0px #ff99cc,
           -15px -6px 0px #64a5b7; 
          

          5.淘汰文本

          這是淘汰文本的一個示例,它允許通過它可以看到它的背景。使用text-shadow 和 mix-blend-mode屬性創建此效果 。

          渴望了解更多有關淘汰文本的信息?訪問鏈接 如何使用CSS創建Knockout Text 并學習創建不同類型的挖空文本效果。

          HTML

          <div id="parent">
           <p>Hey there!</p>
          </div>
          

          CSS

          div {
           background: url('https://www.dl.dropboxusercontent.com/s/rv0tbpx6fmtr4vi/texture.jpg') repeat;
           padding: 10px;
          }
          p {
           padding: 30px;
           mix-blend-mode: multiply;
           text-shadow: 5px 4px 11px rgb(0,0,0), 0 2px 5px rgb(0,0,0);
           text-align: center;
          }
          

          結論

          文本陰影在網站中廣泛使用,并且很容易實現。您可以直接選擇本文中給出的任何文本陰影并增強您的設計。您還可以通過提供不同顏色和其他變化來創建自己的顏色,從這些陰影中獲取想法。我們很快就會發布一篇文章,討論創建這里給出的文本效果的提示和技巧。

          整理不易,請大家多多關注支持我,謝謝!

          于 CSS 陰影,之前已經有寫過一篇,box-shadow 與 filter:drop-shadow 詳解及奇技淫巧,介紹了一些關于 box-shadow 的用法。


          最近一個新的項目,CSS-Inspiration,挖掘了其他很多有關 CSS 陰影的點子,是之前的文章沒有覆蓋到的新內容,而且有一些很有意思,遂打算再起一篇。


          本文的題目是 CSS 陰影技巧與細節。CSS 陰影,卻不一定是 box-shadow 與 filter:drop-shadow,為啥?因為使用其他屬性也可以模擬陰影,而且是各種各樣的陰影。下面且聽我娓娓道來~


          單側投影

          先說單側投影,關于 box-shadow,大部分時候,我們使用它都是用來生成一個兩側的投影,或者一個四側的投影。如下:

          OK,那如果要生成一個單側的投影呢?

          我們來看看 box-shadow 的用法定義:

          { box-shadow: none | [inset? && [ <offset-x> <offset-y> <blur-radius>? <spread-radius>? <color>? ] ]#}

          以 box-shadow: 1px 2px 3px 4px #333 為例,4 個數值的含義分別是,x 方向偏移值、y 方向偏移值 、模糊半徑、擴張半徑。

          這里有一個小技巧,擴張半徑可以為負值。

          繼續,如果陰影的模糊半徑,與負的擴張半徑一致,那么我們將看不到任何陰影,因為生成的陰影將被包含在原來的元素之下,除非給它設定一個方向的偏移量。所以這個時候,我們給定一個方向的偏移值,即可實現單側投影:



          CodePen Demo — css單側投影(https://codepen.io/Chokcoco/pen/pergRb)


          投影背景 / 背景動畫

          接著上面的說。


          很明顯,0 = -0,所以當 box-shadow 的模糊半徑和擴張半徑都為 0 的時候,我們也可以得到一個和元素大小一樣的陰影,只不過被元素本身遮擋住了,我們嘗試將其偏移出來。


          CSS代碼如下:

          div { width: 80px; height: 80px; border: 1px solid #333; box-sizing: border-box; box-shadow: 80px 80px 0 0 #000;}

          得到如下結果:

          有什么用呢?好像沒什么意義啊。

          額,確實好像沒什么用。不過我們注意到,box-shadow 是可以設置多層的,也就是多層陰影,而且可以進行過渡變換動畫(補間動畫)。但是 background-image: linear-gradient(),也就是漸變背景是不能進行補間動畫的。

          這又扯到哪里去了。好我們回來,利用上面的特性,我們可以利用 box-shadow 實現原本只能利用漸變才能實現的背景圖:

          用 box-shadow,實現它的 CSS 代碼如下(可以更簡化):

          .shadow { position: relative; width: 250px; height: 250px;}.shadow::before { content: ""; position: absolute; width: 50px; height: 50px; top: -50px; left: -50px; box-shadow: 50px 50px #000, 150px 50px #000, 250px 50px #000, 50px 100px #000, 150px 100px #000, 250px 100px #000, 50px 150px #000, 150px 150px #000, 250px 150px #000, 50px 200px #000, 150px 200px #000, 250px 200px #000, 50px 250px #000, 150px 250px #000, 250px 250px #000;}

          用漸變來實現的話,只需要這樣:

          .gradient { width: 250px; height: 250px; background-image: linear-gradient(90deg, #000 0%, #000 50%, #fff 50%, #fff 100%); background-size: 100px 100px;}

          為什么選擇更為復雜的 box-shadow 呢?因為它可以進行補間動畫,像這樣,這是使用漸變做不到的:

          CodePen Demo — box-shadow實現背景動畫(https://codepen.io/Chokcoco/pen/WaBYZL)

          當然,這只是個示例 Demo,運用點想象力還有很多有意思的效果,再貼一個:

          CodePen Demo — CSS Checker Illusion( By David Khourshid )(https://codepen.io/davidkpiano/pen/LVzxPV)


          嗯,很有意思,就是實際用途可能不大。


          立體投影

          好,我們繼續。下一個主題是立體投影。


          這個說法很奇怪,陰影的出現,本就是為了讓原本的元素看起來更加的立體,那這里所謂的立體投影,是個怎么立體法?


          這里所謂的立體投影,并不一定是使用了 box-shadow、text-shadow 或者 drop-shadow,而是我們使用其他元素或者屬性模擬元素的陰影。而這樣做的目的,是為了能夠突破 box-shadow 這類元素的一些定位局限。讓陰影的位置、大小、模糊度可以更加的靈活。


          OK,讓我們來看看,這樣一個元素,我們希望通過自定義陰影的位置,讓它更加立體:

          上圖 div 只是帶了一個非常淺的 bos-shadow ,看上去和立體沒什么關系,接下來,我們通過 div 的偽元素,給它生成一個和原圖邊角形狀類似的圖形,再通過 transform 位移一下,可能是這樣

          OK,最后對這個用偽元素生成的元素進行一些虛化效果(filter或者box-shadow都可以),就可以實現一個邊角看起來像被撕開的立體效果:

          代碼非常簡單,偽 CSS 代碼示意如下:

          div { position: relative; width: 600px; height: 100px; background: hsl(48, 100%, 50%); border-radius: 20px;}div::before { content: ""; position: absolute; top: 50%; left: 5%; right: 5%; bottom: 0; border-radius: 10px; background: hsl(48, 100%, 20%); transform: translate(0, -15%) rotate(-4deg); transform-origin: center center; box-shadow: 0 0 20px 15px hsl(48, 100%, 20%);}

          所以總結一下:

          • 立體投影的關鍵點在于利于偽元素生成一個大小與父元素相近的元素,然后對其進行 rotate 以及定位到合適位置,再賦于陰影操作
          • 顏色的運用也很重要,陰影的顏色通常比本身顏色要更深,這里使用 hsl 表示顏色更容易操作,l 控制顏色的明暗度

          還有其他很多場景:

          CodePen Demo — 立體投影(https://codepen.io/Chokcoco/pen/LgdRKE?editors=1100)

          文字立體投影 / 文字長陰影

          上面的立體效果在文字上就完全不適用了,所以對待文字的立體陰影效果,還需要另辟蹊徑。

          正常而言,我們使用 text-shadow 來生成文字陰影,像這樣:

          <div> Txt Shadow</div>-----div { text-shadow: 6px 6px 3px hsla(14, 100%, 30%, 1);}

          嗯,挺好的,就是不夠立體。那么要做到立體文字陰影,最常見的方法就是使用多層文字陰影疊加。


          Tips:和 box-shadow 一樣,text-shadow 是可以疊加多層的!但是對于單個元素而言, drop-shadow的話就只能是一層。


          好,上面的文字,我們試著疊加個 50 層文字陰影試一下。額,50 層手寫,其實很快的~


          好吧,手寫真的太慢了,還容易出錯,所以這里我們需要借助一下 SASS/LESS 幫忙,寫一個生成 50 層陰影的 function 就好,我們每向右和向下偏移 1px,生成一層 text-shadow:

          @function makeLongShadow($color) { $val: 0px 0px $color; @for $i from 1 through 50 { $val: #{$val}, #{$i}px #{$i}px #{$color}; } @return $val;} div { text-shadow: makeLongShadow(hsl(14, 100%, 30%));}

          上面的 SCSS 代碼。經過編譯后,就會生成如下 CSS:

          div { text-shadow: 0px 0px #992400, 1px 1px #992400, 2px 2px #992400, 3px 3px #992400, 4px 4px#992400, 5px 5px #992400, 6px 6px #992400, 7px 7px #992400, 8px 8px #992400, 9px 9px #992400, 10px10px #992400, 11px 11px #992400, 12px 12px #992400, 13px 13px #992400, 14px 14px #992400, 15px15px #992400, 16px 16px #992400, 17px 17px #992400, 18px 18px #992400, 19px 19px #992400, 20px20px #992400, 21px 21px #992400, 22px 22px #992400, 23px 23px #992400, 24px 24px #992400, 25px25px #992400, 26px 26px #992400, 27px 27px #992400, 28px 28px #992400, 29px 29px #992400, 30px30px #992400, 31px 31px #992400, 32px 32px #992400, 33px 33px #992400, 34px 34px #992400, 35px35px #992400, 36px 36px #992400, 37px 37px #992400, 38px 38px #992400, 39px 39px #992400, 40px40px #992400, 41px 41px #992400, 42px 42px #992400, 43px 43px #992400, 44px 44px #992400, 45px45px #992400, 46px 46px #992400, 47px 47px #992400, 48px 48px #992400, 49px 49px #992400, 50px50px #992400;}

          看看效果:


          額,很不錯,很立體。但是,就是丑,而且說不上來的奇怪。

          問題出在哪里呢,陰影其實是存在明暗度和透明度的變化的,所以,對于漸進的每一層文字陰影,明暗度和透明度應該都是不斷變化的。這個需求,SASS 可以很好的實現,下面是兩個 SASS 顏色函數:


          • fade-out 改變顏色的透明度,讓顏色更加透明
          • desaturate 改變顏色的飽和度值,讓顏色更少的飽和

          關于 SASS 顏色函數,可以看看這里:Sass基礎—顏色函數


          我們使用上面兩個 SASS 顏色函數修改一下我們的 CSS 代碼,主要是修改上面的 makeLongShadow function 函數:


          @function makelongrightshadow($color) { $val: 0px 0px $color; @for $i from 1 through 50 { $color: fade-out(desaturate($color, 1%), .02); $val: #{$val}, #{$i}px #{$i}px #{$color}; } @return $val;}

          好,看看最終效果:


          嗯,大功告成,這次順眼了很多~


          CodePen Demo — 立體文字陰影(https://codepen.io/Chokcoco/pen/JmgNNa)


          當然,使用 CSS 生成立體文字陰影的方法還有很多,下面再貼出一例,使用了透明色疊加底色的多重線性漸變實現的文字立體陰影,感興趣的同學可以去看看具體實現:


          線性漸變配合陰影實現條紋立體陰影條紋字(https://codepen.io/Chokcoco/pen/XxQJEB?editors=1100)


          長投影

          上面提到了通過多層陰影疊加實現文字的立體陰影。運用在 div 這些容器上也是可以的。當然這里還有一種挺有意思的方法。假設我們,有一個矩形元素,希望給他添加一個長投影,像下面這樣:

          要生成這種長投影,剛剛說的疊加多層陰影可以,再就是借助元素的兩個偽元素,其實上面的圖是這樣的:

          關鍵點在于,我們通過對兩個偽元素的 transform: skew() 變換以及從實色到透明色的背景色變化,實現了長投影的效果:


          CodePen Demo — 線性漸變模擬長陰影(https://codepen.io/Chokcoco/pen/qJvVGy)


          彩色投影

          通常而言,我們生成陰影的方式大多是 box-shadow 、filter: drop-shadow() 、text-shadow 。但是,使用它們生成的陰影通常只能是單色或者同色系的。


          你這么說,難道還可以生成漸變色的陰影不成?

          額,當然不行。


          這個真不行,但是通過巧妙的利用 filter: blur 模糊濾鏡,我們可以假裝生成漸變色或者說是顏色豐富的陰影效果。


          當然,關于 CSS 陰影還有很多有意思的技巧和細節,本文限于篇幅不再一一羅列。

          SS3技術添加了許多原本利用Photoshop中處理才能實現的效果。例如文本陰影、發光效果、凸起和凹陷等。今天我們就一起學習一個新的CSS3屬性,這個屬性的本質是為文本添加陰影,但是通過對該屬性原理的理解并加以調整,可以對文本實現更多的特效。

          承接文章:利用CSS3技術為溢出文本添加省略標記

          技術等級:初級 | 適合前端開發的初學者閱讀學習。

          希望收藏了這篇文章的你同時也可以關注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經過系統的歸納和總結的。塌下心來認真閱讀,你一定會學到對你有用的知識。

          本文涉及到的CSS屬性包括:

          • ltext-shadow

          一、認識text-shadow屬性:

          text-shadow作為一個CSS3的新屬性,提供了為文本添加陰影的作用。首先先讓我們一同來學習該屬性的基本取值和基本用法。

          文本陰影text-shadow的使用語法如下所示:

          text-shadow:length1 length2 blur color

          上述格式中,text-shadow屬性的取值包括四個參數,這四個參數的含義分別如下:

          • length1,取值為整數或浮點數,可以為負值,需要帶單位。表示文本陰影在水平方向上相對于文本本身的偏移距離。

          • length2, 取值為整數或浮點數,可以為負值,需要帶單位。表示文本陰影在垂直方向上相對于文本本身的偏移距離。

          • blur, 取值為整數或浮點數,不可以為負值,需要帶單位。表示文本陰影的模糊程度。

          • color,表示陰影的顏色。

          在頁面中設置一個<p></p>標記對,設置其class屬性為box01,在內部書寫任意文本。

          <p class=”box01”>文本陰影屬性</p>

          為.box01容器設置文本陰影屬性:水平偏移5px,垂直偏移5px,陰影模糊為3px,陰影顏色為#aaaaaa。

          .box01{

          font-size:36px;

          color:#ff9900;

          text-shadow:5px 5px 3px #aaaaaa;

          }

          最終的文本效果如下圖所示。

          文本的陰影效果

          這個例子只是為了給大家講清楚text-shadow屬性的用法,從設計上來說并不美觀,也沒有什么CSS代碼技巧。但是我們可以看出以下問題:

          • 當水平偏移為正數時,陰影相對于文本向右偏移。

          • 當垂直偏移為正數時,陰影相對于文本向下偏移。

          同理,如果取負值的話,會向相反的方向發生偏移。

          二、設置多個陰影效果:

          屬性text-shadow不僅能夠為文本設置一個陰影,還可以為文本設置多個陰影,這要求多個陰影用逗號隔開。

          利用text-shadow為文本設置多個陰影的語法格式如下:

          text-shadow:length1 length2 blur color,

          length1 length2 blur color,

          length1 length2 blur color,

          length1 length2 blur color;

          從格式中可以看出,最多為文本設置四個陰影,這四個陰影表示文本上、下、左、右的四個方向。具體的方向由每組陰影中的length1和length2參數的取值正負而定。

          三、實例1:描邊文字。

          在頁面中設置一個<p></p>標記對,設置其class屬性為box02,在內部書寫任意文本。

          <p class=”box02”>描邊文字</p>

          為.box02容器設置文本陰影屬性:

          .box02{

          text-shadow: -1px 0 #333333,

          0 -1px #333333,

          1px 0 #333333,

          0 1px #333333;

          }

          從本段代碼中可以看出,四組陰影都省略了blur參數,即沒有設置blur參數的取值,這時陰影的模糊程度是不模糊。

          我們來共同分析這四組陰影的方向:

          • -1px 0 #333333,水平方向為負值,垂直方向不偏移。整體向左偏移。

          • 0 -1px #333333,水平方向不偏移,垂直方向為負值。整體向上偏移。

          • 1px 0 #333333,水平方向為正值,垂直方向不偏移。整體向右偏移。

          • 0 1px #333333;水平方向不偏移,垂直方向為正值。整體向下偏移。

          該實例的最終效果如下圖所示。

          實例1 描邊文字的效果

          四、實例2:凸起和凹陷文字。

          在頁面中設置一個<p></p>標記對,設置其class屬性為box03,在內部書寫任意文本。

          <p class=”box03”>凸起文字</p>

          為.box03容器設置文本陰影屬性:

          .box03{

          text-shadow: -1px 0 #ffffff,

          0 -1px #ffffff,

          1px 0 #000000,

          0 1px #000000;

          }

          從本段代碼中可以看出,四個方向的陰影排列為:

          • 白色陰影(#ffffff)分布在文本的左側和上方。

          • 黑色陰影(#000000)分布在文本的右側和下方。

          該實例的最終效果如下圖所示。

          實例2 凸起文字的效果

          如果將這四個方向的陰影排列進行相反處理,即:

          • 白色陰影(#ffffff)分布在文本的右側和下方。

          • 黑色陰影(#000000)分布在文本的左側和上方

          則文本將變為凹陷效果,有興趣的小伙伴們可以自行在電腦上嘗試一下。

          注意:由于這兩個例子中都是用到了白色陰影,所以為了讓白色能夠被看到,需要將整個文檔的顏色設置為灰色。如果再將文本自身的顏色也設置為與頁面相同的灰色,效果會更明顯。

          body{background-color:#888888;}

          .box03{color:#888888;}

          五、實例3:發光文字。

          在頁面中設置一個<p></p>標記對,設置其class屬性為box04,在內部書寫任意文本。

          <p class=”box04”>發光文字</p>

          為.box04容器設置文本陰影屬性:

          .box04{

          text-shadow: 0 0 10px #ffffff;

          }

          上述代碼沒有讓文本的陰影進行任何偏移,即水平方向和垂直方向的偏移值都是0,只是為文本的陰影設置了一個10px的模糊程度,并將顏色設置為白色。這樣會給人一種發白光的效果。

          注意:由于這個例子中用到了白色陰影,為了讓發光效果明顯,最好將文檔顏色設置為黑色。

          body{background-color:#000000;}

          該實例的最終效果如下圖所示。

          實例3 發光文字的效果

          小海聲明

          在頭條上發表的這些文章都是從前端開發的基礎開始一步一步講起的。我非常希望能有更多的前端開發初學者通過我寫的文章,逐步學到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學過程中的經驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設計版面,讓版面更加豐富,激發閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費小海老師很久的時間。

          希望收藏了這篇文章的你同時也可以關注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經過系統的歸納和總結的。塌下心來認真閱讀,你一定會學到對你有用的知識。

          關注“小海前端”,我會繼續為大家奉上更加深入的前端開發文章,也希望更多的初學者跟著學下去,我們共同將前端開發的路努力堅持的走下去。

          文章預告

          CSS3中有關文本的屬性還包括新的服務器端字體,下一篇文章中,小海老師將為大家介紹豐富的文字樣式效果。


          主站蜘蛛池模板: 色婷婷香蕉在线一区二区| 亚洲V无码一区二区三区四区观看| 制服美女视频一区| 国产一区二区三区免费| 无码国产精品久久一区免费| 国产精品视频第一区二区三区| 国产大秀视频在线一区二区| 另类一区二区三区| 亚洲AⅤ视频一区二区三区| 国产乱码精品一区二区三区四川人 | 一区二区传媒有限公司| 精品一区二区三区波多野结衣| 一区二区国产在线播放| 内射少妇一区27P| 日本一区免费电影| 国产一区在线播放| 麻豆一区二区三区蜜桃免费| 国产精品乱码一区二区三| 国模无码一区二区三区| 久久蜜桃精品一区二区三区| 国产精品高清视亚洲一区二区| 精品国产一区二区三区麻豆| 亚洲一区二区三区无码国产| 国产对白精品刺激一区二区| 亚洲熟女综合色一区二区三区| 亚洲国产一区二区三区在线观看| 亚洲欧美国产国产综合一区| 国产成人欧美一区二区三区| 国产成人免费一区二区三区| 立川理惠在线播放一区| 国产一区三区三区| 日产亚洲一区二区三区| 久久精品免费一区二区| 海角国精产品一区一区三区糖心| 性色av无码免费一区二区三区| 国产福利一区二区| 日韩精品人妻一区二区中文八零 | 日韩精品无码视频一区二区蜜桃 | 亚洲AV噜噜一区二区三区| 天堂成人一区二区三区| 久久国产精品免费一区二区三区|