Bootstrap是現在最流行的CSS框架,有許多網站、後台管理系統的樣式都是基於Bootstrap設計的。然而,Bootstrap 始終保持著那藍色 + 淺灰色彩基調,最新的 Bootstrap4 也是如此,看久了難免有些審美疲勞。
怎麼修改 Bootstrap 的色彩主題呢?本篇就教你如何定製 Bootstrap4,使你的頁面更與眾不同一些。
0. 需要的工具
- Node.js 編譯 Bootstrap4、下載Bootstrap的依賴包,需要在電腦上安裝 Node.js
- Bootstrap4 源代碼 修改 Boostrap 需要一份源代碼,訪問 Bootstrap 官方網站(https://getbootstrap.com)可以下載到源代碼。
有些地方可能無法訪問 Bootstrap4 官網,那麼也可以訪問 Bootstrap 中文網 下載到源代碼。
1. 定製顏色主題
Bootstrap為了方便定製,將一些變數提取了出來,放在 scss/_varaibles.scss 文件中。
打開這個文件,可以發現有非常多的配置,找到這一段:
$primary: $blue !default;
$secondary: $gray-600 !default;
$success: $green !default;
$info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-100 !default;
$dark: $gray-800 !default;
這裡就是配置 Bootstrap 基本色調的地方,修改這些顏色值,可以另網站看上去風格迥異。除了主色調,還有很多顏色相關的變數可以控制,細到一個輸入框的邊框顏色也可以調整。您可以慢慢嘗試。
比如修改 _variables.scss 的這些變數:
$primary: #e95420 !default;
$secondary: #0e8420 !default;
$success: #fff !default;
$light: #e8cd56 !default;
$dark: #e95420 !default;
$input-bg: #c34113;
$input-border-color: #c34113;
$input-placeholder-color: #ccc;
$input-color: #fff;
$jumbotron-bg: rgb(247, 247, 247);
就會得到 Ubuntu 網站類似的色彩風格:
2. 組件外觀微調
除了調整顏色,_variables.scss 還有很多變數,能對 Bootstrap 組件的外觀進行微調,比如:
-
$enable-shadows
,控制一些彈出組件周圍是否顯示陰影
-
$enable-rounded
,控制組件(按鈕、輸入框、下拉框等)周圍是否顯示為圓角
-
$enable-gradients
,控制組件的背景是否顯示微弱的漸變效果
這控制的變數還有很多,就不一一列舉了。
4. 編譯 Bootstrap
修改完了變數,如何生成自己的 Bootstrap CSS文件呢?需要用 npm 編譯。
編譯前需要先下載各種依賴包,通過 install 命令搞定:
npm install
提示:Node.js 默認npm官網下載依賴包,可能比較慢。建議從淘寶NPM鏡像下載,速度很快:
先執行
npm install -g cnpm --registry=https://registry.npm.taobao.org
然後在任何用到 npm 命令的地方,都可以用 cnpm 代替
依賴下載完之後執行編譯:
npm run dist
稍等片刻,編譯好的 css 文件會出現在 dist/css/ 目錄下,可以複製到你的項目中使用啦!
5. 在 Webpack 項目定製 Bootstrap
以上所說內容都是通過編譯源代碼的方式定製 Bootstrap4。如果想要在 Webpack 項目中定製 Bootstrap4 該怎麼辦呢?
直接修改 node_modules 中的 Bootstrap 源碼不太合適。官方推薦的方式是,在項目中新建一個 custom.scss 文件,把你想修改的變數寫在裡面:
// 如果想修改 _variables.scss 中的變數,請寫在這裡
$primary: #e95420 !default;
$secondary: #0e8420 !default;
...
// 文件末尾請這樣引入 Bootstrap 的源碼
@import "~bootstrap/scss/bootstrap";
然後在 Webpack 編譯時,把 custom.scss 也加入到編譯的文件列表中。這需要修改項目中的 webpack.config.js 配置。
那麼,webpack.config.js 該怎麼寫呢?
答案就在 Boostrap4 的官方文檔里,您可以自己翻閱。也可通過這個微信號加我,我會直接告訴您答案。