初步使用bootstrap快速创建页面


Posted in Javascript onMarch 03, 2016

1. 安装bower前端包管理器

bower是一个前端软件包管理器,便于安装、更新以及卸载javascript,css,html等框架资源,并解决之间的相互依赖关系。

npm install -g bower // 安装
bower help // 查看帮助

这里YY一下:

npm是node.js的包管理器,通过它安装了express,express-generator,supervisor,bower等等软件,bower又是前端框架的软件包,安装了bootstrap以及jquery等一些依赖包。突然发现简直是包包相扣啊,渐渐的醉了。其中的水实在是太深了,想简单学个web开发也不是那么容易的事啊,有种淡淡的忧伤。然并卵,心向往之,一如既往。

2. 安装bootstrap以及jquery

当然你也可以直接将bootstrap以及jquery下载下来,放入项目文档中,不用安装什么包管理器,自己解决简单的依赖关系就OK了,但是不都是为了快速建站嘛,装个包管理器自动解决依赖关系。并且在发布自己的项目的时候,也不需要将所有的框架包一块发布,而只需将相关的json文件放到项目里就可以了,别人一目了然你的依赖关系,便于快速搭建。

有了bower,直接bower install bootstrap就OK了,因为依赖关系,它会自动给你装上jquery,完事。

3. 模板引擎中引入bootstrap以及jquery

安装好了或者说项目中已经放置好了bootstrap和jquery之后,接下来就是在文件中引用它,在views文件夹中创建一个head.jade文件,顾名思义就是放置HTML中head标签里面的一些内容。如下代码:

link(href='/bootstrap/dist/css/bootstrap.min.css',rel='stylesheet')
script(src='/jquery/dist/jquery.min.js')
script(src='/bootstrap/dist/js/bootstrap.min.js')

创建完head.jade后,接下来在所有需要的页面中,加上include head.jade包含到页面中就OK了。

4. 使用模版布局

由于基本上所有的页面都需要包含head.jade,总不能每个页面都写上include head.jade 吧,于是布局文档layout.jade就要起作用了。单独创建layout.jade文件,将一些共性的代码写进去。

doctype html
html
 head
 title= title
 link(rel='stylesheet', href='/stylesheets/style.css')
 include ./includes/head
 body
 include ./includes/header
 h1= title
 block content

如上,一些独立的模块依然可以通过include语句进行加载,最后一句block content就是模版布局的关键,意思就是在模版的此处插入页面,也就是应用此模版布局的差异处。

然后在应用此模版布局的页面中,加上extent layout就OK了。如下:

extends ../layout
block content
 p Welcome to #{title}

注意:extends模版文件以及include代码中使用文件尽量使用相对路径。

5. 开始编辑页面

准备工作都做得差不多了,那么接下来就是使用jade语法以及bootstrap样式来编辑页面了。下面简单大致写个首页(index)以及详情页(detail)。

初步使用bootstrap快速创建页面

// index.jade
extends ../layout

block content
 .container
 .row
 h1= title
 small 图书列表
 each item in books
 .col-md-3.col-xm-6
  .thumbnail.text-center
  a(href='/books/#{item._id}')
  img(src='#{item.poster}',alt='#{item.title}')
  .caption
  h3= item.title
  .btn-group
  a.btn.btn-primary(href='/books/#{item._id}') 查看详情
  a.btn.btn-primary(href='#{item.buyUrl}') 购买书籍

初步使用bootstrap快速创建页面

// detail.jade
extends ../layout

block content
 .container
 .row
 h1= title
 small= book_title
 .col-md-9.col-sm-9
 .thumbnail
  img(src='#{book_poster}')
  .caption
  p= book_info
  a.btn.btn-primary(href='#{book_buyUrl}') 购买书籍
 .col-md-3.col-sm-3
 h3 作者
 p #{book_author}
 h3 出版年月
 p #{book_year}年
 h3 页数
 p #{book_pages}页
 h3 定价
 p ¥#{book_price}

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

上面两个页面是bootstrap里最基本的布局,文章就为大家介绍到这,感兴趣的朋友可以继续研究,共同探讨。

Javascript 相关文章推荐
jquery显示和隐藏div特效实例
Feb 27 Javascript
JS动态添加option和删除option(附实例代码)
Apr 01 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
Sep 04 Javascript
vue实现购物车抛物线小球动画效果的方法详解
Feb 13 Javascript
详解微信小程序回到顶部的两种方式
May 09 Javascript
微信小程序实现上传照片代码实例解析
Aug 04 Javascript
vue 实现把路由单独分离出来
Aug 13 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 Javascript
JS动态增删表格行的方法
Mar 03 #Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 #Javascript
基于javascript html5实现多文件上传
Mar 03 #Javascript
编写高质量JavaScript代码的基本要点
Mar 02 #Javascript
JS获取当前脚本文件的绝对路径
Mar 02 #Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 #Javascript
浅谈JS原型对象和原型链
Mar 02 #Javascript
You might like
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
Gird事件机制初级读本
2007/03/10 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
Javascript中replace()小结
2015/09/30 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
Python合并多个装饰器小技巧
2015/04/28 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
python如何绘制疫情图
2020/09/16 Python
python 从list中随机取值的方法
2020/11/16 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
外企测试工程师面试题
2015/02/01 面试题
升旗仪式主持词
2014/03/19 职场文书
2014年纪委工作总结
2014/12/05 职场文书
少先队中队工作总结
2015/08/14 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
导游词之湖北武当山
2019/09/23 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS