Bootstrap4如何定制自己的颜色和风格


Posted in Javascript onFebruary 26, 2018

Bootstrap是现在最流行的CSS框架,有许多网站、后台管理系统的样式都是基于Bootstrap设计的。然而,Bootstrap 始终保持着那蓝色 + 浅灰色彩基调,最新的 Bootstrap4 也是如此,看久了难免有些审美疲劳。

怎么修改 Bootstrap 的色彩主题呢?本篇就教你如何定制 Bootstrap4,使你的页面更与众不同一些。

0. 需要的工具

  1. Node.js 编译
  2. Bootstrap4、下载Bootstrap的依赖包,需要在电脑上安装 Node.jsBootstrap4 源代码 修改 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 网站类似的色彩风格:

Bootstrap4如何定制自己的颜色和风格

2. 组件外观微调

除了调整颜色,_variables.scss 还有很多变量,能对 Bootstrap 组件的外观进行微调,比如:

$enable-shadows,控制一些弹出组件周围是否显示阴影

Bootstrap4如何定制自己的颜色和风格

$enable-rounded,控制组件(按钮、输入框、下拉框等)周围是否显示为圆角

Bootstrap4如何定制自己的颜色和风格

$enable-gradients,控制组件的背景是否显示微弱的渐变效果

Bootstrap4如何定制自己的颜色和风格

这控制的变量还有很多,就不一一列举了。

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 的官方文档里,您可以自己翻阅。也可通过这个微信号赞助我 1 元,我会直接告诉您答案。谢谢各位土豪,您的支持就是我继续分享的动力!:-)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 陷阱 window全局对象
Nov 26 Javascript
JavaScrip单线程引擎工作原理分析
Sep 04 Javascript
JS对HTML标签select的获取、添加、删除操作
Oct 17 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
Dec 08 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 Javascript
jQuery获取table下某一行某一列的值实现代码
Apr 07 jQuery
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
使用canvas实现一个vue弹幕组件功能
Nov 30 Javascript
jQuery位置选择器用法实例分析
Jun 28 jQuery
用javascript实现倒计时效果
Feb 09 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
Feb 26 #Javascript
使用vue-cli编写vue插件的方法
Feb 26 #Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 #Javascript
element-ui 表格实现单元格可编辑的示例
Feb 26 #Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 #Javascript
Vue 中的compile操作方法
Feb 26 #Javascript
element ui 对话框el-dialog关闭事件详解
Feb 26 #Javascript
You might like
Php部分常见问题总结
2006/10/09 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
小学运动会表扬稿
2014/01/19 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
政风行风评议工作总结
2014/10/21 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL