整合營銷服務商

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

          免費咨詢熱線:

          css文字顏色漸變的3種實現

          者:IT智云編程

          鏈接:https://www.jianshu.com/p/4fa116fc4653

          在web前端開發過程中,UI設計師經常會設計一些帶漸變文字的設計圖,在以前我們只能用png的圖片來代替文字,今天可以實現使用純CSS實現漸變文字了。下面就介紹3中實現方式供大家參考!

          基礎樣式:

          .gradient-text{text-align: left;text-indent:30px;line-height: 50px;font-size:40px;font-weight:bolder; position: relative; }
          

          第一種方法,使用 background-cli、 text-fill-color:

          .gradient-text-one{ 
           background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow); 
           -webkit-background-clip:text; 
           -webkit-text-fill-color:transparent; 
          }
          

          說明 :

          background: -webkit-linear-gradient(...) 為文本元素提供漸變背景。

          webkit-text-fill-color: transparent 使用透明顏色填充文本。

          webkit-background-clip: text 用文本剪輯背景,用漸變背景作為顏色填充文本。

          第二種方法,使用 mask-image:

          .gradient-text-two{
           color:red;
          }
          .gradient-text-two[data-content]::after{
           content:attr(data-content);
           display: block;
           position:absolute;
           color:yellow;
           left:0;
           top:0;
           z-index:2;
           -webkit-mask-image:-webkit-gradient(linear, 0 0, 0 bottom, from(yellow), to(rgba(0, 0, 255, 0)));
          }
          

          說明:

          mask-image 和 background-image 一樣,不僅可以取值是 圖片路徑,也可以是漸變色。

          第三種方法,使用 linearGradient、fill:

          .gradient-text-three{
           fill:url(#SVGID_1_);
           font-size:40px;
           font-weight:bolder;
          }
          <svg viewBoxs="0 0 500 300" class="svgBox">
           <defs>
           <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="10" x2="0" y2="50">
           <stop offset="0" style="stop-color:yellow"/>
           <stop offset="0.5" style="stop-color:#fd8403"/>
           <stop offset="1" style="stop-color:red"/>
           </linearGradient>
           </defs>
           <text text-anchor="middle" class="gradient-text-three" x="110px" y="30%">花信年華</text>
          </svg>
          

          說明:

          在SVG中,有兩種主要的漸變類型:

          線性漸變(linearGradient)

          放射性漸變(radialGradient)

          SVG中的漸變不僅可以用于填充圖形元素,還可以填充文本元素

          dom示例:

          <!DOCTYPE html>
          <html>
          <head>
           <meta charset="utf-8">
           <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
           <title>CSS3漸變字體</title>
           <link rel="stylesheet" >
           <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
           <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
           <style type="text/css">
           *{margin:0;padding:0;}
           body,html{width:100%;height:100%;}
           .wrapper{width:80%;margin:0 auto;margin-top:30px;}
           .gradient-text{text-align: left;text-indent:30px;line-height: 50px;font-size:40px;font-weight:bolder; position: relative; }
           .gradient-text-one{ 
           background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow); 
           -webkit-background-clip:text; 
           -webkit-text-fill-color:transparent; 
           }
           .gradient-text-two{
           color:red;
           }
           .gradient-text-two[data-content]::after{
           content:attr(data-content);
           display: block;
           position:absolute;
           color:yellow;
           left:0;
           top:0;
           z-index:2;
           -webkit-mask-image:-webkit-gradient(linear, 0 0, 0 bottom, from(yellow), to(rgba(0, 0, 255, 0)));
           }
           .gradient-text-three{
           fill:url(#SVGID_1_);
           font-size:40px;
           font-weight:bolder;
           }
           </style>
          </head>
          <body>
           <section class="wrapper">
           <div class="panel panel-info">
           <div class="panel-heading">
           <h3 class="panel-title">方法1. background-clip + text-fill-color</h3>
           </div>
           <div class="panel-body">
           <h3 class="gradient-text gradient-text-one">花樣年華</h3>
           </div>
           </div>
           <div class="panel panel-warning">
           <div class="panel-heading">
           <h3 class="panel-title">方法2. mask-image</h3>
           </div>
           <div class="panel-body">
           <h3 class="gradient-text gradient-text-two" data-content="豆蔻年華">豆蔻年華</h3>
           </div>
           </div>
           <div class="panel panel-danger">
           
           <div class="panel-heading">
           <h3 class="panel-title">方法3. svg linearGradient</h3>
           </div>
           
           <div class="panel-body">
           <svg viewBoxs="0 0 500 300" class="svgBox">
           <defs>
           <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="10" x2="0" y2="50">
           <stop offset="0" style="stop-color:yellow"/>
           <stop offset="0.5" style="stop-color:#fd8403"/>
           <stop offset="1" style="stop-color:red"/>
           </linearGradient>
           </defs>
           <text text-anchor="middle" class="gradient-text-three" x="110px" y="30%">花信年華</text>
           </svg>
           </div>
           
           </div>
           </section>
          </body>
          </html>
          

          效果:

          這里推薦一下我的前端技術分享群:731771211,里面都是學習前端的,如果你想制作酷炫的網頁,想學習編程。自己整理了一份2018最全面前端學習資料,從最基礎的HTML+CSS+JS【炫酷特效,游戲,插件封裝,設計模式】到移動端HTML5的項目實戰的學習資料都有整理,送給每一位前端小伙伴,有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小伙伴歡迎加入學習。

          頁中添加滾動字幕效果

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>滾動字體的設置</title>

          </head>

          <body>

          <canvas id="canvas1" width="600" height="600" style="border:1px solid #000000"></canvas>

          <script type="text/javascript">

          var canvas1 = document.querySelector("#canvas1") // 1.找到畫布對象

          var ctx = canvas1.getContext("2d") // 2.上下文對象(畫筆)


          ctx.shadowBlur = 10; // 陰影距離

          ctx.shadowColor = "red" // 陰影顏色

          ctx.shadowOffsetX = 30 // 陰影偏移

          ctx.shadowOffsetY = 30 // 陰影偏移


          ctx.font = "150px 楷體"


          ctx.fillText("你好!", 20,150)


          ctx.fillText("你好!", 20,350)


          ctx.strokeText('你好!',23, 153)


          ctx.strokeText('你好',23, 553)


          canvas繪制文字



          var x = 600

          setInterval(function(){

          if(x > -350){

          //清空畫布

          ctx.clearRect(0,0,600,600)

          ctx.strokeText('你好!',x, 153)

          ctx.fillText("你好!", x,350)


          ctx.font = "50px 宋體"

          ctx.strokeText('每天學習一點點',x, 553)


          x -= 3

          }else{x=590}



          }, 16)


          </script>


          </body>

          </html>

          求場景

          前端有時候需要展示日志,用textarea,也可以用div。 用div設置可編輯屬性確實可以做到,但是這表現的并不完全像textarea,總之,不想用div替代。如果用 textarea,需要根據里面的文本內容不同,去展示不同的顏色!不過瀏覽器兼容性沒那么好。

          如果是控制textarea的style,則所有文本都是一個顏色;如果把文本放到標簽里面,也不會起作用,因為標簽在文本域組件里面不會去解釋,直接當做文本處理了。

          解決方案

          如果這個需要在同一個文本域里面顯示不同顏色的的字體,比如warn 告警是黃色,error錯誤顯示為紅色。

          大概思路有兩種 ,有一種類似谷歌翻譯那種,在上面再覆蓋一層DIV

          現在我要介紹的是一種較為簡單的土方法。

          先是引入高亮的腳本

          <script src="dist/jquery/jquery.min.js"></script>
          <script src="dist/jquery-ui/jquery-ui.min.js"></script>
          <script src="dist/jquery-highlighttextarea/jquery.highlighttextarea.js"></script>

          引入樣式

          <link rel="stylesheet" href="dist/jquery-ui/theme/jquery-ui.min.css">
          <link rel="stylesheet" href="dist/jquery-highlighttextarea/jquery.highlighttextarea.min.css">


          只需highlightTextarea在jQuery對象上調用。

          $(/* selector */).highlightTextarea({
            /* options */
          });

          例如:

          <textarea cols="50" rows="5">...</textarea>
          
          <script>
            $('textarea').highlightTextarea({
              words: ['Lorem ipsum', 'vulputate']
            });
          </script>

          還有一條

          <!DOCTYPE html>

          <html>

          <head>

          <title></title>

          </head>

          <body>

          <div>

          <style type="text/css">

          .in, .out {

          padding: 0;

          margin: 0;

          position: absolute;

          border: 1px solid #ccc;

          width: 350px;

          height: 100px;

          left: 10px;

          top: 10px;

          font-size: 14px;

          z-index: 3;

          }

          .in {

          outline: none;

          z-index: 2;

          color: black !important;

          text-shadow: 0px 0px 0px #fff;

          -webkit-text-fill-color: transparent;

          }

          .out {

          background-color: transparent;:

          }

          </style>

          <textarea class="in" id='inaa' oninput='inputFunc()' style="width: 350px; height: 100px;"></textarea>

          <div id='put' class="out" onclick='inaa.focus()'>

          </div>

          <script type="text/javascript">

          function inputFunc (value) {

          // console.log(value)

          console.log(inaa.value)

          let spans = document.createElement('span')

          spans.innerHTML = '哈哈'

          spans.style.color = 'red'

          put.innerHTML = inaa.value.replace(/哈哈/g, '<span style="color: red;">哈哈</span>')

          }

          </script>

          </div>

          </body>

          </html>


          主站蜘蛛池模板: 中文人妻av高清一区二区| 亚洲国产精品一区二区第四页| 在线|一区二区三区四区| 韩国精品一区视频在线播放| 全国精品一区二区在线观看| 无码人妻一区二区三区在线| 国产色欲AV一区二区三区| 国产中文字幕一区| 亚洲AV无码一区二区三区系列| 成人丝袜激情一区二区| 国产午夜福利精品一区二区三区| 久久无码人妻一区二区三区 | 国产福利视频一区二区| 精品人妻少妇一区二区三区不卡 | 日韩电影在线观看第一区| 亚洲乱码日产一区三区| 中文字幕无线码一区二区| 国产婷婷色一区二区三区| 日韩AV无码一区二区三区不卡| 国产成人精品一区二区三区无码| 日韩一区二区三区在线 | 无遮挡免费一区二区三区| 一本一道波多野结衣AV一区| 农村人乱弄一区二区| 一区二区高清视频在线观看| 国产综合无码一区二区色蜜蜜 | 免费看AV毛片一区二区三区| 毛片一区二区三区| 亚洲AV成人一区二区三区在线看| 国产精品高清一区二区人妖| 久久国产精品最新一区| 免费在线视频一区| 美女免费视频一区二区| 日韩电影在线观看第一区| 精品中文字幕一区在线| 一区二区三区免费高清视频| 亚洲一区视频在线播放| 国产内射在线激情一区| 亚洲一区在线视频| 在线精品一区二区三区电影| 一级特黄性色生活片一区二区|