Twitter的Bootstrap简洁好用,但内置的配色和样式用多了难免会审美疲劳。如果直接修改或覆盖生成的css会失去灵活性,而且以后升级维护也会非常麻烦。我使用的方式是下载bootstrap的less文件,添加自己的less文件重新编译来定制样式。
自定义less
以下是Bootstrap的less文件引用关系
- bootstrap.less (编译后生成bootstrap.css)
- variables.less
- mixins.less
- buttons.less
- … (widgets)
- responsive.less (编译后生成bootsrap-responsive.css)
- variables.less
- mixins.less
bootstrap.less 是主文件,定义需要引用的文件。variables.less和mixins.less定义各种变量和函数。而Widget(如button, navbar)的具体样式则由对应的文件分别定义。修改这两个文件基本上可以满足大部分自定义的需求。responsive.less定义的是响应式布局相关的样式,一般不需要改动。
具体步骤
1) 以bootstrap.less为蓝本定义项目的less文件style.less。import 的路径作相应修改
2) variable的改动较多,所以单独定义style_variables.less文件用于覆盖默认变量定义。如果必要,其他less文件也可以作类似处理
3) 编译style.less文件,生成style.css。html中的引用由bootstrap.css改为style.css。
4) 如果以后需要升级bootstrap,检查一下新的bootstrap.css和variables.css有没有变化,一般直接替换bootstrap下的less文件就可以了。
文件示例
目录结构
1 2 3 4 5 6 7 8 9 10 11 | |
style.less
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
variables_override.less
1 2 3 4 5 | |
编译less文件
编译less文件可以使用client-side或server-side方式,client-side由浏览器完成less文件的编译,一般在开发阶段使用;而production一般使用server-side方式,事先编译好css文件。现在有很多编译工具可以监测文件变化,瞬间完成编译,所以即使在开发阶段也可以使用server-side方式。
想找less编译工具可以到这里 看看,Mac,Windows和Linux上的都有。如果你在用Sublime Text2, 使用插件会更方便些。我用的是less2css,在package control直接安装。使用前需要简单配置一下。建议在项目级别配置,具体可以点击Project->Edit project菜单项修改配置,在setttings项中增加less2css节点就可以自动编译了。
1 2 3 4 5 6 7 8 9 10 11 12 | |