bootstrap作为mixin库的应用模式

  Bootstrap作为一个非常流行的前端css框架,得到了非常多的应用。一般的使用方法都是直接download bootstrap.css,作为css文件引入到html的markup中,随后直接引用其定义的class,这样的使用模式有个问题:考虑下面的场景,你需要设计一个login form,在该表单中有一个button,通常情况下,你在html markup中使用.btn,.btn-primary预置的class。虽然没有什么大的问题,但是html本身不具有表意性。如果我们既要使用到bootstrap定义的那些类,又能在html中不要以.btn,.btn-primary来定义button的style,有什么办法呢?本文就提供一个思路,既满足这个需求,又能顺便减少生产的css文件尺寸。

1.下载bootstrap,解压后直接将less目录中的内容提出来,其他的全部删除,假设目录仍然取名为bootstrap(注意其他的非bootstrap代码部分都已经删除)

bootstrap/
├── alerts.less
├── badges.less
├── bootstrap.less
├── breadcrumbs.less
├── button-groups.less
├── buttons.less
├── carousel.less
└── ...               

2.将上述bootstrap source放到自己的项目中

my-project/
└── assets/
    └── less
    ├── bootstrap
    └── style.less

3.由于我们打算将bootstrap作为mixin库,并不打算将所有内容输出到生产css文件中,所以可以随意修改bootstrap源文件。另外使用import as reference来importbootstrap,其预定义的所有class都作为mixin可以被自己的项目所引用,但是又不会输出到最终生产文件中。

4.在style.less中引入bootstrap.less

@import "bootstrap/bootstrap.less"

5.这样做的好处是我们可以在html markup中,去除所有bootstrp的class,替而代之的是有语义的html class!

比如:通常直接引用bootstrap.css的情况下的markup为:

<div class="well well-lg">
    <p>If you‘d like to get more information, join our mailing     list</p>
    <a href="/sign-up" class="btn btn-success">Sign up now!</a> </div> 

而使用本文的方法后的应用模式变为:

// style.less
.sign-up { .well; .well-lg; a { .btn; .btn-success; } } 

<div class="sign-up">
<p>If you‘d like to get more information, join our mailing list</p> <a href="/sign-up">Sign up now!</a>
</div>

  

时间: 2024-08-03 19:12:18

bootstrap作为mixin库的应用模式的相关文章

bootstrap框架 - jquery库 - 引用地址

 bootstrap框架: //netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css  jquery库: http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js   bootstrap.min.js:http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js

bootstrap的popover插件在focus模式时在Safari浏览器无法使用的bug解决方案

前言 最近在使用bootstrap的popover插件,效果如下: popover插件的focus模式时表现为当点击按钮时弹出浮动层,在点击浮动层外的任何一处,都隐藏浮动层. 但是在mac下的Safari浏览器中无法弹出浮动层,bug导致原因未知,官方demo也是如此. 解决方案 最后反复试验,发现一种解决方案,非常简单,即在给按钮绑定鼠标事件,然后手动触发dom的focus事件,也就连带触发了popover插件的显示事件. var $btn=$(".btn"); $btn.mouse

批量修改所有库的恢复模式和DB所有者

/* 修改所有用户数据库的恢复模式为简单模式*/EXEC sp_msforeachdb 'DECLARE @dbname VARCHAR(30)SET @dbname=''?''DECLARE @exsql VARCHAR(500)IF(@dbname not in ( SELECT name FROM sys.databases WHERE database_id<=4 -- 非系统表 or recovery_model_desc=''SIMPLE'' -- 非简单恢复模式 or name='

使用Crypto++库的CBC模式实现加密(二)

前面已经有一篇介绍使用Crypto++库实现的加密的文章了,但是代码中考虑的不完全,所以就重新发了个二 C++封装: #include "zyaes.h" #include <string.h> #include <stdio.h> using namespace CryptoPP; CZYAes::CZYAes() { byte byteKey[] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x01,0x02, 0

使用Crypto++库的CBC模式实现加密

1 //***************************************************************************** 2 //@File Name : scsaes.h: the interface of crypto++ library 3 //@Version : V1.0.0 4 //@Author : xiaoc 5 //@Date : 2014/11/11 6 //**************************************

表单input项使用label,同时引用Bootstrap库,导致input点击效果区增大

产品姐姐想法多,点击input项才能聚焦进行操作,点击外部不能有反应 好了...直入正题 为了让标签更加语义化,在表单项中,我们往往会使用label进行包裹 <label for="label-input"> <input type="text" class="" id="label-input"><br> <button>button</button> </l

bootstrap 全局 CSS 样式

http://v3.bootcss.com/css/#less-mixins-utility 深入了解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好.更快.更强壮的最佳实践. HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属性需要将页面设置为 HTML5 文档类型.在你项目中的每个页面都要参照下面的格式进行设置. 复制 <!DOCTYPE html> <html lang="zh-CN"> ...

Bootstrap学习(一):Bootstrap简介

一.Bootstrap简介 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 详细的来说,Bootstrap是一个简单.灵活的,可用于搭建简洁漂亮WEB页面的HTML,CSS,JAVASCRIPT的工具集.BootStrap基于HTML5 和 CSS3,具有漂亮的设计,友好的学习曲线,卓越的兼容性,还有12列的响应式栅格结构,丰富的组件等等.简单的说,Bootstr

GitHub Top 100的Android开源库

本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best Match」得到的结果,然后过滤了跟Android不相关的项目,所以排名并不具备任何官方效力,仅供参考学习,方便初学者快速了解当前一些流行的Android开源库. 1. React Native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native,