国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

webpack4 處理CSS的方法示例

來源:懂視網 責編:小采 時間:2020-11-27 22:08:37
文檔

webpack4 處理CSS的方法示例

webpack4 處理CSS的方法示例:這節課講解webpack4中打包css的應用。v4 版本和 v3 版本并沒有特別的出入。 1. 準備工作 眾所周知,CSS 在 HTML 中的常用引入方法有<link>標簽和<style>標簽兩種,所以這次就是結合webpack特點實現以下功能: 將 css 通過 li
推薦度:
導讀webpack4 處理CSS的方法示例:這節課講解webpack4中打包css的應用。v4 版本和 v3 版本并沒有特別的出入。 1. 準備工作 眾所周知,CSS 在 HTML 中的常用引入方法有<link>標簽和<style>標簽兩種,所以這次就是結合webpack特點實現以下功能: 將 css 通過 li

這節課講解webpack4中打包css的應用。v4 版本和 v3 版本并沒有特別的出入。

1. 準備工作

眾所周知,CSS 在 HTML 中的常用引入方法有<link>標簽和<style>標簽兩種,所以這次就是結合webpack特點實現以下功能:

  • 將 css 通過 link 標簽引入
  • 將 css 放在 style 標簽里
  • 動態卸載和加載 css
  • 頁面加載 css 前的transform
  • 下圖展示了這次的目錄代碼結構:

     

    這次我們需要用到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通過<link>標簽引入

    link 標簽通過引用 css 文件,所以需要借助file-loader來將 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$/, // 針對CSS結尾的文件設置LOADER
     use: [
     {
     loader: "style-loader/url"
     },
     {
     loader: "file-loader"
     }
     ]
     }
     ]
     }
    };
    
    

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

    let clicked = false;
    window.addEventListener("click", function() {
     // 需要手動點擊頁面才會引入樣式!!!
     if (!clicked) {
     import("./css/base.css");
     }
    });
    

    3. CSS放在<style>標簽里

    通常來說,css放在style標簽里可以減少網絡請求次數,提高響應時間。需要注意的是,在老式 IE 瀏覽器中,對style標簽的數量是有要求的。

    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$/, // 針對CSS結尾的文件設置LOADER
     use: [
     {
     loader: "style-loader",
     options: {
     singleton: true // 處理為單個style標簽
     }
     },
     {
     loader: "css-loader",
     options: {
     minimize: true // css代碼壓縮
     }
     }
     ]
     }
     ]
     }
    };
    
    

    4. 動態卸載和加載CSS

    style-loader為 css 對象提供了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,來實現每 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即可看到頁面背景顏色閃動的效果。

    5. 頁面加載css前的transform

    對于css的transform,簡單來說:在加載 css 樣式前,可以更改 css。這樣,方便開發者根據業務需要,對 css 進行相關處理。

    需要對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,這個文件導出一個函數,傳入的參數就是 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";

    我們打開控制臺,如下圖所示,當屏幕寬度小于 1000 時候,css 中的red已經被替換為了green。

    需要注意的是:transform是在 css 引入前根據需要修改,所以之后是不會改變的。所以上方代碼不是響應式,當把屏幕寬度拉長到大于 1000 時候,依舊是綠色。重新刷新頁面,才會是紅色。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    webpack4 處理CSS的方法示例

    webpack4 處理CSS的方法示例:這節課講解webpack4中打包css的應用。v4 版本和 v3 版本并沒有特別的出入。 1. 準備工作 眾所周知,CSS 在 HTML 中的常用引入方法有<link>標簽和<style>標簽兩種,所以這次就是結合webpack特點實現以下功能: 將 css 通過 li
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品国产成人综合久久小说 | 国产成人精品一区二三区 | 久久久这里有精品999 | 五月婷婷在线视频 | 欧美一级视频在线观看 | 在线观看网站国产 | 国产v欧美v日韩在线观看 | 国产精品一级片 | 另类第一页 | 香蕉视频在线观看网站 | 性久久久久| 欧美精品第一页 | 91欧洲在线视精品在亚洲 | 福利视频一区二区牛牛 | 精品一区二区三区四区电影 | 国内精品一区二区三区 | 国产l精品国产亚洲区在线观看 | 亚洲精品视频区 | 国产日韩在线看 | 久久精品国产精品亚洲综合 | 欧美第四页 | 欧美日韩高清一区 | 黄色成人在线视频 | 亚洲欧美日韩精品久久久 | 亚洲人成一区二区三区 | 在线视频 亚洲 | 北条麻妃在线观看 | 女人18毛片a级毛片一区②区 | 亚洲欧美日韩中文无线码 | 亚洲一区二区在线 | 99热成人精品国产免国语的 | 亚洲一区二区三区夜色 | 日韩欧美小视频 | 韩国精品在线 | 日韩精品一区二区三区在线观看l | 日韩欧美国产中文字幕 | 久久艹精品 | 国产欧美日韩精品综合 | 日韩电影免费在线观看中文字幕 | 欧美极品尤物在线播放一级 | 国产高清视频在线观看 |