本教程操作环境:Windows10系统、bootstrap3.3.7版、DELL G3电脑
bootstrap和less是什么关系
在bootstrap中,提供了很多线程的样式组件,这些样式就是less编写的,使用bootstrap不需要会less。
bootstrap项目架构
实现布局系统和内容
1)栅格系统的设计 补充内容:列排序 col-md-push-4
2)完成单元格的内容
样式定制
-
less
-
修改bootstrap源代码
less
css作为一门标记性语言,语法简单,学习难度低,但CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,,造成这些困难的很大原因源于CSS是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。
LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。
LESS 并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。less它在CSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了CSS的编写,并且降低了CSS的维护成本,,
Less 可以运行在 Node 或浏览器端。
方式1 ——在客户端运行less转换程序
在html中引入xx.less,同时再引入less.js,就是一个可以运行在客户端浏览器中的less编译程序 — 效率偏低,不推荐使用
方式2 ——在服务端运行less转换程序-推荐
1) 下载并安装一款服务器端的js解释器-nodejs
2) 下载less文件的转换程序lessc –js脚本
3) 在服务器端js解释器运行lessc转换器,把自己编写的.less文件转换为css文件
a) 可以在命令行中使用转换程序
node.exe lessc my.less my.css
b) 在hbuilder中使用转换程序
4) html文件中,引用编译得到的css文件
二、 less语法学习
less完全支持css语法
lss支持单行注释和多行注释,但只有多行注释会被转换到css文件中
less支持变量(variable)
@变量名:值
使用:选择器 {样式:@变量名}
less支持样式混合-在一个样式中引用另一个样式
.class1(){...}
.class2{
...
.class1
...
}
带参混合
.class()(@参数1,@参数2,。。。){....}
.class2 {
...
.class(参数1,参数2);
...
}
嵌套规则
.class1{
...
.class2 {}
}
转换的结果
.class1{ }
.class1 .class2{ }
less可以对变量和常量进行算术运算
less为样式提供了几十个应用函数
lighten(颜色,亮度值):将制定的颜色变亮制定的百分比
darken(颜色,亮度值):将指定的颜色变暗指定的百分比
floor(数字) 对数值向下取整
ceil(数字) 对数值向上取整
页面导入
尽量避免使用css文件中的@import指令-会增加HTTP请求次数
为了将一个样式文件拆分为多个小的样式文件,由多人同时编写,可以使用less中的@import-less中导入其他less文件,转换时会拼接一个大的完整的css样式文件,故推荐在less中导入其他less文件
<code> @import "xx.less"</code>
**大型项目中less文件结构**
variable.less —— 放置所有的变量
mixin.less ——放置所有的混合
reset.less ——放置HTML元素重置样式
navbar.less ——导航条相关
footer.less ——页脚相关样式
js.less —— 一大堆less文件
三、通过修改bootstrap的less源文件实现样式定制
删除不需要的样式,如轮播广告/模态框
在bootstrat.less文件中,注释掉不需要的@import即可
定制需要的组件的默认样式,如修改导航条的默认背景颜色
修改variables.less文件中的变量即可
在bootstrap提供的默认样式基础上创建新样式,如定制dropdown中的divider的样式-组件的深度定制
修改某个组件所对应的less文件