积跬步,聚小流------Bootstrap学习记录(2)
现阶段开启每一次新的征程,已然离不开“Hello World”的习惯仪式。这次自然也不例外。先来看下给出的官网给出的演示样例:
1、bootstrap官网提供的html基本模板代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面。不论什么其它内容都*必须*尾随其后! -->
<title>Bootstrap 101 Template</title> <!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>Hello World!</h1> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>
2、html基本模板代码解读
* html5的必备元素
先来看这段代码,当然是不可缺少的html5的必备元素:
<!DOCTYPE html>、<html>、<head>、<title>、<body>
* 对应的meta标签设定
除此之外。我们看到了3个<meta>标签/1个样式链接/4个脚本链接
首先。<meta>标签通常分为两类:HTTP-EQUIV变量和NAME变量。通常我的理解是HTTP-EQUIV变量多数是用来对网页的设定,比方缓存,定点刷新等等。而NAME变量多数是用来做页面渲染时的说明和介绍,像是keyword、简单介绍等等。
先来看<meta charset="utf-8">,我想这个是最简单的。设定以什么语言来解读,通常大家都会用到,而它写全了应该是<meta
http-equiv="Content-Type" content="text/html; charset=utf-8">,这个就不再多说了
再来看<meta http-equiv="X-UA-Compatible" content="IE=edge">,这个是IE8的专用标记,用来指定ie8来模拟某个特定版本号的渲染方式,这里IE=edge代表了假设系统安装了ie8以上版本号,则用最高版本号的IE内核进行渲染。假设没有则无意义。这是由于IE8在刚推出的时候由于重构的问题,无法适应较高级的浏览器,所以用X-UA-Compatible标签来强制用较低版本号的ie来渲染,当然能够用指定版本号。比如经常使用的<meta
http-equiv="X-UA-Compatible" content="IE=EmulateIE7">.
另外<meta http-equiv="X-UA-Compatible" content="IE=edge,chorme=1">.则是谷歌做的Google
Chrome Frame(谷歌内嵌浏览器框架GCF),这个框架是让用户ie浏览器外表不变,但用户在浏览网页时使用Google Chrome浏览器内核。它是支持IE6/7/8等多个版本号IE浏览器的。万恶的IE还得谷歌帮你解决兼容么,而以上标记则就是在安装了GCF之后,用来指定页面使用chrome内核来渲染。
至于<meta name="viewport" content="width=device-width,initial-scale=1">则是用来设定移动端的,通常移动端的分辨率要小于pc端,并且移动端的分辨率并不固定。(见下图)
(此图盗于点击打开链接,也可在此文中查看更具体信息)
我们姑且就记得是用来解决移动端分辨率问题的就可以。另外还有maximum-scale、minimum-scale和user-scalable等属性。这一问题通常出如今app中(app端一般是固定样式的,假设像页面一样能够缩放则显的不那么正式)。解释例如以下图
对应的链接样式在这里没有什么可说的,会在后期的学习中不断分解它,学习它。
* 代码中脚本解读
而链接的脚本有4个,当中两个是在<!--[if]><![endif]-->之间,那这又是什么意思呢?事实上这样的条件凝视仅仅有在IE之下才干被解读,其他浏览器是将它当做html凝视不进行解读,释用来给IE加入特别的指令,从IE5才開始被支持。
而这里的[if lt IE 9]我们能够理解为“ie浏览器版本号假设小于(less
than)IE9”,满足这样的条件才被解读。
那在这样的满足这样的条件的情况下运行的这两个脚本又是用来做什么的呢?
首先html5shiv.js是用来让IE浏览器来支持html5元素的。然后respond.js则是用来让IE浏览器和其他不支持css3的浏览器提供媒体查询的min-width和max-width,从而来实现网页的响应式设计。
可是这里须要注意的是,这两个脚本必须载入在head中,在结构载入前解释。否则就没有意义了。
至于剩下的两个脚本,我们须要注意的则是jquery的js必须载入在bootstrap的js载入之前,当然这个是我们已经习以为常的问题了,另外js载入在body之后,能够让页面载入的更为迅速,渲染更快。
(我们能够用ie打开对应的链接,然后直接保存该js。
这里提供下链接:html5shiv.js的https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js;
respond.js的https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js。)
3、基本版bootstrap模板
这样我们就把基本模板的全部代码都弄明确了,删掉一些不必要的凝视,我们就能够得到一个最精简的hello world了。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>Hello World。</h1>
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
积跬步,聚小流------Bootstrap学习记录(2)的更多相关文章
- 积跬步,聚小流------Bootstrap学习记录(3)
响应式作为Bootstrap的一大特色.栅格系统可谓是功不可没,既然如此,那我们就来看一下栅格系统是怎样帮助bootstrap实现响应式布局的呢? 1.什么是栅格系统 我们能够从Bootstrap的官 ...
- 积跬步,聚小流------Bootstrap学习记录(1)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- 积跬步,聚小流-------js实现placeholder的效果
前几天在"技术问答"上问了问题,然后有回复一句话就给概括了:placeholder的效果,不得不说.了解的多了才干说起来言简意赅,用最简单的语言描写叙述最清晰的表达. 可是plac ...
- 积跬步,聚小流------关于UML类图
UML的存在 类图是使用频率比較高的UML图,它用于描写叙述系统中所含的类以及它们之间的相互关系,帮助人们简化对系统的理解,也是系统分析和设计阶段的重要产物,也是系统编码和測试的重要类型根据. UML ...
- 积跬步,聚小流------ps有用小技巧,改变png图标颜色
* 实现效果: 原图: 改动后: * 实现目的: 满足为实现不同界面色彩搭配改动png图标的颜色 * 实现方法: 1.打开Photoshop工具,导入须要进行改动的png图标: 2.对导入的图 ...
- 积跬步,聚小流------界面经常使用的jeecms标签
* JEECMS初印象 第一次接触JEECMS,突然脑海就浮现了一句话"20元建站,立等可取",原来这都是真的... * JEECMS的界面经常使用标签 临时忽略掉环境搭建.栏目配 ...
- 积跬步,聚小流------java信息生成图片
需求: 是在做证书的时候碰到的这个问题. 当时需求是能够进行在线打印证书,第一次进行的操作是直接打印html,并且已经排好版(用jqprint插件)进行打印.在打印时碰到了兼容的问题,另外因为背景图片 ...
- 积跬步,聚小流------java获取图片的尺寸
在一篇文章中获取到通过例如以下两种方式进行获取: 1.使用ImageReader进行获取: 2.使用BufferedImage进行获取: 而且经过验证ImageReader进行操作的耗时远远低于Buf ...
- qingshow “不积跬步无以至千里,不积小流无以成江海”。--荀子《劝学篇》 用tomcat+花生壳搭建自己的web服务器+域名(参考)
链接地址:http://www.blogjava.net/qingshow/archive/2010/01/17/309846.html 用tomcat搭建web服务器 目标:免费拥有自己的网站及域名 ...
随机推荐
- laravel 5.5 项目报错
报错内容: ErrorException (E_WARNING) Declaration of App\Observers\SiteObserver::updated($site) should be ...
- django框架-DRF工程之认证功能
1.在Rest framework中进行了一系列的封装,这个认证功能也是被封装到在DRF工程中的一种,想要使用,首先需要在配置文件中进行相应的配置 REST_FRAMEWORK = { ’DEFAUL ...
- 【codeforces 348B】Apple Tree
[题目链接]:http://codeforces.com/problemset/problem/348/B [题意] 给你一棵树; 叶子节点有权值; 对于非叶子节点: 它的权值是以这个节点为根的子树上 ...
- UVA 11426 GCD - Extreme (II) (数论|欧拉函数)
题意:求sum(gcd(i,j),1<=i<j<=n). 思路:首先能够看出能够递推求出ans[n],由于ans[n-1]+f(n),当中f(n)表示小于n的数与n的gcd之和 问题 ...
- CorePlot学习六---点击scatterPlot中的symbol点时弹出对应的凝视
因为项目须要用到用户点击 symbol时,弹出对应的具体信息,发现国内解说的比較少,经过一番搜索验证最终解决,先看效果图: 详细须要改动的代码例如以下: 首先要引用托付方法:CPTScatterPlo ...
- The python programing language
Python is an example of high-level language. As you might infer from the name “high-level language”, ...
- Java类和对象9
(1)创建一个叫做机动车的类:属性:车牌号(String),车速(int),载重量(double)功能:加速(车速自增).减速(车速自减).修改车牌号,查询车的载重量.编写两个构造方法:一个没有形参, ...
- 976 C. Nested Segments
You are given a sequence a1, a2, ..., an of one-dimensional segments numbered 1 through n. Your task ...
- 工作日志:dispatch_once、网络缓存、分享问题
问题描述一: 每一个接口对应的model的数据在进入对应的模块(视图)时,执行一次本地缓存加载: 执行缓存加载的实现在基类实现. 解决方案: 将dispatch_once_t设置为成员变量: 问题扩展 ...
- ES6学习5 字符串的扩展
1.ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历. for (let codePoint of 'foo') { console.log(codePoint) } // ...