《半吊子全栈系列:Boostrap3》
前言:后端开发做网站
几年前,作为一名纯粹后端Java开发人员,对JS还没开窍,对于页面只停留在《十天学会DIV+CSS》这种程度,但是我又想做网站怎么办?
这时候Boostrap3出现了,并成为我进军前端的踏板,到现在满打满算也做了大大小小10来个网站,在专业的UI设计人员看来可能上不了台面,但从我这个程序猿来看,perfect~
先放出一个自己原创的几个demo,俗话说,只有实践过的人才有发言权。

本人做的不算好,因为我本来是做Java的后台开发者,大神绕道,谅解,适合初中级BootStrap3研究者(以上界面都支持手机、平板、PC端,感兴趣的可以和我交流)。
Bootstrap 简介
Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的。Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品。目前稳定版本是Bootstrap v3.3.7,最新版是Bootstrap 4.x,不过还是测试版。
Bootstrap 3 的CSS技术是基于LESS的动态CSS。当然他完美的将CSS3和HTML5,流体式响应布局整合起来,让三者不仅仅停留在刀耕火种的概念阶段,让三大潮流前端技术在快速应用上成为了可能。以上页面是用BootStrap3做出来的, Bootstrap 2 和Bootstrap 3 可以说是不同的产品,Bootstrap 2有一些可视化拖拽工具,但 Bootstrap 3就必须自己手动写,Bootstrap 3 是响应式布局、移动设备优先的 WEB 项目,学习难度大,但3是趋势,成熟产品,推荐学习。Bootstrap 3 有几大特色:移动设备优先、响应式布局、栅格系统。
简而言之,就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本。响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用大势所趋来形容也不为过。
优点不言而喻,缺点也是有的:
1、兼容各种设备工作量大,效率低下;
2、代码累赘,会出现隐藏无用的元素,加载时间加长;
3、其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果;
4、一定程度上改变了网站原有的布局结构,会出现用户混淆的情况。
Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。
使用规则:
4、....(规则很多)
一句话总结,栅栏系统可以各种嵌套。无任何限制。唯一的规则是这一行的列宽度要相加等于12,大致效果如下:
<div class="container">
<div class="row">
<div class="col-xs-6 col-md-4">
</div>
<div class="col-xs-6 col-md-4">
</div>
<div class="col-xs-6 col-md-4">
</div>
</div>
</div>
最后说一句,想用BS3的 一定要抛弃原有的DIV设计理念了,一定时时刻刻都试着运用12栅栏系统,不要再用传统DIV布局了!!那样你的页面虽然看起来很 BootStrap3 但是 它完全没有流体特性。 放弃传统DIV布局,把大脑里装上12格栅栏系统。
关于boostrap 的介绍就到这边,有兴趣学习相关基础的同学,可以直接到中文网学习。
Bootstrap 学习路线
1、基础学习:前往中文网或者菜鸟教程,学习Boostrap的基础CSS和JS组件,能够自己写出demo布局。
2、学会抄袭:BS3的开发是需要抄袭的,而且必须抄袭!! 官方甚至鼓励抄袭!! 首先你要会使用官方已经公布并且整合好的各种控件,各种特效,会用之后,你还要知道怎么把这些控件和特效整合起来,创造一个新的特效。知道每个参数具体是控制什么的,用大脑记下来(BS3的痛苦就在这儿 你需要去记忆一些东西)。实在记不下来 开发的时候就开着文档,写着代码,不懂的随时点击随时看。。
如果你熟练抄袭官方文档 并且会自己组合控件的时候 可以说你已经入门了!!!
3、样式组合:这一阶段差不多已经会写一个BootStrap3 官方默认主题,色彩渣到极致的页面了,http://bootswatch.com/ 这个网站里面有好几套免费主题, 下载他们的CSS样式,直接替换官方的即可,你会觉得页面焕然一新!当然,如果你的CSS功底够扎实,不妨自己组合自己设计样式。
4、扩展插件:Bootstrap 自带 12 种 jQuery 插件,中文网上面有,这些都是最基础的,但这些远远不够。“想要更多的组件(我的财宝)吗?想要的话就给你吧,去找吧,互联网(伟大航路),我把世界的一切都放在那里,ONEPIECE!”
5、设计理念:到了这一阶段就要多和UI设计师讨论讨论,什么极简原则、扁平化设计拉,多逛一些花瓣网之类的设计网站,提升艺术家境界。。啧啧,其实“闻道有先后,术业有专攻”,设计理念不必强求,多逛一些Bootstrap优站精选即可。
编后语
要学好boostrap 光记住大量的Class和零散的组件写法是没用的,只有不断动手去尝试,去组合,不论美丑,才能让它们展现出完整的蓝图,这也是就是前端建站的乐趣所在。
“纸上得来终觉浅,绝知此事要躬行”
《半吊子全栈系列:Boostrap3》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 第一章 Slenium2-Java 自动化测试基础
都是一些最基础的知识点. 一:软件测试分类 1)单元测试:单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程.2)集成测试:集成测试是在单元测试的基础上,先通过单元模块组 ...
- iOS开发——生成条形码,二维码
- (void)viewDidLoad { [super viewDidLoad]; self.imageView.image = [self generateBarCode:@"15248 ...
- myeclipse的常用快捷键
创建一个类 Alt+Shift+N,C,输入Demo,回车 创建类属性 按3次下方向键,回车,输入String name;,回车 创建构造器 Alt+Shift+S,O,回车 创建getter/set ...
- MongoDB升级教程
1.排序 sort()方法:其中 1 为升序排列,而-1是用于降序排列. db.col.find({},{"title":1,_id:0}).sort({"likes&q ...
- mysql,mybatis使用中遇到的类型转化的问题
产生原因还没有明白,先记录一下. 使用DATEDIFF函数,计算两个日期的时间差.在mybatis中,resultType 是map.在代码中,根据map的key取值的时候. 在mysql 5.5.3 ...
- 学习swing界面
最近做自动数据平台,没有界面.周末于是想用java实现一个可视化的界面. package cn.wuwenfu.swing; import java.awt.FlowLayout; import ja ...
- 用python实现模拟登录人人网
用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46 我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路 ...
- java制作图片水印
1.创建缓存图片对象 2.创建Java绘图工具对象 3.将原图绘制到缓存图片对象 4.使用工具将水印绘制到缓存图片对象 5.创建图片编码工具类 6.输出缓存图片对象到目标图片文件 BufferedIm ...
- Python3基础 set() 删除一个列表中的重复项
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- 判断js对象的数据类型,有没有一个最完美的方法?
先来一个例子: var string1=""; var string2=new String(""); alert(typeof string1); // st ...