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 相关文章推荐
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
sea.js常用的api简易文档
Nov 15 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
Jan 24 Javascript
原生JS实现瀑布流插件
Feb 06 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 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 项目的方法
2007/01/02 PHP
php实现天干地支计算器示例
2014/03/14 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
PHP数组相关函数汇总
2015/03/24 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python实现控制台进度条功能
2016/01/04 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
正规的求职信范文分享
2013/12/11 职场文书
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
学生个人自我鉴定
2014/03/26 职场文书
领导班子对照检查材料
2014/09/22 职场文书
实习班主任自我评价
2015/03/11 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python