文章主标题
文章子标题
文章正文
文章评论列表:
评论标题A
评论内容A
评论标题B
评论标题B
HTML 版本特点:
HTML5:
HTML4.01:
单标记必须闭合 -> 比如
必须写成
单属性必须添加属性值 -> 必须写为
标记和属性必须使用小写 都是错的,必须携程
属性的属性值必须使用""
JavaScript
标识符:变量、函数、属性的名字或者函数的参数。ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写。
要在整个脚本中启用严格模式,可以在顶部添加如下代码“use strict"
如果在函数内部的上方包含这条编码提示,也可以指定函数在严格模式下运行
function doSomething(){
"use strict";
}
关键字:break doinstanceof typeof caseelse newvar
catchfinally returnvoid continue for switch while
debuggerfunction thiswith defaultif throwdelete
intry
保留字:abstract enumint shortbollean exportinterface static
byteextends longsuper charfinal nativesychronized
classfloat packagethrows constgoto privatetransient
debuggerimplements protectedvolatile doubleimport public
第五版把在非严格模式下运行时的保留字缩减为下列这些
classenum extendssuper
在严格模式下,第五版还对以下保留字施加了限制
implementspackage publicinterface privatestatic letprotected
yield
简单数据类型(也称为基本数据类型): Undefined, Null, Bolean, Number, String
复杂数据类型: Object
各种类型转换为Boolean规则
数据类型 转换为true的值转换为false的值
Boolean truefalse
String 任何非空字符串""(空字符串)
Number 任何非零数字值(包括无穷大)0
Object 任何对象null
Undefined n/aundefined
由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMASscipt会不失时机地将浮点数值转换为零数值。显然,如果小数点后面没有跟任何数字,那么这个数字就可以作为整数值来保存。同样的,如果浮点数值本身表示的就是一个整数(如1.0)那么该值也会被转换为整数
var floatNum1 = 1; // 小数点后面没有数字--解析为1
var floatNum2 = 10.0 // 整数--解析为10
在默认情况下,ECMAScript会将那些小数点后面带有6个零以上的浮点数值转换为以e表示法表示的数值(例如0.0000003会被转换为3e-7)
NaN与任何值都不相等,包括NaN本身
有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值
Number()函数的转换规则如下。
如果是Boolean值,true和false将分别被转换为1和0。
如果是数字值,只是简单的传入和返回。
如果是null值,返回0。
如果是undefined,返回NaN。
如果是字符串,遵循下列规则:
如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即"1"会变成1,"123"会变成123,而"011"会变成11(注意:前导的零被忽略了);
如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);
如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;
如果字符串是空的(不包含任何字符),则将其转换为0;
如果字符串中包含除上述格式之外的字符,则将其转换为NaN。
var text = "This is the letter sigma: \u03a3.";
这个例子中的变量text有28个字符,其中6个字符长的转义序列表示1个字符。任何字符串的长度都可以通过访问其length属性取得,例如:alert(text.length); // 输出28 在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串
Object类型所具有的任何属性和方法也同样存在于更具体的对象中
Object的每个实例都具有下列属性和方法:
constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是Object()
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty("name"))
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型(第5章将讨论原型)。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句(本章后面将会讨论)来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;此时,它遵循下列规则
如果第一个操作数是对象,则返回第二个操作数
如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象
如果两个操作数都是对象,则返回第二个操作数
如果有一个操作数是null,则返回null
如果有一个操作数是NaN,则返回NaN
如果有一个操作数是undefined,则返回undefined
与ECMAScript中的其他操作符一样,当关系操作符的操作数使用了非数值时,也要进行数据转换或完成某些奇怪的操作。以下就是相应的规则
如果两个操作数都是数值,则执行数值比较。
如果两个操作数都是字符串,则比较两个字符串对应的字符编码值。
如果一个操作数是数值,则将另一个操作数转换为一个数值,然后执行数值比较。
如果一个操作数是对象,则调用这个对象的valueOf()方法,用得到的结果按照前面的规则执行比较。如果对象没有valueOf()方法,则调用toString()方法,并用得到的结果根据前面的规则执行比较。
如果一个操作数是布尔值,则先将其转换为数值,然后再执行比较
var result = "23" < 3; //false
var result = "a" < 3; // false,因为"a"被转换成了NaN
在转换不同的数据类型时,相等(==)和不相等(!=)操作符遵循下列基本规则:
如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1;
如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;
如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较;
这两个操作符在进行比较时则要遵循下列规则。
null和undefined是相等的。
要比较相等性之前,不能将null和undefined转换成其他任何值。
如果有一个操作数是NaN,则相等操作符返回false,而不相等操作符返回true。重要提示:即使两个操作数都是NaN,相等操作符也返回false;因为按照规则,NaN不等于NaN。
如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true;否则,返回false。
with语句的作用是将代码的作用域设置到一个特定的对象中。
with语句的语法如下:
with (expression) statement;
var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;
with(location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串"10"不等于数值10)。
实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数
function doAdd() {
if(arguments.length == 1) {
alert(arguments[0] + 10);
} else if (arguments.length == 2) {
alert(arguments[0] + arguments[1]);
}
}
doAdd(10); //20
doAdd(30, 20); //50
function doAdd(num1, num2) {
if(arguments.length == 1) {
alert(num1 + 10);
} else if (arguments.length == 2) {
alert(arguments[0] + num2);
}
}
使用CSS样式的方式
内链式样式表:
选择器优先级 id>class>html
子类: body div{ }
多个选择器: div,p,a{ }
css颜色:
{color:red;}
{color:#f00;}
{color:rgb(255,0,0);}
{color:rgba(255,0,0,1);}最后一位为透明度(0-1)
font-size
px:设置一个固定值
%:父元素字体的百分比
larger:比父元素更大
smaller:比父元素更小
inherit:和父元素相同
{background-image:url(image/bg.gif)}
background:背景颜色,url地址,重复,位置
background:#f60 url(images/bg,jpg) no-repeat top center
横向排列
text-align:left;
text-align:center;
text-align:right;
文本行高
line-height:10%; /*基于字体大小的百分比行高*/
line-height:20px;
字符间距
letter-spacing:normal;
letter-spacing:-10px;
letter-spacing:inherit; /*继承父元素*/
单词间距
word-spacing:normal;
word-spacing:px;
word-spacing:inherit;/*继承父元素*/
文字方向
direction:ltr;/*从左到右*/
direction:rtl;/*从右到左*/
direction:inherit;/*继承父元素*/
文本大小写
text-transform:none;
text-transform:capitalize;/*每个单词首字母大写*/
text-transform:uppercase;/*都大写*/
text-transform:lowercase;/*都小写*/
text-transform:inherit;
盒子模型
padding会增加容器自身的宽高
定位方式position
relative正常定位,根据当前位置
absolute根据父元素进行定位
fixed根据浏览器窗口进行定位
static没有定位
inherit继承
内联元素宽高不起作用
即便子元素的z-index小于父元素,子元素也不会显示在父元素的后面
在浮动后紧邻的元素会受到浮动的影响,跑到浮动元素的后面
清除浮动clear:both;
为了消除浮动元素带来的影响,也可以在浮动元素后添加个无内容的元素,在该元素上设置clear:both;
判断IE
不等于:
小于:
大于:
小于等于:
大于等于:
大于和小于之间:
或:
仅:
去掉所有元素的margin和padding
*{margin:0;padding:0}
HTML5中新的网页结构
header元素表示页面中的一个区域或者整个页面的标题
nav元素表示页面中的导航链接部分
article元素表示页面中的一块与上下文不相关的独立内容,比如一片文章中的文章
section表示页面中的一块内容区块,比如章节的页眉、页脚等等。也可以和hn(h1,h2...)等一起使用,标识出文档的结构
aside元素表示article元素的内容之外的,和内容相关的辅助信息
footer元素表示页面或者是页面中的一块区域的页脚,比如存放文件的创建时间、作者、联系方式等等
和其他不相关的独立内容用article
一块内容的不同部分分块用section,section中要有标题
内容的附属部分,比如广告,引用放在aside中
nav元素的使用场合
1.传统的导航条2.侧边栏导航3.内页导航4.翻页操作
time元素
在元素里面包含了pubdate属性的话,就是表示当前文章的发布时间
hgroup元素是将标题和他的子标题进行分组的元素。hgroup元素一般会把h1-h6的元素进行分组,比如在一个内容区块的标题和他的子标题算是一组
通常情况下,文章只有一个主标题的时候,是不需要hgroup的
asda
asdas
address元素用来在页面中呈现联系信息,包括文档的作者、邮箱、地址、电话信息等。
address元素还用来展示和文章的相关的联系人的所有联系信息
figure元素是一种元素的组合,带有可选标题。figure元素用来在表示页面上一块独立的内容,如果将他从网页上删除不给我们的网页造成影响
figcaption元素表示figure元素的标题,它属于figure元素,figcaption元素必须书写在figure元素内部,可以写在figure元素内其他元素前面或后面。一个figure元素内最多只允许放置一个figcaption元素
details元素是一种标识该元素内部的子元素可以被展开、收缩显示的元素。details元素具有一个布尔类型的open属性,当该值为true时,
该元素内部的子元素应该被展开显示。当该元素属性值为false时,其内部的子元素应被收缩起来不显示。该属性的默认值为false,当页面打开
其内部的子元素应处于收缩状态。
summary元素从属于detail元素,用鼠标点击summary元素的内容文字时,details元素中的其他所有从属元素将会展开或者收缩。如果details
元素内没有summary元素,浏览器会提供默认的文字以供点击,例如“details”。目前只有Chrome支持
mark元素表示页面中需要突出显示或高亮显示的,对于当前用户具有参考价值作用的一段文字。通常在引用原文时使用mark元素,目的是引起读者的注意
mark元素是对原文内容有补充作用的一个元素,他应该用在一段原文作者不认为重要的,但是现在为了原文作者不相关的其他目的而需要突出显示或者
高亮显示的文字上面。 mark元素最主要的目的就是吸引当前用户的注意。 mark元素除了高亮显示之外,还有一个作用就是在引用原文时,为了某种特殊的目的
而把作者没有表示出来的内容重点表示出来
progress元素代表一个任务的完成进度,这个进度可以是不确定的,表示进度正在进行,但不清楚这个还有多少工作量没有完成,也可以用0到某个最大数字
(比如100)之间的数字来表示准确的进度情况(比如百分比)
该元素具有两个表示当前任务完成情况的属性,value属性表示已经完成了多少工作量,max属性表示总共又多少工作量。工作量的单位是随意的,不指定的
属性只能指定为有效的浮点数,value属性必须大于0,且小于或等于max的属性,max的属性必须大于0
在html5中废除的元素
1.能使用CSS代替的元素
basefont,big,center,font,s,strike,tt,u
2.不再使用frame框架
html5大纲
关于HTML的大纲编排,我们可以划分为“显示编排”和“隐式编排”两种
1.显示编排是指明确使用section元素进行分块来创建网页文档,每个内容区块内使用标题(h1-h6)
2.隐式编排就是我们不适用section元素进行明确的区块划分,而是根据我们写的(h1-h6,hgroup)元素进行自动
创建区块,因为html5分析器可以根据不同级别的标题判断出对应的内容区块
3.标题分级:不同的标题有不同的级别,在(h1-h6)中,h1的级别最高,而h6的级别最低。所以在隐式编排的
情况下就会按照一下规则生成
1)如果出现新的标题比上一个标题级别低,那么将会生成下级内容区块
2)如果新出现的标题比上面出现的一个标题级别高,或者两者级别相同,那么就生成新的内容区块
4不同的内容区块可以使用相同级别的标题,父内容区块与子内容区块都可以使用相同级别的h1标题
文章正文
评论内容A
评论标题B