国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SVG Sprite 入門(SVG圖標(biāo)解決方案)

opengps / 1083人閱讀

摘要:關(guān)于瀏覽器圖標(biāo)解決方案,一直就有很多以及相對(duì)而言矢量圖標(biāo)以及支持瀏覽器自身解析的優(yōu)點(diǎn),很多團(tuán)隊(duì)都已經(jīng)在使用了。這篇文章主要說明圖標(biāo)的使用和制作。在中可以在任何地方復(fù)用文件中定定義的的形,包括和已經(jīng)。

關(guān)于瀏覽器圖標(biāo)解決方案,一直就有很多 CSS Sprite,Icon Font,CSS Icon以及SVG.相對(duì)而言svg矢量圖標(biāo)以及支持瀏覽器自身解析的優(yōu)點(diǎn),很多團(tuán)隊(duì)都已經(jīng)在使用了。這篇文章主要說明svg圖標(biāo)的使用和制作。

演示地址

代碼

SVG Sprite 傳統(tǒng)的做法

使用AI或者合并SVG圖像,然后用background-postion;

打開AI,新建一個(gè)30 * 60(px)的畫布,設(shè)置好網(wǎng)格和參考線.

用AI打開svg文件,然后復(fù)制路徑到畫布上調(diào)整大小

其他就和css-sprite沒有差異了

.icon-bg{
    display: inline-block;
    width: 30px;
    height: 30px;
    background: url(./res/svg-sprite-background.svg);
    background-size:100% 100%;
    vertical-align: middle;
}
.icon-facebook-logo{
    background-position: 0 0;
}
.icon-earth{
    background-position: 0 -30px;
}
.icon-like{
    background-position: 0 -60px;
}

html 中使用

效果如下:

使用photoshop進(jìn)行合并

可能很多圖標(biāo)是圖形形狀。

打開Photoshop 新建一個(gè)30 60 (px)的畫布,我們計(jì)劃30px 30px,設(shè)置好網(wǎng)格或者參考線

用AI打開SVG文件,然后Ctrl+C 復(fù)制路徑,然后復(fù)制到photoshop文檔中,選擇圖層形狀,然后再進(jìn)行調(diào)整

選擇 "文件" ->"導(dǎo)出" -> "路徑到illustrator"

保存為SVG

效果如下:

如果這樣做,這似乎浪費(fèi)了SVG的很多特性.

SVG Sprite的另外一種實(shí)現(xiàn)思路 + 

SVG 在svg中主要適用于定義可復(fù)用的符號(hào),而這些定義在symbol元素的形狀將不會(huì)被展示出來,而是通過use元素引用來顯示。

在SVG中可以在任何地方復(fù)用svg文件中定定義的的形,包括已經(jīng)

在使用 use 時(shí),它必須要有一個(gè)id,這樣 use 通過xlink:href的值找到該形狀的引用。注意,一定要在前面加一個(gè)#,這樣才能引用ID成功。


      
        
            
            
        
      

      
      

在使用 use 時(shí),它必須要有一個(gè)id,這樣 use 通過xlink:href的值找到該形狀的引用.注意,一定要在前面加一個(gè)#,這樣才能引用ID成功。

首先我們使用PS+AI生成帶有symbol的 SVG。

前面步驟與生成背景的圖類似

打開Symbols面板,在Window菜單欄中,或Shift+Ctrl+F11啟用。然后,選中單個(gè)元素,點(diǎn)擊添加。

給符號(hào)命名,該名稱即為引用的ID

保存為SVG時(shí),實(shí)際上生成的SVG代碼并非我們要使用的,太過臃腫,可以到 http://www.zhangxinxu.com/sp/svg.html 進(jìn)行處理下,方便使用查看DEMO3處理后的代碼

在Html 里將SVG 放入,并隱藏;


    

使用:

效果如下:

可以通過CSS去控制填充(fill)或者描邊的顏色(stroke)

.icon-blue{
        fill:#1ba1e2;
}

使用 icomoon 制作SVG Sprite [推薦]

icommon不僅可以生成icon fonts還可以生成SVG Sprite.

文件下載完成解壓可以得到的文件夾里面會(huì)有demo.html 可以直接打開源碼參考使用.

使用svgstore生成SVG Sprite

svgstore是 grunt的一個(gè)插件,用于自動(dòng)獲取文件中的SVG文件并自動(dòng)合并。

npm install grunt-svgstore --save-dev

