在基于bootstrap css框架的前端项目开发中,如果有grunt build系统,那么工作流是:客制化less,在less中定义自己的

CSS,同时可以随意引用bootstrap中预定义好的css类,一旦保存文件,grunt则开始重新构建,生成最后的生产文件。问题是:

如何能够在自己的客制less文件中引入bootstrap的less变量或者mixin呢?

比如:我如何能够实现在屏幕尺寸在@screen-md时,将所有的图片隐藏呢?

对于这个场景,假设项目目录结构如下:

> bower_components
> bootstrap
> font-awesome
> requirejs
...
> css
- project.css
> less
- project.less
- variables.less

可行的办法为:

1.在project.less中import bootstrap.less,font-awsome,以及自己定义的项目所需less文件:

// Bootstrap framework
@import "../../bower_components/bootstrap/less/bootstrap.less"; // Font-awesome awesomeness
@import "../../bower_components/font-awesome/less/font-awesome.less"; // Project specific stuff
@import "variables.less";
@import "stuff.less";

2.在variables.less文件中一方面定义自己的所需变量,另一方面可以覆盖掉bootstrap的预置变量;

// Override Bootstrap variables
@font-family-sans-serif: "Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
@btn-default-border: #bbb;
@brand-primary: #b02b2c;
@link-color: #08c; // Override Font-Awesome variables (path relative to project.css position)
@fa-font-path: "../bower_components/font-awesome/fonts"; //Map Bootstrap variables to myproject specific names
@my-customname-float-breakpoint: @grid-float-breakpoint;
@theme-color: @brand-primary; //Project specific variables
@my-favourite-color: rgb(228, 1, 1);

3.仅仅编译project.less文件,最后生成一个包罗万象的巨大css文件(注意这里也包含font-awsome)

4.既然在project.less中已经引入了bootstrap.less,那么在后面import的自创less文件自然可以引用任何bootstrap less变量或mixin,比如:

// Hide all images at a viewport smaller than 992px (aka @screen-md)
@media (max-width: @screen-sm-max) {
img {
display: none;
}
}

原文出处:

http://stackoverflow.com/questions/20246514/using-twitter-bootstrap-3-during-development

http://transmission.vehikl.com/using-bootstrap-as-a-semantic-mixin-library/

http://www.helloerik.com/bootstrap-3-less-workflow-tutorial

http://slicejack.com/bootstrap-with-less-workflow/

https://www.npmjs.com/package/grunt-include-bootstrap

http://stackoverflow.com/questions/12655034/how-to-use-bootstrap-and-less-and-keep-a-clean-project

最新文章

  1. select2 demo
  2. linux线程
  3. WPF,Silverlight与XAML读书笔记第四十四 - 外观效果之样式
  4. c运行库冲突问题
  5. Jquery 之 使用选择器
  6. JSTL+MyEclipse8.5+Tomcat配置
  7. 高级Java开发工程师
  8. Qt Meta Object System-元对象系统
  9. BZOJ 1016 星球大战starwar(逆向-并查集)
  10. 转载: C#: Left outer joins with LINQ
  11. C和指针 (pointers on C)——第三章——数据
  12. make deb for debian/ubuntu, package software for debian/ubuntu
  13. 201521123074 《Java程序设计》第2周学习总结
  14. struts1.3整合spring2.5(将spring委托给struts方式)
  15. win7远程桌面 连接不上(用户名与全名不匹配的问题)
  16. 在IIS上搭建WebSocket服务器(一)
  17. log4net配置文件
  18. Java -- JDBC_利用反射及 JDBC 元数据编写通用的查询方法
  19. quart源码阅读(一)
  20. Windows7安装nginx后,'nginx -t -c nginx.conf' 命令出现 “could not open error log file: CreateFile() "logs/error.log" failed” 错误的原因

热门文章

  1. 使用EntityFrameworkCore 连接 MySql
  2. 分区助手官网使用教程(专业版、绿色版和WinPE版)(图文详解)
  3. C/C++ -- Gui编程 -- Qt库的使用 -- HelloWorld
  4. 解惑《你必须知道的.net》——C#继承关系中【方发表】的创建和调用
  5. GBDT分类和回归例子
  6. hadoop的RPC机制 -源码分析
  7. SpringMVC源码阅读:Json,Xml自动转换
  8. Java8常用新特性实践
  9. Python魔法方法之属性访问 ( __getattr__, __getattribute__, __setattr__, __delattr__ )
  10. 2 字节的 UTF-8 序列的字节 2 无效 解决方法