webpack中如何使用雪碧圖的示例代碼-創(chuàng)新互聯(lián)

一、什么是雪碧圖?

站在用戶的角度思考問題,與客戶深入溝通,找到高港網(wǎng)站設(shè)計(jì)與高港網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋高港地區(qū)。

CSS雪碧 即CSS Sprite,也有人叫它CSS精靈,是一種CSS圖像合并技術(shù),該方法是將小圖標(biāo)和背景圖像合并到一張圖片上,然后利用css的背景定位來顯示需要顯示的圖片部分。

二:為什么要用雪碧圖


結(jié)合我們公司的需求來說,因?yàn)橛泻芏嘟M件,每個(gè)組件下有大概50張圖片,每張圖片是一個(gè)請(qǐng)求,也就是發(fā)了300多個(gè)請(qǐng)求,這樣是很可怕的,所以為了優(yōu)化性能,減少http請(qǐng)求,決定采用雪碧圖的形式。

雪碧圖是將你想要的很多張圖片整理成一張圖片,然后通過background-*來進(jìn)行圖片識(shí)別和定位來達(dá)到之前的效果。

三:如何使用雪碧圖


雪碧圖在之前有很多方式,如ps之類,現(xiàn)在最佳的方案還是在webpack-spritesmith。

我其實(shí)對(duì)webpack并不是很了解,我現(xiàn)在列出使用方法和我在使用webpack時(shí)候遇到的問題。

1.安裝


執(zhí)行命令行:npm install --save-dev webpack-spritesmith

2.在webpack.config.js中寫入


 var path = require('path')

 var SpritesmithPlugin = require('webpack-spritesmith')

 //自定義樣式
 var templateFunction = function (data) {
  var shared = '.ico { background-size: TWpx THpx }'
    .replace('TW', data.sprites[0].total_width / 2)
    .replace('TH', data.sprites[0].total_height / 2)

  var perSprite = data.sprites.map(function (sprite) {
    return '&.element-N {\n width: Wpx;\n height: Hpx;\n background-position: Xpx Ypx;\n}'
      .replace('N', sprite.name)
      .replace('W', sprite.width / 2)
      .replace('H', sprite.height / 2)
      .replace('X', sprite.offset_x / 2)
      .replace('Y', sprite.offset_y / 2)
      .replace('TW', sprite.total_width / 2)
      .replace('TH', sprite.total_height / 2)
  }).join('\n')

  return shared + '\n' + perSprite
 }

 module.exports = {
   ...
   module: {
     rules: [
       {test: /\.styl$/, use: [
         'style-loader',
         'css-loader',
         'stylus-loader'
       ]},
       {test: /\.png$/, use: [
         'file-loader?name=i/[hash].[ext]'
       ]}
     ]
   },
   resolve: {
     modules: ['node_modules', 'spritesmith-generated']
   },
   plugins: [
     new SpritesmithPlugin({
       src: { //引入路徑
         cwd: path.resolve(__dirname, 'src/images/ios/'),
         glob: '*.png'
       },
       target: { //輸出路徑
         image: path.resolve(__dirname, 'src/spritesmith-generated/ios.png'),
         css: [
          [path.resolve(__dirname, 'src/spritesmith-generated/sprite-1.css'), {
            format: 'function_based_template'
          }],
          [path.resolve(__dirname, 'src/spritesmith-generated/sprite-2.css'), {
            format: 'handlebars_based_template'
          }]
         ]
       },
       customTemplates: {
        'function_based_template': templateFunction, //自定義輸出什么樣的css樣式
       },
       apiOptions: {
         cssImageRef: 'ios.png'
       }
     })
   ]
 }

文章題目:webpack中如何使用雪碧圖的示例代碼-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article26/dppsjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、域名注冊企業(yè)建站、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名