2.准备项目模板文件夹
接下来,我们为第一个项目创建一个文件夹以及一些基本的文件。谓词我们还要用到HTML5样板文件 HTML5 Boilerplate(H5BP),然后把Bootstrap的有用文件复制过去。
2.1 下载H5BP
访问网站链接地址:https://html5boilerplate.com/ ,下载B5BP。
解压后,修改文件夹名为Bootstrap_First,其目录结构如下:
2.2然后删除和更新下必要的样板文件
删除下列至于H5BP相关的文件夹和文件:
□ 因为稍后要使用LESS创建自己的CSS文件,所以先删除css文件夹。
□ doc 文件夹及其中内容
2.3 理解样板中的.htaccess文件
这个文件中的内容不一定全部都用,这取决于主机设置和站点需求。这个文件的一个主要用途是保证站点性能最优。
2.4 更新必要的样板文件
样板中的下列文件提供了项目的标准信息,根据需要可以更新它们、直接使用它们或者就放那不管。
□humans.txt:这个文件记载贡献者,H5BP、Bootstrap的,还有其他贡献者。
□LICENSE.txt:在H5BP许可前面,加上你基于该许可构建的网站的许可信息,在H5BP许可后,加上Bootstrap以及其他站点中用到的重要的库的许可信息。
2.5 更新站点桌面和触摸设备图标
不要忘了用自己项目的图标替换 Boilerplate 默认的图标文件。
3.加入Bootstrap文件
3.1 字体
从Bootstrap的主文件夹中,把fonts文件夹复制粘贴到Bootstrap_First文件夹中。这个文件夹里包含着Bootstrap附带的重要的Glyphicon字体。
保险起见,再在fonts文件夹中放一个跨域友好的.htaccess文件:
复制代码 代码如下:<FilesMatch ".(ttf|otf|eot|woff)$"><IfModule mod_headers.c>Header set Access-Control-Allow-Origin "*"</IfModule></FilesMatch>
其目的是保证即使站点根目录下没有放H5BP的.htaccess文件,也不会出现字体问题。
3.2 JavaScript
接下来就是加入Bootstrap的JavaScript文件。H5BP的文件夹中已经包含了几个JavaScript文件如下:
在js文件夹里新建文件夹bootsreap,然后把Bootstrap的js文件夹中的脚本都复制过来。下面的截图显示了Bootstrap随带的插件。每个插件一个文件:
把这些插件文件集中保存到新建的js/bootstrap 文件夹,便于优化网站性能,即可以按需选用插件、排除其他文件并缩减文件大小。
在开发期间,保持所有Bootstrap的插件都可用也是一个办法。这样,如果想添加个折叠、提示或者传送带效果,都可以信手拈来。
H5BP采用的方法是把所有插件代码复制到一个 plugins.js模板文件中。这是结束开发之后的最佳做法,因为这样可以减少HTTP请求,加快站点速度。(换句话说,一个80K的文件,比加载4个20K的文件速度更快。)
打开Bootstrap文件夹中包含分发文件的dist文件夹。在这个文件夹中的js文件夹里,包含着 bootstrap.js 和 bootstrap.min.js,它们就是包含 Bootstrap所有插件代码的大文件。
把bootstrap.min.js 的所有代码复制到plugins.js 里。
然后把Bootstrap文件夹里的less文件夹也复制到项目文件夹中。
4.构造HTML模板
打开项目中的 index.html 文件进行编辑。这个示例标记文件来自H5BP,体现了一些最佳实践和建议方案。我们就以这个为基础,把它整合到Bootstrap的工作流中。
浏览一下整个文件,其中有几个有意思的地方,H5BP文档中都有详细说明,目前的5.3.0版本的链接地址为:https://github.com/h5bp/html5-boilerplate/blob/5.3.0/dist/doc/extend.md 。下面也简单介绍下,按次序来:
□ HTML5 文档类型声明:
复制代码 代码如下:<!doctype html>
□ 接下来是几个meta标签
■ 用于指定字符集的:
复制代码 代码如下:<meta charset="utf-8">
■ 告诉IE使用最新版的渲染引擎
复制代码 代码如下:<meta http-equiv="x-ua-compatible" content="ie=edge">
■ 预留给描述站点用的:
复制代码 代码如下:<meta name="description" content="">
■ 针对移动浏览器的视口标签
复制代码 代码如下: <meta name="viewport" content="width=device-width, initial-scale=1">
□ 接下来是两个样式表的链接
复制代码 代码如下:<link rel="stylesheet" href="css/normalize.css"><link rel="stylesheet" href="css/main.css">
□ 再下面就是加载Modernizr脚本的script标签。这个脚本回味IE8提供HTML5“垫片脚本”,以便它能识别HTML5的分区元素:
复制代码 代码如下:<script src="js/vendor/modernizr-2.8.3.min.js"></script>
□ 接下来是IE条件注释,包含推荐用户把旧版本IE升级到新版本的消息:
<!--[if lt IE 8]>
<p class="browserupgrade">You are using an <strong>outdated</strong> browse. ...
<![endif]-->
□ 紧接着是一段文本
□ 随后是托管在谷歌服务器上的jQuery链接,以及一个本地jQuery的后备链接:
复制代码 代码如下:<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script><script>window.jQuery || document.write("<script src="js/vendor/jquery-1.12.0.min.js"></script>")</script>
□ 下面就是plugins.js 和main.js的链接,别分保存JavaScript插件代码和我们编写的代码:
复制代码 代码如下:<script src="js/plugins.js"></script><script src="js/main.js"></script>
□ 谷歌的Analytics 脚本:
<!-- Google Analytics: change UA-XXXXX-X to be your site"s ID. --><script> (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]= function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date; e=o.createElement(i);r=o.getElementsByTagName(i)[0]; e.src="https://www.google-analytics.com/analytics.js"; r.parentNode.insertBefore(e,r)}(window,document,"script","ga")); ga("create","UA-XXXXX-X","auto");ga("send","pageview");</script>对此次的任务而言,我们需要对这个模板中的元素进行如下操作:
<header role="banner"><nav role="navigation"></nav></header><main role="main"><h1>Main Heading</h1><p>Content specific to this page goes here.</p></main><footer role="contentinfo"><p><small>Copyright © Luka Ye</small></p></footer>这就是我们页面的基本结构和内容。
<header role="banner"><nav role="navigation" class="navbar nav-static-top navbar-default"><div class="container"><div class="navbar-header"><a class="navbar-brand" href="index.html">初识 Bootstrap</a></div><ul class="nav navbar-nav"><li class="active"><a href="index.html">Home</a></li><li><a href="#">Link</a></li><li><a href="#">Link</a></li></ul></div></nav></header>保存结果,其导航条的显示效果如下:
(6) css文件夹中会出现编译生成的 bootstrap.css文件。
(7) 编译成功后,唯一要注意的是这个文件名是否与index.html中链接的文件名相同。
(8) 在 index.html 中,删除指向 css/normalize.css 的样式表链接,因为这个样式表已经包含在 Bootstrap中了。
(9) 复制一份bootstrap.css,重命名为main.css。
(10) 浏览器打开index.html文件,可以看到起默认的导航样式如下,从排版和布局上有所增强,这说明CSS已经生效。
7.2 完成响应式导航条
为了在 Bootstrap 响应式导航条基础上完成我们的导航条,还得再增加两个新元素,以及相应的类和data属性。相关的用法可以参考 Bootstrap的Components 文档,在Navbar选项卡下:http://getbootstrap.com/components/#navbar
先按照下列步骤添加额外的标记。
(1) 搜索到 <div>,在一个元素中添加一个navbar-toggle按钮,用于展开和收起响应式导航条。下面就是这个按钮的全部标记:
<div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="index.html">初识 Bootstrap</a></div>简单解释下以上代码:
<div class="navbar-collapse collapse"><ul class="nav navbar-nav"><li class="active"><a href="index.html">Home</a></li><li><a href="#">Link</a></li><li><a href="#">Link</a></li></ul></div>在前面两步中,我们把代码分分隔成两部分,而且都位于 <div>中。
7.3 排除故障
如果一切顺利,那么说明你已经成功地把LESS编译成CSS,而且也成功地包含了Bootstrap的JavaScript插件。如果不顺利,那就要仔细检查下咯。
7.4 支持IE8
要支持IE8,需要一段JavaScript代码让浏览器能响应媒体查询。这段代码就是Scott Jehl的 respond.js “腻子脚本”。
Bootstrap自身的文档推荐这样做以兼容IE8。相关信息可以参考这里:http://getbootstrap.com/getting-started/#browsers
为了针对IE8 应用这段脚本,需要针对IE8的条件注释:
<!--[if lt IE 9]>
...
<![endif]-->
另外,根据Andy Clarke的建议,为了不让并不需要这个脚本的Windows 移动设备加载该脚本,还应该排除IE移动版浏览器,具体参见他的在线代码块 320andup,地址是:https://github.com/malarkey/320andup/ 。
Clarke建议的条件注释如下:
<!--[if (lt IE 9) & (!IEMobile)]>
...
<![endif]-->
有了条件注释,下面就是在站点模板文件中添加腻子脚本了,步骤如下:
(1) 打开https://github.com/scottjehl/Respond ,下载源代码。
(2) 解压缩,找到名为respond.min.js 的压缩版。
(3) 把它复制到项目文件夹中的 js/vendor 目录下,与jQuery 和 Modernizr放到一块。
(4) 然后,把下面几行加载 respond.js 文件代码添加到 index.html 中,包括针对IE的条件注释,就加载 Modernizr的代码下面:
复制代码 代码如下:<!-- Modernizr --><script src="js/vendor/modernizr-2.8.3.min.js"></script><!-- Respond.js for IE 8 or less only --><!--[if (lt IE 9) & (!IEMobile)]><script src="js/vendor/respond.min.js"></script><![endif]-->
(5) 好了,这样IE8 就可以支持媒体查询响应视口大小变化了。
PS:如果你想测试添加腻子脚本的结果,但又没有IE8 浏览器,可以使用一个在线服务,叫Browsershots,地址是:http://browsershots.org/ ,这是免费的。还有一个收费的,叫BrowserStack,地址是: https://www.browserstack.com/(试用免费)。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。