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代码
Apr 02 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
浅析JS中document对象的一些重要属性
Mar 06 Javascript
JavaScript避免代码的重复执行经验技巧分享
Apr 17 Javascript
jQuery三级下拉列表导航菜单代码分享
Apr 15 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
webpack+vue.js构建前端工程化的详细教程
May 10 Javascript
js实现轮播图特效
May 28 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python操作Excel之xlsx文件
2017/03/24 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
旅游管理专业大学生职业规划书
2014/02/27 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
主持人大赛开场白
2015/05/29 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android