以下图,在你的button 中加入bootstrap的class: btn btn-primary,就能够将默认的button(左边)变成右边的样式。css
可若是咱们想应用本身的样式呢?好比咱们想要拥有圆角的button。前端
咱们在本身的项目目录下新建my-custom.css文件,加入以下代码:git
.btn { -webkit-border-radius: 20px; -moz-border-radius: 20px; border-radius: 20px; }
将my-custom.css文件引用放到bootstrap.css文件后面,咱们定义的btn样式就会覆盖原有的样式(注:这里的‘覆盖’指的是增量叠加式的覆盖)。github
<link rel="stylesheet" href="boostrap.css"> <link rel="stylesheet" href="my-custom.css">
但这种方法有它的优缺点,web
优势:不会改变你的工做流程。你能够快速直接修改你的样式,即便是你的网站引用了其余的相似bootstrap的框架样式,你均可以在同一个地方进行统一的定制。bootstrap
缺点:可是对于更完全的修改(好比从新设计导航栏)或是非局部的修改(好比修改适用于整个网站的高亮颜色)来讲,这样东一块,西一块的覆盖样式更像是一种打补丁式的解决方案。并且你的新样式要添加到Bootstrap的默认样式表里,让本已经100 KB的文件愈加臃肿。若是你不只仅想要作一些覆盖,那就要考虑一种更具扩展性的方法了。sass
咱们可使用官方的构建器,你能够对bootstrap中样式变量进行自定义。以下图所示:app
bootstrap 是基于less定制的,若是你不熟悉less语法,建议到其官网(http://lesscss.org/)学习一下,很简单,了解并学会使用它用不了多长时间。框架
定制好你的变量后点击download按钮就会生成一套属于你的bootstrap框架了。同时,网上还有不少相似定制bootstrap的网站,若是你不习惯官网的能够去这其它的网站试试,好比Bootswatchr网站使用变量来组织,而StyleBootstrap则使用组件。BootTheme添加了扔骰子特性来随机设置值。若是幸运女神不站在你这边,Lavish可以根据你提供的任何图片来生成一个主题,PaintStrap则是根据已有的配色方案来生成。less
固然,这种方法也有它的优缺点,
优势:相比上一种方法,它简便了你对总体网站的修改。
缺点:首先你很难一开始就肯定网站全部的样式风格,固然你能够在肯定好了后再生成一个最终版本。因此这就引入一个问题,若是你还要时不时更换你的样式,你一样须要找到bootstrap样式源文件编辑,你可能还要用到第一种方法,好比我要使用圆角的带阴影的button,光定制就不能知足个人需求,再者,若是面对bootstrap升级的问题,你还须要从新根据你的样式构建一个新版本的bootstrap,这样要真的作起来,会很是的麻烦。
首先得到bootstrap的源码,
打开源码,你会发现Bootstrap的样式是用LESS而不是CSS写的。LESS 是一种动态样式表语言,相比于CSS,它支持多种优秀特性,包括选择器嵌套,建立变量(就像在上面生成器中使用的)。一旦写完,你能够选择将LESS代码预先或在运行时编译成 CSS。若是你喜欢 Sass,可使用这个适用于Sass的Bootstrap。
在 less 文件夹中,你会看到许多按照组件来划分的 LESS 文件。
咱们打开bootstrap.less文件看看里面写的是什么:
实际上,bootstrap是经过编译bootstrap.less这一个文件而生成整个bootstrap.css文件的。咱们看到bootstrap.less的做用仅仅是引入其余文件。这样,咱们定制化的工做就好办了。
如下这些文件是你要注意的:
咱们定制的思路就是,找到咱们须要定制的组件和相对应的变量,对其修改,而后编译成咱们本身的bootstrap.css便可。
下面讲讲具体实现方法。
确保你已经安装好Less, 为了避免让咱们修改的内容与原始文件重合在一块儿,咱们须要模块化的修改。
首先下载bootstrap源码,下载后就不须要对其作任何的改动了。咱们单独创建一个文件夹(文件目录只要能引用到bootstrap的less文件就能够),取名为custom-bootstrap,其中包含如下三个文件:
custom-variables.less:
这个文件包含你要定制的变量。
custom-other.less:
这个文件中包含了那些没法经过修改变量完成定制的内容,好比增长或禁用button的text-shandow属性。
custom-bootstrap.less
这是新的「核心」文件。咱们将把它编译成CSS。与原始的 LESS文件同样,它使用下面的命令来引入上面那两个自定义文件(记住要保证文件正确的引用顺序)
1 @import "../bootstrap/less/bootstrap.less"; //这个引用到原有的bootstrap文件 2 @import "custom-variables.less"; 3 @import "custom-other.less"; 4 @import "../bootstrap/less/utilities.less"; //咱们一样要引用原生的utilities.less,由于咱们要保证该文件始终最后一个被导入
这时,咱们只要编译custom-bootstrap.less就能够了。
有一些须要注意的是,custom-variables.less 不须要拷贝原有文件的全部内容,只须要拷贝和你要定制的组件相关的变量就能够了,若是你这样作了,单独编译custom-variables.less或custom-other.less会提示缺乏变量定义的错误,但这不要紧,你只要保证编译custom-bootstrap.less没有错误就能够了。
这种方法的优势在于,将定制的变化与原有库代码很好的隔离,却又不失可维护性。即便从此升级bootstrap版本,咱们也不要担忧从新构建样式框架了。
如何更高效的定制bootstrap还有一点须要注意的就是,你要理解bootstrap组织代码的方式以及若是更高效的书写Less。
下面的这些文章可能会帮助到你:
CSS Frameworks + CSS Reset: Design From Scratch
Challenging CSS Best Practices
An Introduction To Object Oriented CSS (OOCSS)
参考文章:http://coding.smashingmagazine.com/2013/03/12/customizing-bootstrap/