Bootstrap源码之旅-mixins解读(1)
来源:互联网 发布:javascript模块规范 编辑:程序博客网 时间:2024/06/04 01:04
真的很纠结,怎么去介绍Bootstrap中的mixins呢?在不熟悉Bootstrap之前去说mixins没有必要,为啥呢?其中有好多mixins是跟它特定的dom结构有关系的,比如下面的alerts.less
// Alerts.alert-variant(@background; @border; @text-color) { background-color: @background; border-color: @border; color: @text-color; hr { border-top-color: darken(@border, 5%); } .alert-link { color: darken(@text-color, 10%); }}
这是很简单的dom结构的css。
算了,都源码之旅了,谁还能不会Bootstrap吗?没事瞎操心!那就按照顺序来介绍吧。。
alerts.less
代码粘出来,800字作文马上达标:-)
// Alerts.alert-variant(@background; @border; @text-color) { background-color: @background; border-color: @border; color: @text-color; hr { border-top-color: darken(@border, 5%); } .alert-link { color: darken(@text-color, 10%); }}
.alert-variant这名字起的,一看就知道跟alert有关,variant则预示着它是用来创建不同风格的alert的,所以是变体(variant)。
设置了背景色,边框色和字体色。对其中出现的hr的上边框颜色也规定了,比真题的边框色暗淡5%。其中出现的.alert-link的颜色要比整体的字体颜色暗淡10%。
background-variant.less
// Contextual backgrounds.bg-variant(@color) { background-color: @color; a&:hover, a&:focus { background-color: darken(@color, 10%); }}
背景的变体。快速定义背景颜色。同时兼顾其中的链接(a)的hover和focus的效果,背景色比整体背景色暗淡10%。
border-radius.less
// Single side border-radius.border-top-radius(@radius) { border-top-right-radius: @radius; border-top-left-radius: @radius;}.border-right-radius(@radius) { border-bottom-right-radius: @radius; border-top-right-radius: @radius;}.border-bottom-radius(@radius) { border-bottom-right-radius: @radius; border-bottom-left-radius: @radius;}.border-left-radius(@radius) { border-bottom-left-radius: @radius; border-top-left-radius: @radius;}
快速设置某个方向的圆角的mixin,上下左右四个方向!
简单的mixins就多说俩
buttons.less
// Button variants//// Easily pump out default styles, as well as :hover, :focus, :active,// and disabled options for all buttons.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 { color: @color; background-color: darken(@background, 10%); border-color: darken(@border, 12%); } &:active, &.active, .open > .dropdown-toggle& { color: @color; background-color: darken(@background, 10%); border-color: darken(@border, 12%); &:hover, &:focus, &.focus { color: @color; background-color: darken(@background, 17%); border-color: darken(@border, 25%); } } &:active, &.active, .open > .dropdown-toggle& { background-image: none; } &.disabled, &[disabled], fieldset[disabled] & { &:hover, &:focus, &.focus { background-color: @background; border-color: @border; } } .badge { color: @background; background-color: @color; }}// Button sizes.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { padding: @padding-vertical @padding-horizontal; font-size: @font-size; line-height: @line-height; border-radius: @border-radius;}
刚说简单,就来了个复杂点的。创建button样式用的。有俩mixin,一个是.button-variant,一个是.button-size。前者定义按钮的外观,包括字体颜色,背景颜色和边框颜色。想想按钮也就这么多能定义的属性了吧。后者是定义按钮大小的,调整其中 字体的大小行高,圆角的半径和padding。
复杂的当属.button-variant,代码那么多!!它还考虑了:
- focus状态下的样式
- hover状态下的样式
- active状态下的样式
- disalbed状态下的样式
- 跟dropdown结合使用时的样式
- 其中包含badge时,badge的样式
能考虑那么全面真实牛呀!!!
center-block.less
// Center-align a block level element.center-block() { display: block; margin-left: auto; margin-right: auto;}
块居中。跟我们平时总喜欢写的:
#content{ margin:0 auto;}
很类似了!
clearfix.less
// Clearfix//// For modern browsers// 1. The space content is one way to avoid an Opera bug when the// contenteditable attribute is included anywhere else in the document.// Otherwise it causes space to appear at the top and bottom of elements// that are clearfixed.// 2. The use of `table` rather than `block` is only necessary if using// `:before` to contain the top-margins of child elements.//// Source: http://nicolasgallagher.com/micro-clearfix-hack/.clearfix() { &:before, &:after { content: " "; // 1 display: table; // 2 } &:after { clear: both; }}
清浮动。其中还提供了链接http://nicolasgallagher.com/micro-clearfix-hack/。真好!!
就到这里吧,都是粘贴代码,嘿嘿
- Bootstrap源码之旅-mixins解读(1)
- Bootstrap源码之旅-mixins解读(2)
- Bootstrap源码之旅-mixins解读(3)
- Bootstrap-Sass 源码解析三:Mixins
- Bootstrap源码解读之栅格化篇
- Bootstrap源码解读1 下拉菜单
- bootstrap-table源码解读
- Bootstrap-sass<3> mixins
- Bootstrap源码之旅-开始
- Bootstrap源码之旅-variables
- 源码解读之Intent解读
- extjs bootstrap源码解读(转)
- Bootstrap源码解读(第一弹:排版)
- Bootstrap源码解读(第二弹:表单)
- Bootstrap源码解读(第五弹:按钮)
- Bootstrap源码解读(第六弹:导航)
- Bootstrap源码解读(第九弹:进度条)
- Reactjs 之 mixins
- 计算一个整型数组的元素之和
- linux中快速清空文件内容的几种方法
- 从零开始学_JavaScript_系列(40)——对象的扩展(3)当枚举、原型链遇见对属性的操作
- 12步搞定python装饰器
- VS2013官方中文专业版(Visual Studio Professional 2013)破解
- Bootstrap源码之旅-mixins解读(1)
- gSOAP+onvif初探(一):生成onvif代码框架
- VS生成的mvc模板的目录文件作用
- Maximum Depth of Binary Tree
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- 利用MultipartFile实现文件上传
- 【Servlet】生成指定长度随机验证码简化版
- Android数据库(SQLite)框架(3)——使用LitePal建立表关联
- bzoj 1823: [JSOI2010]满汉全席