Bootstrap
按钮篇)如我上一篇less学习之Bootstrap里面,介绍了Bootstrap的目录结构,说明了在variables.less
这个文件里面,定义了主题色,也包括了按钮的主题色。接下来看一看 buttons.less
与 mixins/buttons.less
.css
buttons.less
与 mixins/buttons.less
内容不是不少,总结下来就是:web
一、“.btn
”的基础样式定义。segmentfault
二、按钮的各类状态含义的样式定义,例如:btn-primary、btn-success等。浏览器
三、伪链接,按钮的样式显示为链接的样式。框架
四、按钮尺寸的class:lg、sm、xs。less
五、input类型的按钮定义。函数
.btn { display: inline-block; ... ... &, &:active, &.active { &:focus, &.focus { .tab-focus(); } } ... ...// 余下的为hover、disabled时的样式 }
知识点1:`&`在less与scss的语法中,表示同父级,就上一个例子来讲,就是编译以后`&`将会被`.btn`替换,若是是多层时也是相同的道理。 提示1:运用了函数tab-focus。此函数定义在mixins/tab-focus.less中,代码很短 .tab-focus() { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } 修改浏览器默认的大纲样式:表如今按钮、form表单等原生组件上。 提示2: 运用了函数user-select。此函数定义在mixins/vendor-prefixes中。 .user-select(@select) { -webkit-user-select: @select; -moz-user-select: @select; -ms-user-select: @select; // IE10+ user-select: @select; } 做用,让文本是否可以选择。 提示3: 运用了函数opacity。此函数定义在mixins/opacity中。 .opacity(@opacity) { opacity: @opacity; @opacity-ie: (@opacity * 100); filter: ~"alpha(opacity=@{opacity-ie})"; } 此处作了IE的兼容IE,IE的透明度采用 filtger:alpha(opacity=value),其中 0 <= value && value <= 100. 符号“~”,能够意为JavaScript里面的 evel ,能够将字符串转化为表达式。因此说一些复杂的选择器也可以做为变量定义。
button-variant
Bootstrap里面抽象出来的函数,做用于按钮不一样状态下的颜色变化。例如:hover、focus、active等状态。
函数说明学习
参数:@color; @background; @border // 分别时字体颜色、背景颜色、边框颜色
结构以下:字体
.button-variant(@color; @background; @border) { color: @color; background-color: @background; border-color: @border; &:focus, &.focus { color: @color; background-color: darken(@background, 10%); border-color: darken(@border, 25%); } ... ...// 余下的为hover、disabled时的样式 .badge { color: @background; background-color: @color; } }
由上面两个文件能够总结出的结论是:.less里面写的是选择器定义、变量定义,而mixins/.less里面写的是函数。code
关于Bootstrap听到过很多的见闻,有好有坏,我有身边也有人说这个框架很垃圾。可是对于Bootstrap这个框架怎么样,我不作评价,可是Bootstrap用来做为学习的资料时很是合适的,Less的语法糖都了知道,那么如何才能让Less用起来驾轻就熟?无疑,源码是一种途径。
接下来的安排,本身写的文章本身也会去实现它,另外关于Less的学习也不会中止。