<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        webpack4 處理CSS的方法示例

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:08:37
        文檔

        webpack4 處理CSS的方法示例

        webpack4 處理CSS的方法示例:這節(jié)課講解webpack4中打包c(diǎn)ss的應(yīng)用。v4 版本和 v3 版本并沒有特別的出入。 1. 準(zhǔn)備工作 眾所周知,CSS 在 HTML 中的常用引入方法有<link>標(biāo)簽和<style>標(biāo)簽兩種,所以這次就是結(jié)合webpack特點(diǎn)實(shí)現(xiàn)以下功能: 將 css 通過(guò) li
        推薦度:
        導(dǎo)讀webpack4 處理CSS的方法示例:這節(jié)課講解webpack4中打包c(diǎn)ss的應(yīng)用。v4 版本和 v3 版本并沒有特別的出入。 1. 準(zhǔn)備工作 眾所周知,CSS 在 HTML 中的常用引入方法有<link>標(biāo)簽和<style>標(biāo)簽兩種,所以這次就是結(jié)合webpack特點(diǎn)實(shí)現(xiàn)以下功能: 將 css 通過(guò) li

        這節(jié)課講解webpack4中打包c(diǎn)ss的應(yīng)用。v4 版本和 v3 版本并沒有特別的出入。

        1. 準(zhǔn)備工作

        眾所周知,CSS 在 HTML 中的常用引入方法有<link>標(biāo)簽和<style>標(biāo)簽兩種,所以這次就是結(jié)合webpack特點(diǎn)實(shí)現(xiàn)以下功能:

      1. 將 css 通過(guò) link 標(biāo)簽引入
      2. 將 css 放在 style 標(biāo)簽里
      3. 動(dòng)態(tài)卸載和加載 css
      4. 頁(yè)面加載 css 前的transform
      5. 下圖展示了這次的目錄代碼結(jié)構(gòu):

         

        這次我們需要用到css-loader,file-loader等 LOADER,package.json如下:

        {
         "devDependencies": {
         "css-loader": "^1.0.0",
         "file-loader": "^1.1.11",
         "style-loader": "^0.21.0"
         }
        }
        

        其中,base.css代碼如下:

        *,
        body {
         margin: 0;
         padding: 0;
        }
        html {
         background: red;
        }
        

        index.html代碼如下:

        <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         <meta http-equiv="X-UA-Compatible" content="ie=edge">
         <title>Document</title>
        </head>
        <body>
         <script src="./dist/app.bundle.js"></script>
        </body>
        </html>
        

        2. CSS通過(guò)<link>標(biāo)簽引入

        link 標(biāo)簽通過(guò)引用 css 文件,所以需要借助file-loader來(lái)將 css 處理為文件。

        webpack.config.js:

        const path = require("path");
        
        module.exports = {
         entry: {
         app: "./src/app.js"
         },
         output: {
         publicPath: __dirname + "/dist/",
         path: path.resolve(__dirname, "dist"),
         filename: "[name].bundle.js"
         },
         module: {
         rules: [
         {
         test: /\.css$/, // 針對(duì)CSS結(jié)尾的文件設(shè)置LOADER
         use: [
         {
         loader: "style-loader/url"
         },
         {
         loader: "file-loader"
         }
         ]
         }
         ]
         }
        };
        
        

        為了讓效果更顯著,編寫如下app.js:

        let clicked = false;
        window.addEventListener("click", function() {
         // 需要手動(dòng)點(diǎn)擊頁(yè)面才會(huì)引入樣式!!!
         if (!clicked) {
         import("./css/base.css");
         }
        });
        

        3. CSS放在<style>標(biāo)簽里

        通常來(lái)說(shuō),css放在style標(biāo)簽里可以減少網(wǎng)絡(luò)請(qǐng)求次數(shù),提高響應(yīng)時(shí)間。需要注意的是,在老式 IE 瀏覽器中,對(duì)style標(biāo)簽的數(shù)量是有要求的。

        app.js和第二部分一樣,webpack.config.js配置修改如下:

        const path = require("path");
        
        module.exports = {
         entry: {
         app: "./src/app.js"
         },
         output: {
         publicPath: __dirname + "/dist/",
         path: path.resolve(__dirname, "dist"),
         filename: "[name].bundle.js"
         },
         module: {
         rules: [
         {
         test: /\.css$/, // 針對(duì)CSS結(jié)尾的文件設(shè)置LOADER
         use: [
         {
         loader: "style-loader",
         options: {
         singleton: true // 處理為單個(gè)style標(biāo)簽
         }
         },
         {
         loader: "css-loader",
         options: {
         minimize: true // css代碼壓縮
         }
         }
         ]
         }
         ]
         }
        };
        
        

        4. 動(dòng)態(tài)卸載和加載CSS

        style-loader為 css 對(duì)象提供了use()和unuse()兩種方法,借助這兩種方法,可以方便快捷地加載和卸載 css 樣式。

        首先,需要配置webpack.config.js:

        const path = require("path");
        
        module.exports = {
         entry: {
         app: "./src/app.js"
         },
         output: {
         publicPath: __dirname + "/dist/",
         path: path.resolve(__dirname, "dist"),
         filename: "[name].bundle.js"
         },
         module: {
         rules: [
         {
         test: /\.css$/,
         use: [
         {
         loader: "style-loader/useable" // 注意此處的style-loader后面的 useable
         },
         {
         loader: "css-loader"
         }
         ]
         }
         ]
         }
        };
        
        

        然后,我們修改我們的app.js,來(lái)實(shí)現(xiàn)每 0.5s 換一次背景顏色:

        import base from "./css/base.css"; // import cssObj from '...'
        var flag = false;
        setInterval(function() {
         // unuse和use 是 cssObj上的方法
         if (flag) {
         base.unuse();
         } else {
         base.use();
         }
         flag = !flag;
        }, 500);
        

        打包后打開index.html即可看到頁(yè)面背景顏色閃動(dòng)的效果。

        5. 頁(yè)面加載css前的transform

        對(duì)于css的transform,簡(jiǎn)單來(lái)說(shuō):在加載 css 樣式前,可以更改 css。這樣,方便開發(fā)者根據(jù)業(yè)務(wù)需要,對(duì) css 進(jìn)行相關(guān)處理。

        需要對(duì)style-loader增加options.transform屬性,值為指定的 js 文件,所以, webpack.config.js配置如下:

        const path = require("path");
        
        module.exports = {
         entry: {
         app: "./src/app.js"
         },
         output: {
         publicPath: __dirname + "/dist/",
         path: path.resolve(__dirname, "dist"),
         filename: "[name].bundle.js"
         },
         module: {
         rules: [
         {
         test: /\.css$/,
         use: [
         {
         loader: "style-loader",
         options: {
         transform: "./css.transform.js" // transform 文件
         }
         },
         {
         loader: "css-loader"
         }
         ]
         }
         ]
         }
        };
        
        

        下面,我們編寫css.transform.js,這個(gè)文件導(dǎo)出一個(gè)函數(shù),傳入的參數(shù)就是 css 字符串本身。

        module.exports = function(css) {
         console.log(css); // 查看css
         return window.innerWidth < 1000 ? css.replace("red", "green") : css; // 如果屏幕寬度 < 1000, 替換背景顏色
        };
        

        在app.js中引入 css 文件即可:

        import base from "./css/base.css";

        我們打開控制臺(tái),如下圖所示,當(dāng)屏幕寬度小于 1000 時(shí)候,css 中的red已經(jīng)被替換為了green。

        需要注意的是:transform是在 css 引入前根據(jù)需要修改,所以之后是不會(huì)改變的。所以上方代碼不是響應(yīng)式,當(dāng)把屏幕寬度拉長(zhǎng)到大于 1000 時(shí)候,依舊是綠色。重新刷新頁(yè)面,才會(huì)是紅色。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        webpack4 處理CSS的方法示例

        webpack4 處理CSS的方法示例:這節(jié)課講解webpack4中打包c(diǎn)ss的應(yīng)用。v4 版本和 v3 版本并沒有特別的出入。 1. 準(zhǔn)備工作 眾所周知,CSS 在 HTML 中的常用引入方法有<link>標(biāo)簽和<style>標(biāo)簽兩種,所以這次就是結(jié)合webpack特點(diǎn)實(shí)現(xiàn)以下功能: 將 css 通過(guò) li
        推薦度:
        標(biāo)簽: 方法 處理方法 css的
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲毛片αv无线播放一区 | 亚洲a无码综合a国产av中文| 91久久青青草原线免费| 久久亚洲高清观看| 在线看片免费人成视频福利| 无码欧精品亚洲日韩一区| 无码专区AAAAAA免费视频| 精品亚洲国产成AV人片传媒| 222www免费视频| 亚洲已满18点击进入在线观看| 国产成在线观看免费视频| 亚洲第一成年免费网站| 亚洲AV无码乱码在线观看| jizz免费在线影视观看网站| 国产亚洲A∨片在线观看| 免费人成视频在线观看网站| 亚洲成a人片在线观看中文!!!| 啦啦啦高清视频在线观看免费| 亚洲日韩AV一区二区三区中文| 日本媚薬痉挛在线观看免费| 曰批全过程免费视频观看免费软件| 国产亚洲精午夜久久久久久| 国产精品免费高清在线观看| 亚洲福利视频一区二区三区| 日韩一区二区在线免费观看| 久久er国产精品免费观看8| 亚洲av无码精品网站| 成人黄页网站免费观看大全| 人妻免费久久久久久久了| 亚洲精品高清国产麻豆专区| 午夜网站免费版在线观看| 黄 色一级 成 人网站免费| 亚洲欧洲日产国码在线观看| 韩国免费三片在线视频| 国产免费AV片在线观看| 亚洲日韩精品无码专区加勒比☆| 精品国产亚洲一区二区在线观看 | 亚洲乱码一区二区三区国产精品| 免费国产成人午夜电影| 日本xxxx色视频在线观看免费 | 黄人成a动漫片免费网站|