`
zzc1684
  • 浏览: 1227989 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Bootstrap源码中的LESS变量详解

阅读更多

 

 

Bootstrap的核心是用less来编写的,bootstrap对less进行了二次封装,提供了很多基础的less变量和函数,个人觉得非常有用,下面就来具体看下bootstrap为我们提供了哪些常用的变量和函数吧。
 

 


Bootstrap变量

 


基础设置

@bodyBackground @white 页面背景色  
@textColor @grayDark 默认的文字颜色  
@linkColor #08c 默认的链接颜色  
@linkColorHover darken(@linkColor, 15%) 默认链接hover样式  


页面栅格

@gridColumns 12
@gridColumnWidth 60px
@gridGutterWidth 20px
@fluidGridColumnWidth 6.382978723%
@fluidGridGutterWidth 2.127659574%


字体

@sansFontFamily “Helvetica Neue”, Helvetica, Arial, sans-serif
@serifFontFamily Georgia, "Times New Roman", Times, serif
@monoFontFamily Menlo, Monaco, “Courier New”, monospace
@baseFontSize 13px 以像素为单位
@baseFontFamily @sansFontFamily
@baseLineHeight 18px 以像素为单位
@altFontFamily @serifFontFamily
@headingsFontFamily inherit
@headingsFontWeight bold
@headingsColor inherit


表格tables

@tableBackground transparent
@tableBackgroundAccent #f9f9f9
@tableBackgroundHover #f5f5f5
@tableBorder ddd

 


冷色调

@black #000  
@grayDarker #222  
@grayDark #333  
@gray #555  
@grayLight #999  
@grayLighter #eee  
@white #fff  


暖色调

@blue #049cdb  
@green #46a546  
@red #9d261d  
@yellow #ffc40d  
@orange #f89406  
@pink #c3325f  
@purple #7a43b6  

 


组件

 

按钮buttons

@btnBackground @white  
@btnBackgroundHighlight darken(@white, 10%)  
@btnBorder darken(@white, 20%)  
@btnPrimaryBackground @linkColor  
@btnPrimaryBackgroundHighlight spin(@btnPrimaryBackground, 15%)  
@btnInfoBackground #5bc0de  
@btnInfoBackgroundHighlight #2f96b4  
@btnSuccessBackground #62c462  
@btnSuccessBackgroundHighlight 51a351  
@btnWarningBackground lighten(@orange, 15%)  
@btnWarningBackgroundHighlight @orange  
@btnDangerBackground #ee5f5b  
@btnDangerBackgroundHighlight #bd362f  
@btnInverseBackground @gray  
@btnInverseBackgroundHighlight @grayDarker  

表单Forms

@placeholderText @grayLight
@inputBackground @white
@inputBorder #ccc
@inputBorderRadius 3px
@inputDisabledBackground @grayLighter
@formActionsBackground #f5f5f5

表单Form提示背景及文字颜色

@warningText #c09853  
@warningBackground #f3edd2  
@errorText #b94a48  
@errorBackground #f2dede  
@successText #468847  
@successBackground #dff0d8  
@infoText #3a87ad  
@infoBackground #d9edf7  

 

导航栏

@navbarHeight 40px  
@navbarBackground @grayDarker  
@navbarBackgroundHighlight @grayDark  
@navbarText @grayLight  
@navbarLinkColor @grayLight  
@navbarLinkColorHover @white  
@navbarLinkColorActive @navbarLinkColorHover  
@navbarLinkBackgroundHover transparent  
@navbarLinkBackgroundActive @navbarBackground  
@navbarSearchBackground lighten(@navbarBackground, 25%)  
@navbarSearchBackgroundFocus @white  
@navbarSearchBorder darken(@navbarSearchBackground, 30%)  
@navbarSearchPlaceholderColor #ccc  
@navbarBrandColor @navbarLinkColor  

下拉Dropdowns

@dropdownBackground @white
@dropdownBorder rgba(0,0,0,.2)
@dropdownLinkColor @grayDark
@dropdownLinkColorHover @white
@dropdownLinkBackgroundHover @linkColor

Hero unit

@heroUnitBackground @grayLighter  
@heroUnitHeadingColor inherit  
@heroUnitLeadColor inhereit  

 


Bootstrap混合

 


关于混合

 

基础的混合

 

混合就是将一段需要进行合并的样式通过less的一种申明方式写到一起,它可以方便的被其他样式调用,从而达到能够重用的目的。

 

.element {
.clearfix();
}

 

带参数的混合
这种混合和基础混合比较类似,它增加接受参数的功能,当然如果你不传任何参数,它会提供一个默认值

 

.element {
.border-radius(4px);
}

 

易于扩展

 

所有的混合都是存储在mixins.less中的,如果各位有什么需要增加的混合可以直接集成到utilities.less中,方便调用。

 

bootstrap包含的混合

 

常用混合

 

 

混合 参数 用途
.clearfix() none 清除浮动
.tab-focus() none 自动聚焦
.center-block() none 居中,相当于margin: auto
.ie7-inline-block() none 让IE6,7支持display: inline-block
.size() @height @width 设置容器宽高
.square() @size 设置该容器为正方形,参数为边长
.opacity() @opacity 设置容器透明度

 

表单forms

 

 

混合 参数 用途
.placeholder() @color: @placeholderText 设置输入框的默认文案

 

字体

 

 

混合 参数 用途
#font > #family > .serif() none 设置这个元素的字体为有衬线字体
#font > #family > .sans-serif() none 设置这个元素的字体为无衬线字体
#font > #family > .monospace() none 设置这个元素的字体为等宽字体
#font > .shorthand() @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight 简单的设置字体的大小粗细等等
#font > .serif() @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight 设置该字体为有衬线字体,并设置字体的大小粗细等等
#font > .sans-serif() @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight 设置该字体为无衬线字体,并设置字体的大小粗细等等
#font > .monospace() @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight 设置该字体为等宽字体,并设置字体的大小粗细等等

 

栅格系统

 

相关的less代码在mixins.less中

 

 

混合 参数 用途
.container-fixed() none 指定该容器为居中
#grid > .core() @gridColumnWidth, @gridGutterWidth 初始化栅格系统,参数传递分别为栅格的列宽和栅格之间的距离
#grid > .fluid() @fluidGridColumnWidth, @fluidGridGutterWidth 初始化栅格系统,参数传递分别为每个栅格的所占栅格总宽度的百分比和栅格之间的距离所占栅格总宽度的百分比
#grid > .input() @gridColumnWidth, @gridGutterWidth 生成input相关元素的栅格布局,参数传递分别为栅格的列宽和栅格之间的距离
.makeColumn @columns: 1, @offset: 0 在栅格系统中初始化一个占几列的div容器,columns为该容器跨域的列数,offset为改容器的左偏移

 

css3属性

 

 

混合 参数 用途
.border-radius() @radius css3圆角,参数为圆角像素
.box-shadow() @shadow css3阴影
.transition() @transition css3动画,(如, all .2s linear)
.rotate() @degrees 旋转一个元素,参数为旋转的度数
.scale() @ratio 缩放元素,参数为缩放后和元尺寸的比列
.translate() @x, @y 在平面上移动元素,参数对应分别为相对于x轴和y轴的移动距离
.background-clip() @clip 背景裁剪,传入clip,clip选择border | padding | content
.background-size() @size 通过css3来控制背景图片的尺寸
.box-sizing() @boxmodel 改变容器的盒模型,例如我们可以改变类似input button的盒模型为传统的IE模型,即设置第一个参数为border-box就可以达到所有浏览器兼容的目的
.user-select() @select 用来控制内容的可选择性
.backface-visibility() @visibility: visible css3D动画效果是否隐藏内容的背面,
.resizable() @direction: both 让元素可以进行向右和向下的拉伸缩放
.content-columns() @columnCount, @columnGap: @gridGutterWidth 让容器具有css3的属性content-count和column-gap,第一个参数为列数,第二个参数为列数之间的间距

 

背景和渐变

 

 

混合 参数 用途
#translucent > .background() @color: @white, @alpha: 1 给元素半透明的背景色,第一个参数为背景色,第二个参数为透明度
#translucent > .border() @color: @white, @alpha: 1 给元素半透明的边框色,第一个参数为边框颜色,第二个参数为透明度
#gradient > .vertical() @startColor, @endColor 让一个容器从自上而下颜色渐变,兼容任何浏览器,第一个参数是开始的颜色,第二个参数是结束的颜色
#gradient > .horizontal() @startColor, @endColor 让一个容器从自左而右颜色渐变,兼容任何浏览器,第一个参数是开始的颜色,第二个参数是结束的颜色
#gradient > .directional() @startColor, @endColor, @deg 让一个容器按照一个角度进行渐变,第一个参数是开始的演示,第二个参数是结束的颜色,第三个参数是进行渐变的角度
#gradient > .vertical-three-colors() @startColor, @midColor, @colorStop, @endColor 让一个容器按照开始颜色和中间颜色以及结束颜色进行渐变,第一个参数是开始的颜色,第二个参数是中间的颜色,第三个参数是中间渐变结束的位置,最后一个参数是渐变结束的颜色
#gradient > .radial() @innerColor, @outerColor 让一个容器放射性渐变,第一个参数是容器中心的颜色,第二个参数是容器最外层的颜色
#gradient > .striped() @color, @angle 条纹渐变,第一个参数为渐变的颜色,第二个参数为渐变的角度
#gradientBar() @primaryColor, @secondaryColor 主要用于按钮和提示框的垂直颜色渐变

 


关于less的编译

 

如果你从githib上下载了源码并对bootstrap进行了修改,你必须针对bootstrap进行编译。关于less的编译我有话要说,现在针对less的编译已经有很多工具了,http://less.cnodejs.net/tools 大家可以访问中文官网对这些工具逐一认识,个人推荐simpleless,非常方便。

 

分享到:
评论

相关推荐

    Twitter Bootstrap Web Development

    ### Twitter Bootstrap Web 开发知识点详解 #### 一、Twitter Bootstrap 概述 **Twitter Bootstrap** 是一个用于快速开发网页应用程序的前端框架。它提供了一系列基于 HTML、CSS 和 JavaScript 的设计模板,用于...

    4221简洁宽屏扁平化设计bootstrap模板下载5469_企业网站模板PHP整站源码.zip.7z

    3. 容易定制:Bootstrap的LESS预处理器使得定制主题变得简单,只需修改几个变量即可实现整体风格的改变。 二、扁平化设计概念 扁平化设计是一种设计理念,强调去除冗余的装饰元素,使设计更加简洁明了。扁平化设计...

    H334_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.zip

    6. **预处理器**:如Sass和Less,是CSS的扩展,引入变量、嵌套规则、函数等功能,提高了CSS的组织性和可维护性。 7. **优化与性能**:前端开发中需要考虑加载速度和资源优化,包括代码压缩、合并、图片压缩、懒加载...

    Blog-main-源码.rar

    - CSS预处理器(如Sass/Less):提高CSS的可维护性和可扩展性,通过变量、嵌套规则和函数实现更复杂的样式逻辑。 - JavaScript库和框架:例如jQuery用于DOM操作,Vue或React用于组件化开发,提供数据绑定和状态...

    BootStrop前端框架入门教程详解

    2. **Bootstrap源码**:包含Less、JavaScript和字体文件的源码,适合进行自定义修改和扩展,需要Less编译器。 3. **Sass移植版**:适合Rails、Compass或只使用Sass的项目,提供了从Less到Sass的源码转换。 此外,...

    Website:个人网站(正在建设中)

    除此之外,CSS预处理器如Sass和Less,以及CSS框架如Bootstrap和Foundation,也是提升效率和代码可维护性的工具。它们提供变量、嵌套规则、混合函数等功能,让CSS编写更加简洁和模块化。 在建设个人网站时,我们还...

    MVakharia-BCM.github.io

    5. **CSS预处理器**:预处理器如Sass和Less允许开发者使用变量、嵌套规则和混合功能等高级特性编写CSS,提高代码的可维护性和效率。 6. **动画与过渡**:`transition`和`animation`属性可以为元素添加动态效果,如...

    ekolmagorov.github.io:我的博客网站

    - 预处理器如Sass和Less提供变量、嵌套规则、混合函数等特性,使CSS编写更加简洁和模块化。 - 使用预处理器,可以创建可维护的样式代码库,便于团队协作和项目扩展。 5. **CSS动画与过渡** - `transition`属性...

    nonsoandre.github.io

    5. **CSS预处理器**:如Sass、Less和Stylus,它们扩展了CSS的功能,支持变量、嵌套规则、混合(mixins)等功能,简化CSS编写并提高可维护性。 6. **动画与过渡**:CSS3引入了关键帧动画(`@keyframes`)和过渡(`...

    巴斯夫前端

    【标题】:“巴斯夫前端”项目详解 【描述】:“巴斯夫前端”是一个基于Java技术栈的前端项目,旨在为巴斯夫公司提供高效、稳定、用户友好的Web应用界面。这个项目涵盖了前端开发的多个重要方面,包括但不限于前端...

Global site tag (gtag.js) - Google Analytics