Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日韩伦理电影中文在线观看免费网,国产小视频免费观看,日本wwwcom

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          第9節(jié):圖形繪制18-SVG矢量圖導(dǎo)出

          第9節(jié):圖形繪制18-SVG矢量圖導(dǎo)出

          一下死量圖。什么是死量圖?死量圖是指圖形放大縮小的時(shí)候,圖形質(zhì)量沒有變化,仍然可以保證很清晰。

          麥地基金賽本身的mode文件,mode文件是死量圖格式,同時(shí)還支持另外一種格式的死量圖叫svg格式。死量圖最大的好處是可以通過瀏覽器,普通第三方軟件瀏覽器app去打開。大家看瀏覽器打開的死量圖,軟件做出來的死量圖幾乎是一樣的。

          當(dāng)投稿的期刊的時(shí)候用svg格式的死量圖切開設(shè)一般就可以去編輯,用第三方的這樣來編輯。如果只給mode格式是無法進(jìn)行編輯的,這是svg格式的好處。

          對于網(wǎng)絡(luò)圖、演化圖,除了熱力圖之外的密度圖,一般的網(wǎng)絡(luò)圖、演化圖、演化圖都可以用svg格式的死量圖來去輸出svg格式。死量圖也可以在word當(dāng)中去輸出編輯,word當(dāng)中關(guān)于二零二一、二零一九都有死量圖格式的圖形插入的功能。

          要整理你的頁面重量,但是要保持所有的酷功能嗎?繼續(xù)閱讀,看看一個(gè)開發(fā)人員如何擺脫SVG,并在它的位置使用CSS。

          獲得高級管理人員手冊的重要趨勢、技巧和戰(zhàn)略,以競爭和贏得數(shù)字經(jīng)濟(jì)。

          在這個(gè)假期過后,我們中的許多人都想減掉一點(diǎn)體重,那就是體重。在我的應(yīng)用中,我廣泛地使用SVG元素作為圖像、徽標(biāo)和圖標(biāo)。直到最近,我都直接在HTML中呈現(xiàn)SVG元素。這是最簡單的方法。正如您可能通過我的intro語句所猜測的那樣,我一直在通過從HTML中刪除SVG元素來減少頁面權(quán)重。它的效果如何?在進(jìn)行更改之前,主頁是14kb (77kb解壓縮)。更改后,主頁為6kb(未壓縮的30kb)。這是每一頁的“超過有線”字節(jié)的57%。我到底做了什么,我做了哪些權(quán)衡來獲得一個(gè)更小的頁面?讓我們看看以前如何使用SVG。

          這是原始的SVG:

          <?xml version="1.0" encoding="UTF-8"?>

          <svg fill="#fff" class="issue-icon" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">

          <path d="m8 0c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm0 14c-3.309 0-6-2.692-6-6s2.691-6 6-6c3.307 0 6 2.692 6 6s-2.693 6-6 6z" clip-rule="evenodd" fill-rule="evenodd"/>

          <path d="M8.5,3h-1C7.224,3,7,3.224,7,3.5v6C7,9.776,7.224,10,7.5,10h1 C8.776,10,9,9.776,9,9.5v-6C9,3.224,8.776,3,8.5,3z" clip-rule="evenodd" fill-rule="evenodd"/>

          <path d="M8.5,11h-1C7.224,11,7,11.224,7,11.5v1C7,12.776,7.224,13,7.5,13h1 C8.776,13,9,12.776,9,12.5v-1C9,11.224,8.776,11,8.5,11z" clip-rule="evenodd" fill-rule="evenodd"/>

          </svg>

          我將它定義為一個(gè)Rails“helper”,它將直接呈現(xiàn)在HTML中。這個(gè)元素在頁面上重復(fù)了很多次,每次我們必須發(fā)送完全相同的SVG字符串,該字符串將相同的字節(jié)數(shù)添加到頁面大小。為了解決這個(gè)問題,我將SVG代碼移動到我的圖像目錄中,然后我使用鏈輪來“內(nèi)聯(lián)”圖像通過一個(gè)數(shù)據(jù)url。

          數(shù)據(jù)URL如何工作?通常,在CSS元素背景下的URL會說“出去,在不同的URL中獲取該資產(chǎn)”。相反,一個(gè)“數(shù)據(jù)”URL會編碼呈現(xiàn)圖像所需的所有數(shù)據(jù),而無需創(chuàng)建新的網(wǎng)絡(luò)請求。這里有一個(gè)例子:

          background: url("data:image/svg+xml;charset=utf-8,

          %3Csvg

          version='1.1'

          xmlns='http://www.w3.org/2000/svg'

          xmlns:xlink='http://www.w3.org/1999/xlink'

          width='512'

          height='512'

          viewBox='0 0 512 512'

          %3E%3Cpath d='M224 387.814v124.186l-192-192 192-192v126.912c223.375 5.24 213.794-151.896 156.931-254.912 140.355 151.707 110.55 394.785-156.931 387.814z'

          %3E%3C/path%3E

          %3C/svg%3E");

          這個(gè)“url”包含整個(gè)圖像內(nèi)容,不需要發(fā)出HTTP請求。

          在鏈輪中,當(dāng)前支持的數(shù)據(jù)URL通過創(chuàng)建一個(gè)Base64字符串來支持,但是在以后的版本中,它將是URL轉(zhuǎn)義,以避免使用Base64的額外開銷。您可以閱讀更多關(guān)于為什么不使用base64 SVG的內(nèi)聯(lián)圖像。

          以前,我說過我用鏈輪來做這個(gè)改變。在我的項(xiàng)目中,這是sassrails添加警告的咒語。svg作為我的CSS的數(shù)據(jù)url:

          .warning-svg {

          width: 16px;

          height: 16px;

          display: inline-block;

          background: asset-data-url("warning.svg");

          }

          資產(chǎn)數(shù)據(jù)url被解釋為一個(gè)指令,它接受警告的內(nèi)容。svg圖像和“inlines”它們使得不需要額外的HTTP請求。如果你用的是ERB,它可能是這樣的:

          .warning-svg {

          width: 16px;

          height: 16px;

          display: inline-block;

          background: url(<%=asset_data_uri 'warning.svg' %>);

          }

          現(xiàn)在,當(dāng)您訪問該頁面時(shí),SVG元素僅通過應(yīng)用程序發(fā)送一次。css,然后被重新使用很多次,通過war- svg類。這意味著為最終用戶下載HTML所需的時(shí)間更少,而且由于這些資產(chǎn)是與未來的高速緩存頭一起服務(wù)的,所以它們只會被瀏覽器下載一次。更好的是,該站點(diǎn)正在Cloudflare CDN的后面服務(wù),因此對于稍微大一點(diǎn)的CSS文件,應(yīng)用服務(wù)器上沒有額外的負(fù)擔(dān)。

          您可以看到我實(shí)現(xiàn)此更改的pull請求。

          有什么缺點(diǎn)嗎?這種方法(對我來說)最大的問題是,我失去了通過CSS控制SVG元素填充(顏色)的能力。以前在HTML中使用SVG,如果我想改變元素的顏色,很簡單,我在CSS中做了。這里有一個(gè)例子,可以用CSS將填充色改為紅色。

          一旦我將SVG元素移出頁面,我就無法通過純CSS進(jìn)行這種類型的修改。對于這種情況,我決定轉(zhuǎn)換元素,使懸浮狀態(tài)變得明顯:

          如果顏色變化是絕對需要的,那么我可以生成兩個(gè)具有不同填充值的SVG元素,并更改鼠標(biāo)懸空的背景元素。您可以在其他選項(xiàng)上看到一個(gè)堆棧溢出線程。

          除了在主頁上使用“警告”SVG之外,我還在“repo show”頁面上使用它,但是它的填充不同。它是灰色的而不是白色的。在這種情況下,去掉顏色變化是不合適的;但是,我可以使用不透明的CSS屬性來近似一個(gè)顏色的變化,這將影響SVG元素。

          如果您不想在CSS中使用數(shù)據(jù)URL,您也可以通過標(biāo)記將其呈現(xiàn)為普通圖像。您還可以使用使用標(biāo)記,它允許您通過HTML發(fā)送元素,但之后再使用和操作,就好像它是直接在HTML中一樣。

          在我的例子中,所有呈現(xiàn)的元素都存在于我的絕大多數(shù)頁面中,所以將它們放在那些會被瀏覽器和我的CDN緩存的地方是有意義的。

          一些關(guān)于將SVG元素轉(zhuǎn)換為內(nèi)聯(lián)CSS元素的說明:

          • 您需要確保將高度和寬度設(shè)置為元素,因?yàn)镾VG只是“背景”。

          • 您還需要確保SVG正在被格式化并正確地服務(wù)。對我來說,我有一個(gè)SVG元素,它缺少xml聲明:

          <?xml version="1.0" encoding="UTF-8"?>

          和相同的一個(gè)失蹤了xmlns=" http://www.w3.org/2000/svg "屬性。如果您在瀏覽器中通過CSS檢查器單擊圖像URL,它應(yīng)該顯示是否存在錯(cuò)誤。您還需要顯式地在圖像中設(shè)置填充屬性,否則,它們將默認(rèn)為黑色。

          總的來說,這一變化相當(dāng)簡單,57%的小頁面也不太破舊。

          雖然仍然有可能希望將SVG元素直接放到HTML中,但是考慮頁面的權(quán)重和成本。

          紹一些你可能沒用過的SVG小技巧。

          在平時(shí)開發(fā)中,很多時(shí)候都會用到SVG。大部分情況我們都不必關(guān)注SVG里面到底是什么,直接當(dāng)成圖片資源引入就行,比如常見的圖標(biāo)資源

          我們可以通過多種方式使用這個(gè)特殊的圖片

          <img src="a.svg">
          
          .icon{
            background: url("a.svg")
          }
          

          甚至直接放到HTML

          <div>
            <svg>
            	...
            </svg>
          </div>
          

          這些都沒什么問題,但有時(shí)候,我們需要的是可以自適應(yīng)尺寸的,比如像這樣的漸變邊框,尺寸會隨著文本內(nèi)容的變化而變化,而不是固定尺寸,如下

          或者是這樣的虛線漸變邊框

          這樣的該如何用 SVG 動態(tài)實(shí)現(xiàn)呢,一起看看吧

          一、SVG導(dǎo)出的局限性

          SVG通常不是手寫的(能手寫任意路徑的都是大神),幾乎都是設(shè)計(jì)師借助軟件繪制生成的,比如設(shè)計(jì)都很喜歡的Figma(對前端非常友好,可以嘗試一下)

          比如前面提到的漸變邊框,在Figma中就是這樣

          對于設(shè)計(jì)師來說,漸變邊框很容易,只需要選擇邊框類型就行了

          對于 CSS 來說,這還算一個(gè)比較麻煩的事,通常我們需要額外嵌套一層漸變背景,通過遮蓋或者mask裁切的方式實(shí)現(xiàn),有興趣的可以嘗試一下,這里暫不展開。

          那么,這個(gè)設(shè)計(jì)可以直接通過導(dǎo)出SVG實(shí)現(xiàn)嗎?

          先試試,Figma中可以直接將這個(gè)邊框復(fù)制成SVG格式

          下面是這段復(fù)制出來的SVG代碼(大概還是能看得懂一些的...)

          <svg width="41" height="25" viewBox="0 0 41 25" fill="none" xmlns="http://www.w3.org/2000/svg">
            <rect x="1" y="1" width="39" height="23" rx="4" stroke="url(#paint0_linear_1_2)" stroke-linecap="round"/>
            <defs>
            <linearGradient id="paint0_linear_1_2" x1="0" y1="0" x2="1" y2="0">
            	<stop stop-color="#FFD75A"/>
            	<stop offset="1" stop-color="#ED424B"/>
            </linearGradient>
            </defs>
          </svg>
          

          我們嘗試讓這段SVG尺寸跟隨button的大小,就行這樣

          <style>
            svg{
              position: absolute;
              inset: 0;
            }
          </style>
          <button>
            CSS
            <svg>...</svg>
          </button>
          

          在內(nèi)容不定的情況下,就變成了這樣

          很顯然不行,因?yàn)樯傻?/span>SVG寬高是固定的,沒法跟隨文本內(nèi)容自適應(yīng)尺寸

          既然 SVG很擅長漸變邊框,而 CSS很擅長自適應(yīng),那么,有沒有取長補(bǔ)短的辦法呢?

          當(dāng)然也是有的!不過需要“改造”一下,接著往下看

          二、SVG 自適應(yīng)尺寸

          首先我們把上面的那段SVG拿過來

          <svg width="41" height="25" viewBox="0 0 41 25" fill="none" xmlns="http://www.w3.org/2000/svg">
            <rect x="1" y="1" width="39" height="23" rx="4" stroke="url(#paint0_linear_1_2)" stroke-linecap="round"/>
            <defs>
            <linearGradient id="paint0_linear_1_2" x1="0" y1="0" x2="1" y2="0">
            	<stop stop-color="#FFD75A"/>
            	<stop offset="1" stop-color="#ED424B"/>
            </linearGradient>
            </defs>
          </svg>
          

          有沒有發(fā)現(xiàn)這里很多數(shù)值都固定的?如果想實(shí)現(xiàn)自適應(yīng),我們就需要將這些值改成百分比形式,注意看這個(gè)rect,有個(gè)xy坐標(biāo),我們現(xiàn)在寬高都是100%了,所以這里的坐標(biāo)也要改成0,不然就撐出去了

          <svg width="100%" height="100%" viewBox="0 0 100% 100%" fill="none" xmlns="http://www.w3.org/2000/svg">
            <rect x="0" y="0" width="100%" height="100%" rx="4" stroke="url(#paint0_linear_1_2)" stroke-linecap="round"/>
            <defs>
            <linearGradient id="paint0_linear_1_2" x1="0" y1="0" x2="1" y2="0">
            	<stop stop-color="#FFD75A"/>
            	<stop offset="1" stop-color="#ED424B"/>
            </linearGradient>
            </defs>
          </svg>
          

          為了驗(yàn)證這個(gè) SVG的自適應(yīng),我們將這個(gè)SVG放在一個(gè)div

          <div style="width: 100px;height: 80px;">
            <svg>...</svg>
          </div>
          
          <div style="width: 200px;height: 180px;">
            <svg>...</svg>
          </div>
          

          效果如下

          是不是已經(jīng)自適應(yīng)了?

          不過還是有點(diǎn)問題,仔細(xì)觀察,圓角處有些不自然,感覺被裁剪了一樣

          造成這種現(xiàn)象的原因有兩個(gè):

          1. SVG描邊是居中描邊,并且不可修改
          2. SVG默認(rèn)是超出隱藏的,也就是自帶overflow:hidden

          我們把邊框改大一點(diǎn)就可以很明顯的觀察到描邊是居中的

          由于是居中的,所以在不做修改的情況下,我們看到的其實(shí)只有原邊框的一半,利用這個(gè)原理我們其實(shí)可以實(shí)現(xiàn)常說的0.5px邊框,有興趣的可以參考我之前這篇文章:使用svg描邊來實(shí)現(xiàn)移動端1px

          在這里,我再介紹一種新的方式,那就是利用 CSS calc !

          沒錯(cuò),在 SVG中也可以使用CSS函數(shù),比如我們這里邊框是4px,那么坐標(biāo)xy就應(yīng)該是2,然后寬高應(yīng)該是calc(100% - 4px),所以可以很自然的改成這樣

          <div style="width: 100px;height: 80px;">
            <svg width="100%" height="100%">
              <rect x="2" y="2" width="100%" height="100%" style="width: calc(100% - 4px);height: calc(100% - 4px);"  rx="4" stroke="url(#paint0_linear_1_2)" stroke-width="4" stroke-linecap="round"/>
               <defs>
              <linearGradient id="paint0_linear_1_2" x1="0" y1="0" x2="1" y2="0">
                <stop stop-color="#FFD75A"/>
                <stop offset="1" stop-color="#ED424B"/>
              </linearGradient>
              </defs>
            </svg>
          </div>
          

          非常完美了,不會有任何裁剪!(大家也可以復(fù)制上面這段代碼放在 HTML 中驗(yàn)證)

          這樣就“輕易”實(shí)現(xiàn)了SVG的尺寸自適應(yīng)

          這里小結(jié)一下

          1. SVG的尺寸改為`百分比
          2. 由于是居中描邊,所以要修正一下坐標(biāo)和大小

          除此之外,還能直接加上style樣式,就像這樣

          <svg width="100%" height="100%" viewBox="0 0 100% 100%" fill="none" xmlns="http://www.w3.org/2000/svg">
            <style>
              rect{
                width: calc(100% - 4px);
                height: calc(100% - 4px);
              }
            </style>
            <rect x="2" y="2" width="100%" height="100%" rx="4" stroke="url(#paint0_linear_1_2)" stroke-width="4" stroke-linecap="round"/>
            <defs>
              <linearGradient id="paint0_linear_1_2" x1="0" y1="0" x2="1" y2="0">
                <stop stop-color="#FFD75A"/>
                <stop offset="1" stop-color="#ED424B"/>
              </linearGradient>
            </defs>
          </svg>
          

          雖然看著多,但后面作用更大,可以添加更多的 CSS 樣式

          三、SVG 在 HTML 中的應(yīng)用

          其實(shí)前面的這段 SVG 可以直接放到 HTML 中用了,比如

          <button>
            <svg width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg">
              <rect x="2" y="2" width="100%" height="100%" style="width: calc(100% - 4px);height: calc(100% - 4px);" rx="16" stroke-width="2" stroke="url(#paint0_linear_3269_5233)"/>
              <defs>
                <linearGradient id="paint0_linear_3269_5233" x1="0" y1="0" x2="100%" y2="100%" gradientUnits="userSpaceOnUse">
                  <stop stop-color="#FFD75A"/>
                  <stop offset="1" stop-color="#ED424B"/>
                </linearGradient>
              </defs>
            </svg>
            CSS
          </button>
          

          我們需要將這個(gè) SVG撐滿整個(gè)button,所以可以直接絕對定位

          button{
            position: relative;
          }
          button>svg{
            position: absolute;
            inset: 0;
          }
          

          這樣就得到了一個(gè)自適應(yīng)尺寸的、帶有漸變邊框的按鈕,效果如下

          你也可以訪問在線鏈接:buton with SVG (juejin.cn)[1]

          四、SVG 在 CSS 中的應(yīng)用

          不知道你有沒有這樣的感覺,把一大段 SVG放在 HTML不是特別優(yōu)雅,總覺得太臃腫了。

          如果你有這種感覺,不妨將這段 SVG轉(zhuǎn)換成內(nèi)聯(lián)CSS代碼。

          在這里可以借助張鑫旭老師的這個(gè)工具:SVG在線壓縮合并工具[2]

          我們將這段SVG粘貼過去,可以得到這樣的一段內(nèi)聯(lián)SVG

          data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='100%25' height='100%25' style='width:calc(100%25 - 2px);height:calc(100%25 - 2px)' rx='16' stroke-width='2' stroke='url(%23paint0_linear_3269_5233)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_3269_5233' y2='100%25' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FFD75A'/%3E%3Cstop offset='1' stop-color='%23ED424B'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E
          

          有了這段內(nèi)聯(lián)SVG,我們可以直接用在background背景上

          button{
            background: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='100%25' height='100%25' style='width:calc(100%25 - 2px);height:calc(100%25 - 2px)' rx='16' stroke-width='2' stroke='url(%23paint0_linear_3269_5233)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_3269_5233' y2='100%25' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FFD75A'/%3E%3Cstop offset='1' stop-color='%23ED424B'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E")
          }
          

          HTML只需要干凈的button元素就夠了

          <button>CSS</button>
          <button>CSS & SVG</button>
          

          神奇的是,即便是轉(zhuǎn)為內(nèi)聯(lián)了,SVG仍然保持著自適應(yīng)特性,這樣也能實(shí)現(xiàn)同樣的效果,是不是好多了?

          你也可以訪問在線鏈接:button with SVG background (juejin.cn)[3]

          五、SVG 的獨(dú)特魅力

          如果說上面的效果 CSS 還能勉強(qiáng)模擬一下,那如果是這樣的虛線呢?

          對于 SVG 就非常容易了,只需要設(shè)置stroke-dasharray屬性就行,并且可以隨意更改虛線的間隔

          <svg width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg">
            <rect x="2" y="2" width="100%" height="100%" style="width: calc(100% - 4px);height: calc(100% - 4px);" rx="16" stroke-width="2" stroke="url(#paint0_linear_3269_5233)"  stroke-dasharray="8 4"/>
            <defs>
              <linearGradient id="paint0_linear_3269_5233" x1="0" y1="0" x2="100%" y2="100%" gradientUnits="userSpaceOnUse">
                <stop stop-color="#FFD75A"/>
                <stop offset="1" stop-color="#ED424B"/>
              </linearGradient>
            </defs>
          </svg>  
          

          還有這種虛線邊緣是圓角的情況,CSS就更加無能為力了

          SVG只需要設(shè)置stroke-linecap就行

          <svg width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg">
            <rect x="2" y="2" width="100%" height="100%" style="width: calc(100% - 4px);height: calc(100% - 4px);" stroke-width="2" rx="16" stroke-linecap="round"  stroke="url(#paint0_linear_3269_5233)"  stroke-dasharray="8 6"/>
            <defs>
              <linearGradient id="paint0_linear_3269_5233" x1="0" y1="0" x2="100%" y2="100%" gradientUnits="userSpaceOnUse">
                <stop stop-color="#FFD75A"/>
                <stop offset="1" stop-color="#ED424B"/>
              </linearGradient>
            </defs>
          </svg> 
          

          更進(jìn)一步,SVG還能實(shí)現(xiàn)虛線滾動動畫,CSS 應(yīng)該是實(shí)現(xiàn)不了了

          看似復(fù)雜,其實(shí)只需要改變stroke-dashoffset屬性就行了,我們可以直接在SVG中插入CSS動畫

          <svg width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg">
            <style>
              .rect{
                width: calc(100% - 4px);
                height: calc(100% - 4px);
                animation: move .3s infinite linear;
              }
              @keyframes move {
                0% { stroke-dashoffset: 0; }
                100% { stroke-dashoffset: 14; }
              }
            </style>
            <rect class="rect" x="2" y="2" width="100%" height="100%" stroke-width="2" rx="16" stroke-linecap="round"  stroke="url(#paint0_linear_3269_5233)"  stroke-dasharray="8 6"/>
            <defs>
              <linearGradient id="paint0_linear_3269_5233" x1="0" y1="0" x2="100%" y2="100%" gradientUnits="userSpaceOnUse">
                <stop stop-color="#FFD75A"/>
                <stop offset="1" stop-color="#ED424B"/>
              </linearGradient>
            </defs>
          </svg>  
          

          所有情況都可以將 SVG轉(zhuǎn)為內(nèi)聯(lián)CSS直接用在背景上,極大的保證了HTML的簡潔性

          你也可以訪問在線鏈接:dot border with animation (juejin.cn)[4]

          六、總結(jié)一下

          以上就是本文的全部內(nèi)容了,主要介紹了如何利用 SVGCSS各種的優(yōu)勢來實(shí)現(xiàn)更加靈活的布局,下面總結(jié)一下

          1. 設(shè)計(jì)軟件導(dǎo)出的SVG都是固定尺寸的,不能自適應(yīng)尺寸
          2. SVG很擅長漸變邊框,而CSS很擅長自適應(yīng)尺寸,得想辦法取長補(bǔ)短
          3. SVG部分屬性支持百分比類型,可以實(shí)現(xiàn)尺寸自適應(yīng)
          4. SVG描邊是居中描邊,并且不可修改,所以需要調(diào)整圓角矩形的坐標(biāo)的大小
          5. SVG中也支持 CSS部分特性,比如calc計(jì)算函數(shù)
          6. SVG還支持內(nèi)嵌style標(biāo)簽,直接插入CSS代碼
          7. 可以將SVG轉(zhuǎn)為內(nèi)聯(lián)CSS代碼,在支持SVG特性的同時(shí)極大的保證了HTML的整潔
          8. 借助SVG可以很輕松的實(shí)現(xiàn)漸變虛線邊框
          9. SVG中還支持CSS動畫,可以實(shí)現(xiàn)虛線滾動動畫

          你可能已經(jīng)發(fā)現(xiàn)SVG并不是非常孤立的一門語言,現(xiàn)在還能和 CSSHTML聯(lián)動起來,充分發(fā)揮各自的優(yōu)勢,這樣才能事半功倍 。

          [1]buton with SVG (juejin.cn): https://code.juejin.cn/pen/7341373491785236532

          [2]SVG在線壓縮合并工具: https://www.zhangxinxu.com/sp/svgo/

          [3]button with SVG background (juejin.cn): https://code.juejin.cn/pen/7341378448348643379

          [4]dot border with animation (juejin.cn): https://code.juejin.cn/pen/7341382517888876582

          作者:XboxYan

          來源-微信公眾號:前端偵探

          出處:https://mp.weixin.qq.com/s/VH2U-jqm3cXI0yQFrR3adQ


          主站蜘蛛池模板: 精品视频一区二区三区在线播放| 亚洲福利电影一区二区?| 福利电影一区二区| 亚洲福利一区二区| 中文字幕视频一区| 国产AⅤ精品一区二区三区久久| 国产凹凸在线一区二区| 欧美av色香蕉一区二区蜜桃小说| 91国在线啪精品一区| 怡红院一区二区三区| 亚洲AV本道一区二区三区四区| 日本精品视频一区二区| 国产成人一区二区三区视频免费 | 天堂资源中文最新版在线一区| 狠狠做深爱婷婷综合一区| 无码人妻aⅴ一区二区三区| 久久久av波多野一区二区| 成人丝袜激情一区二区| 国产爆乳无码一区二区麻豆| 大帝AV在线一区二区三区| 色婷婷一区二区三区四区成人网| 亚洲国产精品一区二区三区久久| 国产精品合集一区二区三区| 伊人久久精品无码av一区| 国产免费一区二区三区VR| 亚洲日韩AV无码一区二区三区人| 寂寞一区在线观看| 福利一区二区视频| 亚洲av色香蕉一区二区三区| 91无码人妻精品一区二区三区L| 精品国产毛片一区二区无码| 国产一区二区在线|播放| 国产天堂在线一区二区三区 | 国产精品被窝福利一区| 亚洲一区二区电影| 国产精品一区二区三区高清在线| 亚欧色一区W666天堂| 国产精品成人一区无码 | 视频一区视频二区日韩专区| 中文字幕乱码亚洲精品一区| 国产麻豆媒一区一区二区三区|