初步使用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 相关文章推荐
JS网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
Dec 10 Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
react组件基本用法示例小结
Apr 27 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 Javascript
vue+springboot+element+vue-resource实现文件上传教程
Oct 21 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP Reflection API详解
2015/05/12 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
Javascript 布尔型分析
2008/12/22 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python中的编码知识整理汇总
2016/01/26 Python
Python随机数random模块使用指南
2016/09/09 Python
Python 可视化神器Plotly详解
2020/12/26 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
五年级科学教学反思
2014/02/05 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
财产分割协议书范本
2014/11/03 职场文书
研究生简历自我评
2015/03/11 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
Python图片检索之以图搜图
2021/05/31 Python
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
Python函数中apply、map、applymap的区别
2021/11/27 Python
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL