2018-06-09

Bootstrap

栅格系统

工作原理

1.行必须放置在.center class内。
2.使用行来创建水平组。
3.内容应放置在列内,唯有列是行的直接子元素。
4.预定的类可以用于快速创建栅格布局。bootstrap源码中定义的mixin也可以用于创建语义话的布局。
5.列通过内边距来创建列内容之间的间隙。该内边距是通过 .rows 上的外边距取负,表示第一列和最后一列的行偏移。
6.栅格系统中的列是通过指定1到12的值来表示其跨越的范围。三个等宽的列可以使用三个 .col-xs-4 来创建。
7.如果一行中包含的列多于12个,则多余的部分将另起一行排列。

媒体查询
/* 小屏幕 */
@media (min-width: @screen-sm-min) { ... }

/* 中等屏幕 */
@media (min-width: @screen-md-min) { ... }

/* 大屏幕*/
@media (min-width: @screen-lg-min) { ... }

在媒体查询代码中包含 max-width 将css的影响限制在更小范围的屏幕之内

@media (max-width: @screen-xs-max) { ... }
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
栅格参数

超小屏幕 手机(<768px):.col-xs-
小屏幕 平板(>=768px):.col-sm-
中等屏幕 桌面显示器(>=992px):.col-md-
大屏幕 大桌面显示器(>=1200px):.col-lg-

从堆叠到水平排列

使用单一的一组 .col-md-* 栅格类,就可以创建一个基本的栅格系统
在手机和平板上一开始是堆叠在一起的,在桌面上变为水平排列,所有列必须放在 .row 内。

图片说明
流式布局容器

将最外面的布局元素 .container 修改为 .container-fluid,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。

<div class="container-fluid">
  <div class="row">
    ...
  </div>
</div>
移动设备和桌面屏幕

.col-xs-* 和 .col-md-*是针对超小屏幕和中等屏幕设备所定义的类


图片说明
<!-- Stack the columns on mobile by making one full-width and the other half-width -->
<div class="row">
  <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>

<!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
<div class="row">
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>

<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
  <div class="col-xs-6">.col-xs-6</div>
  <div class="col-xs-6">.col-xs-6</div>
</div>

手机,桌面,平板
图片说明
<div class="row">
  <div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<div class="row">
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
  <!-- Optional: clear the XS cols if their content doesn't match in height -->
  <div class="clearfix visible-xs-block"></div>
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
</div>
多余的列将另起一行排列

如果一行包含的列多于12个,则多出来的另起一行排列


图片说明
<div class="row">
  <div class="col-xs-9">.col-xs-9</div>
  <div class="col-xs-4">.col-xs-4<br>Since 9 + 4 = 13 &gt; 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div>
  <div class="col-xs-6">.col-xs-6<br>Subsequent columns continue along the new line.</div>
</div>

Javascript

基本概念

1.js区分大小写
2.标识符规则:第一个字符必须是一个字母,下划线,或者一个美元符号$
3.Js使用C风格的注释

严格模式

启用严格模式,可以在顶部添加如下代码:

 “use strict”;

也可以指定函数在严格模式下执行:

function doSomething(){
“use strict”;
//函数体
}

语句

一个语句以分号结尾,可以使用C风格的语法把多条语句组合到一个代码块中:

If(test){
test=false;
alert(test);
}

变量

定义变量时使用var操作符(注意var是一个关键字),后接变量名(即一个标识符):

var message;

未经初始化的变量会保存一个特殊的值——undefined
变量赋值:

var message = "a”;

注意用var操作符定义的变量将成为定义该变量的作用域中的局部变量。如果在函数中使用var定义一个变量,这个变量在函数退出后就会销毁:

function test(){
var message = ”hi”;  //局部变量
}
test();
alert(message);  //错误

改正:

function test(){
message = “a”;  //全局变量
}
test();
alert(message);  //”a”

可以使用一条语句定义多个变量,每个变量用逗号隔开:

var message = “hi”; Found = false;  age = 29;  

在严格模式下,不能定义名为eval或argument的变量,否则会导致语法错误

typeof操作符

typeof用来检测给定变量的数据类型。对一个值使用typeof操作符可能返回下列某个字符串:

如果这个值未定义返回undefined;
如果这个值是布尔值返回boolean;
如果这个值是字符串返回string;
如果这个值是数值返回number;
如果这个值是对象或null返回object;
如果这个值是函数返回function;

undefined类型

只有一个值,在使用var声明变量但没有初始化时,这个变量的值为 undefined。未经初始化的值默认就会取得undefined值。

null类型

只有一个值,这个特殊的值是null。typeof操作符检测null 值时会返回”object”。

var car = null;
alert(typeof car);  //”object”

如果定义的变量准备在将来用于保存对象,则将该变量初始化为null。

Boolean类型

只有true和 false两个值。true不一定等于1,false不一定等于0,。若要将一 个值转化为其对应的Boolean值,可以调用Boolean()函数:

var message = “Hellow world!”;
var messageAsBoolean = Boolean(message);   //将字符串message转化为Boolean值

boolean值取决于转换值的数据类型及其实际值

Number类型表示整数和浮点数

十进制整数可以直接在代码中输入:

var intNum = 55;

整数也可以通过八进制,十六进制的字面值来表示:

var octalNum1 = 070;  //八进制56
var octalNum2 = 079;  //无效的八进制
var hexNum1 = 0xA;  //十六进制的10

在计算时。所有数据都会被转换成十进制。

(1)浮点数值
var floatNum1 = 1.1;
var floatNum2 =  0.1;

如果小数点后没有任何数字,则该数值可以作为整数值保存。如果浮点数本身表示一个整数(如2.0),则该值也会转化为整数。

var floatNum1 = 2.;    //解析为2
var floatNum2 = 2.0;  //解析为2

对于极大或极小的值可以用 e 表示法

var floatNum = 3.125e7;   //3.1250000
(2)数值范围

在js中能够表示的数是有范围限制的,超出数值范围的值将会被自动转化成特殊的Infinity值。如果这个数是负数,则转化为-Infinity,正数则转化为Infinity。Infinity值将无法参与下一次计算。
isFinite()函数可以确定一个数值是不是有穷的,这个函数在参数位于最大和最小之间是会返回true。

<script type="text/javascript">
        document.write(isFinite(123)+ "<br />");   //true
        document.write(isFinite("Hello")+ "<br />");   //false             
    </script>
(3)NaN

即非数值是一个特殊的数值,用于表示一个本来要返回数值的操作数未返回是指的情况。

NaN的特点:
1.任何涉及NaN的操作都会返回NaN。
2.NaN与任何值都不相等。

<script type="text/javascript">
        alert(NaN == NaN);  //false
        alert(NaN != NaN);  //true
    </script>

isNaN()函数接受一个参数,这个参数可以是任何类型,函数会帮我们确定这个参数是否“不是数值”。
该函数在接收到一个值之后,会尝试将这个值转换成数值,不是数值的值会直接转换成数值,任何不能被转换成数值的值都会导致这个函数返回true。

<script type="text/javascript">
        alert(isNaN(NaN));  //true
        alert(isNaN(2));    //false
        alert(isNaN("2"));  //false
        alert(isNaN("bulala"));  //true
    </script>
(4)数值转换

有3个函数可以吧非数值转换为数值:Number(),parseInt();parseFloat()。

三个函数的共性:
1.均可解析不同进制的数字。
2.无法解析是返回NaN。

Number()

1.转换为数字0的情形:false,"0",null," "四种。
2.Number Undefined()返回NaN。
3.Number(true)返回1。

<script type="text/javascript">
        var num1 = Number("bulala"); //NaN
        var num2 = Number(""); //0
        var num1 = Number("true"); //1
    </script>
parseInt()

1.如果解析的第一个非空格字符不是数字或符号则返回NaN。
2.parseInt(“”)返回NaN。
3.parseInt()可以识别各种证书形式(八进制,十六进制)。

<script type="text/javascript">
        var num1 =parseInt("123bulala"); //123
        var num2 =parseInt(""); //NaN
        var num3 =parseInt("0xA"); //十六进制数10
        var num4 =parseInt("070"); //八进制数56
    </script>
parseFloat()

1.解析时遇到一个无效浮点数为止。
2.在解析数字或可以转化为数字的字符串会忽略小数点后尾部的0。

<script type="text/javascript">
        var num1 =parseFloat("10",2); //按二进制解析
        var num2 =parseFloat("123bulala"); //123
        var num3 =parseFloat(0xA); //0
        var num4 =parseFloat("098.5"); //98.5
        var num5 =parseFloat(15.5"); //15.5
    </script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容