安裝成功后,可以在 node_modules中看到grunt-svgstore文件夾

可以新建一個(gè)項(xiàng)目,svg-demo1

在文件中新建一個(gè) src 文件夾,并把需要合并的svg文件中放進(jìn)去

然后新建package.json

{
  "name": "svg-store",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-svgstore": "~0.5.0"
  }
}

然后新建Gruntfile.js,里面配置選項(xiàng)大致如下:

module.exports = function(grunt) {
    // 配置
    grunt.initConfig({
        svgstore: {
            options: {
              prefix : "icon-", 
              svg: { 
                viewBox : "0 0 100 100",
                xmlns: "http://www.w3.org/2000/svg"
              },
              includedemo:true,
            },
            default : {
              files: {
                "dest/dest-svg.svg": ["src/*.svg"],
              },
            }

        }
    });
    // 載入grunt-svgstore
    grunt.loadNpmTasks("grunt-svgstore");
    // 注冊(cè)任務(wù)
    grunt.registerTask("default", ["svgstore"]);
};

接下來輸入命令npm install;

自動(dòng)加載依賴項(xiàng)目,再輸入命令:

grunt

這個(gè)時(shí)候可以看到一個(gè)合并的dest-svg.svg文件和一個(gè)dest-svg-demo.html文件,打開網(wǎng)頁文件,你可以快速的使用這些svg icon了.

一些常見的配置說明:

options.includedemo // 是否生成一個(gè)demo的html文件 一般還是寫上比較好 
options.cleanup  //是否支持css 控制圖標(biāo)的fill和stroke屬性等,可以傳入一個(gè)數(shù)組實(shí)現(xiàn)自定義 ["fill","stroke-width" ...]
options.svg // 添加svg的一些屬性在生成的svg文件中 viewBox: "0,0,100,100"

更多選項(xiàng):參考這里

小結(jié)

借助第三方工具我們可以快速的制作svg sprite,相對(duì)其他方案,svg更加靈活,可控制,矢量顯示等優(yōu)點(diǎn),在移動(dòng)端以及部分pc站點(diǎn)上非常適用于圖標(biāo)解決方案。

擴(kuò)展閱讀: http://events.jackpu.com/svg/demo.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/54308.html

相關(guān)文章

  • SVG Sprite 入門SVG圖標(biāo)解決方案

    摘要:關(guān)于瀏覽器圖標(biāo)解決方案,一直就有很多以及相對(duì)而言矢量圖標(biāo)以及支持瀏覽器自身解析的優(yōu)點(diǎn),很多團(tuán)隊(duì)都已經(jīng)在使用了。這篇文章主要說明圖標(biāo)的使用和制作。在中可以在任何地方復(fù)用文件中定定義的的形,包括和已經(jīng)。 showImg(https://segmentfault.com/img/bVvef3); 關(guān)于瀏覽器圖標(biāo)解決方案,一直就有很多 CSS Sprite,Icon Font,CSS Icon...

    dance 評(píng)論0 收藏0
  • SVG vs Image, SVG vs Iconfont

    摘要:結(jié)論綠色部分表示比略勝一籌的地方,黃色部分表示有所欠缺的地方,灰綠色表示差不多。兼容性列表可以良好地支持多色及多色變化。以為例說明便捷使用。綜上結(jié)論選擇或許是一個(gè)不錯(cuò)地選擇去替代的使用方式。 這可能是個(gè)別人寫過很多次的話題,但貌似由于兼容性的原因?圖標(biāo)的顯示還是用著 Iconfont 或者 CSS Sprite 的形式?希望通過自己新瓶裝舊酒的方式能重新引導(dǎo)一下問題。 SVG vs I...

    kel 評(píng)論0 收藏0
  • SVG vs Image, SVG vs Iconfont

    摘要:結(jié)論綠色部分表示比略勝一籌的地方,黃色部分表示有所欠缺的地方,灰綠色表示差不多。兼容性列表可以良好地支持多色及多色變化。以為例說明便捷使用。綜上結(jié)論選擇或許是一個(gè)不錯(cuò)地選擇去替代的使用方式。 這可能是個(gè)別人寫過很多次的話題,但貌似由于兼容性的原因?圖標(biāo)的顯示還是用著 Iconfont 或者 CSS Sprite 的形式?希望通過自己新瓶裝舊酒的方式能重新引導(dǎo)一下問題。 SVG vs I...

    paulquei 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<