- 浏览: 44855 次
- 性别:
- 来自: 深圳
最新评论
本篇约定Bootstrap简写为BT
BT的受欢迎程度是大家有目共睹的,用它可以快速的搭建出网站。很早就接触过这个框架,其中的栅格系统,css模块化以及js插件做的相当不错,由于工作中较少使用也一直没有好好梳理下,这篇文章就来好好分析一下这个系统。
BT虽然很好,但也不是没有缺点,由于框架很多都是模块化的,只能这么用,当您的网站比较多样化,界面复杂的话就不太适合使用,此时您需要大量重写代码,维护比较麻烦,此外这个系统的CSS内容也比较多,很多内容是根本用不到的,对于带宽不是很理想的情况下就会造成浪费,当然BT的css模块化还是相当不错的。下面总结几点本人觉得非常不错的点。
栅格系统(结构)
BT的优势之一就是可以根据用户屏幕尺寸调整页面,使其在各个尺寸上都表现良好。实现这个功能依赖两个东西,一个是view,另一个是max-width,min-width。
BT栅格系统的本质就是通过CSS3的媒体查询实现的,如果您熟练使用max-width等媒体查询属性的话就可以抛开BT,定制属于自己的响应式网站。BT将屏幕尺寸分为四类,超小屏幕<768px,小屏幕 平板>=768px,中等屏幕 桌面显示器>=992px以及大屏幕 大桌面显示器>=1200px。每一列又被平均分成了12格,每一个8.33333333%,12格就无限接近于100%。
这里要特别提一下的就是BT的盒模型,BT强制把所有元素的盒模型都设置成了border-box,这是IE首创的,用于混杂模式下显示网页,但W3C认为这个属性是个逗逼一直没采用,但最后发现自己才是逗逼,因此在CSS3中新增了这个属性。border-box盒模型的尺寸包含了padding+border+content ,content-box盒模型的尺寸仅仅包含content部分,设置padding,border还的重新计算包含块尺寸,使用上要比border-box麻烦的多。
类前缀使用是掌握栅格系统最重要的部分,类前缀分四个超小屏幕.col-xs-*,小屏幕 平板.col-sm-*,中等屏幕 桌面显示器>.col-md-*以及大屏幕 大桌面显示器.col-lg-*,以下代码即可实现不同屏幕呈现不同的显示方式:
1
2
3
4
<div class="row">
<div class="col-xs-12 col-md-6"></div>
<div class="col-xs-12 col-md-6"></div>
</div>
这段代码的意思是,在超小屏幕下分两行显示,桌面显示器则并行显示。更详细的应用大家可以参考BT的官方文档,这里就不再赘述。
CSS模块化(表现)
BT预先定义了很多CSS类,使用的时候直接给class赋予对应的类名即可,如text-left,text-align,.table等。最有代表性的就是btn类,BT定义了一个.bt的基础类,如果还想要其他样式可以在这个基础类上进行扩展,实现不同的视觉效果。
.btn类之所以典型在于他的样式定义,CSS大牛和菜鸟的区别表现在三个方面,文件大小,后期维护以及hack,大牛的CSS文件都比较小(具体多少为小要看项目的大小);后期维护容易,能快速定位,修改一个样式需要动的地方比较少;hack使用也少。相反菜牛则会出一个庞大的文件,后期维护一团乱麻,改一个样式需要改很多地方,hack,内联,important满天飞。
CSS很多值都是有相互依赖关系的,比如em,我们都知道em是相对单位,浏览器渲染的时候是必须明确到具体值的,因此必须进行计算。正因为这些相对单位我们才可以实现模块化,.btn类就是利用相对单位和字体大小之间的关系实现的,将按钮的line-height,padding,border-radius设置为相对单位,字体大小设置为绝对单位,需要大按钮的时候增加字体,需要小按钮的时候减小字体,案例代码如下:
1
.btn{ display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: 400; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle;}
这里的line-height会根据font-size计算出相应的值,修改font-size按钮就会相应的变大变小,一个小小的改动就实现了视觉上的变化是不是很方便
BT的CSS系统令人称道的地方还有很多,想CSS更进一步的话可以研究下他的思路,您也可以单独提取出来放到自己样式库中,以后做项目的时候可以快速使用。
JavaScript插件(交互)
BT的JavaScript插件非常丰富,既可以用现成的也可以自己扩充,BT提供了一个集成板的BT.js您可以直接拿过来使用也可以单个使用引入*.js即可。
JS插件优秀的地方在于,哪怕是不懂JS的开发人员也可以使用,只要按照官方文档提供的格式写即可,比如模态框,您只要按要求设置好class,data-toggle,data-target即可,一句JS都不用写,是不是很方便。
BT的插件开发模式基本都是相似的,先定义一个类,实现主体功能,然后是个Plugin函数,再把这个函数扩展到JQuery原型上,最后通过委托的方式给特定元素绑定事件。
不足:
对IE兼容也存在不小的问题,BT将所有的元素盒模型都设置成了border-box,这是IE混杂模式下的盒模型,光这点就导致了不能兼容IE。此外还用到了大量的H5标签以及CSS3语法,这些语法标签兼容性方面同样存在不小的问题,当然网上存在很多兼容IE的办法,但需要引入其他文件,有些还不小,势必导致加载速度变慢,影响用户体验。
BT对IE6,7的兼容性肯定不好,对IE8的支持也需要一些额外的文件。
IE8的媒体查询需要response.js的配合才能实现
BT 不支持 IE 古老的兼容模式。为了让 IE 浏览器运行最新的渲染模式下,建议将此 <meta> 标签加入到你的页面中:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
按 F12 键打开 IE 的调试工具,就可以看到 IE 当前的渲染模式是什么。
最后:
BT官方文档列出了一个编码规范,值得各个开发团队参考,下面罗列一下比较重要的:
HTML
语法:
用两个控制代替制表符(tab)--这是唯一能保证在所有环境下保持一致的的展现方法
嵌套元素应当缩进一次(两个空格)
CSS
声明顺序:
相关属性声明应该归为一组,并按照下面的顺序书写:
1、定位 Positioning
2、盒模型 Box Model
3、格式排版 Typographic
4、视觉 Visual
5、杂项 Misc
由于定位可以从正常的文档流中移除元素,并且还能覆盖盒模型相关的样式,因此排在首位。盒模型排在第二,因为它决定了组件的尺寸和位置。
其他属性只是影响组件的内部或者是不影响前两组属性,因此排在后面
完整规范网址:http://codeguide.bootcss.com/#html-syntax
总结:
BT属于前端UI库,可以快速搭建前端页面,还可以使用saas重新设计组件,,比较适合前端一般的后端工程师,大中型企业用的不多。BT源码对于前端学习非常有必要。
发表评论
-
vue声明周期
2019-02-25 21:51 0vue -
Vue生命周期 VS React生命周期
2019-01-29 11:12 0Vue生命周: beforeCreate: c ... -
vue双向绑定原理解析
2018-12-23 10:59 0通过简单的实例解析vue双向绑定的原理。 let vm= ... -
常见轮播图
2018-09-26 17:16 658端开发中基本上每个项目都会用到轮播图,今天我们就对常见轮播 ... -
前后端连载启动
2018-09-13 16:46 0安装:npm i concurrently -D 配 ... -
微信小程序-介绍
2018-08-26 19:25 01,什么是微信小程序? 2,微信小程序用途? 3,微信 ... -
vue-vuex
2018-08-15 12:02 0vuex是什么? 官方解释: vuex是一个专为vue. ... -
3大前端主流框架对比
2018-07-21 22:07 0vue vs react vs angular angul ... -
webpack配置文件
2018-03-14 17:36 0webpack配置文件 由于在实际项目中的需求要复杂的多 ... -
源映射(Source Map)详解
2017-08-24 15:52 1596http://www.cnblogs.com/xuld/p/5 ... -
gulp
2017-08-10 17:33 52http://web.jobbole.com/86025/ -
react
2017-02-02 15:52 54react是什么? 颠覆式前端ui开发框架。 react特点? ... -
简单功能强大的jQuery图片剪裁插件Image Cropper
2016-10-29 15:55 75相信很多朋友都在大型的网站,如新浪微博、QQ微博上看到过头像裁 ... -
grunt学习
2016-10-14 14:57 47jshint: js代码校验工具 常用参数详解: bitwis ... -
experss安装说明
2016-06-27 23:11 501、安装express及相关组建-----cmd下运行:npm ... -
NodeJS、NPM安装
2016-06-13 12:03 64NodeJS、NPM安装配置步骤( ...
相关推荐
作者的这份学习笔记还提到了如何利用CDN服务来加载Bootstrap资源,以及如何通过官方文档来深入学习Bootstrap的高级特性和最佳实践。通过这份笔记,开发者可以快速掌握Bootstrap框架的核心概念,以及如何将其运用到...
这个“bootstrap学习笔记-html5”压缩包文件显然包含了有关如何使用Bootstrap和HTML5进行网页设计的资料,非常适合初学者入门。接下来,我们将深入探讨这两个重要主题。 HTML5(超文本标记语言第五版)是网页开发的...
资源简介《HTML,CSS,Bootstrap学习笔记》是一个综合性的学习资源包,旨在帮助初学者和进阶开发者全面掌握前端开发的基础知识和技能。本资源包涵盖了HTML、CSS和Bootstrap这三个前端开发的核心领域,通过详细的笔记...
这个“李炎恢Bootstrap讲义笔记”很可能包含了李炎恢老师关于Bootstrap的深入讲解和实践指导,帮助学习者掌握这一强大的工具。 Bootstrap的核心特性包括一套丰富的预定义的CSS样式、JavaScript组件和字体图标,这些...
Bootstrap 笔记 学习 教程 学习总结 有的class类等是官网上还没介绍的
前端Bootstrap+Es6+vue学习笔记 Bootstrap 框架是一种基于 HTML/CSS/JS 的开源框架,由 Twitter 公司的两名技术工程师研发。其主要特点包括: 1. 跨设备跨浏览器:Bootstrap 支持多种设备和浏览器,可以在不同的...
在"Bootstrap的用法学习笔记"中,我们将深入探讨如何有效地利用这个框架。 一、Bootstrap的基本结构 Bootstrap的核心构建块包括网格系统、排版、导航、表单、按钮、图像和其他UI元素。首先,引入Bootstrap库到HTML...
bootstrap4学习笔记,中文的,适用于初学者学习,知识点配合案例的。
总的来说,Bootstrap是一个强大且实用的工具,尤其适合快速原型设计和开发,但也需要根据具体项目需求权衡其优点和缺点。在使用时,开发者应充分利用其优势,同时注意解决可能出现的问题,以确保项目的高效和优质。
通过以上分析可以看出,“李炎恢Bootstrap讲义笔记解压.zip”这一文件应该是一份针对Bootstrap框架的学习资料。对于初学者而言,这份资料可能会从基础知识入手,逐步介绍如何使用Bootstrap构建响应式网站,并可能会...
李炎恢bootstrap 讲义笔记代码全套,李炎恢 bootstrap 讲义 代码
Bootstrap是世界上最受欢迎的前端开发框架,它为开发者提供了丰富的组件、样式和JavaScript插件,用于快速构建响应式和移动优先的网站。以下是对Bootstrap常用25个知识点的详细阐述: 1. **栅格系统**:Bootstrap的...
Bootstrap 笔记总结 Bootstrap 是一个流行的前端框架,用于快速构建响应式的 web 应用程序。下面是 Bootstrap 相关的知识点总结: Base CSS * Bootstrap 提供了一个基本的 CSS 框架,使得开发者可以快速构建响应...
这些示例将贯穿于整个教程,帮助学习者从基础到进阶逐步掌握Bootstrap的应用。 关于版权和免责声明,教程内容和图像的版权归***所有,未经允许,不得以任何形式重新分发或复制。教程可能会包含不准确的信息或错误,...