<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
        主站蜘蛛池模板: 免费少妇a级毛片人成网| 二区久久国产乱子伦免费精品| 久久免费看少妇高潮V片特黄| 在线亚洲精品福利网址导航| 一级毛片大全免费播放| 亚洲av无码天堂一区二区三区| 女bbbbxxxx另类亚洲| 亚洲 自拍 另类小说综合图区| 无码亚洲成a人在线观看| 国产真实伦在线视频免费观看| 激情婷婷成人亚洲综合| 全亚洲最新黄色特级网站 | 日本不卡在线观看免费v| 亚洲av日韩综合一区二区三区| 又爽又高潮的BB视频免费看| 一本一道dvd在线观看免费视频| 精品久久久久久亚洲| 日本亚洲色大成网站www久久| 在线观看特色大片免费视频| 亚洲最大的黄色网| 免费在线观看亚洲| 亚洲中文字幕无码一区| 免费国产黄网站在线观看| 亚洲国产成人久久| 国产做床爱无遮挡免费视频| 一级毛片在线播放免费| 久久精品亚洲一区二区三区浴池 | 久99久精品免费视频热77| 亚洲精品欧洲精品| 国产精品麻豆免费版| a级毛片在线视频免费观看| 亚洲人成电影在线观看青青| 日本一线a视频免费观看| 在线免费观看h片| 亚洲H在线播放在线观看H| 四虎永久免费地址在线网站| 国产免费一区二区视频| 亚洲精品无码久久久久APP| 亚洲精品无码永久在线观看你懂的| 57pao一国产成视频永久免费| 亚洲AV成人精品日韩一区|