HTML5不基于SGML,所以不须要对DTD进行引用,可是须要doctype来规范浏览器的行为javascript
因此,html5只有一种:<!DOCTYPE> 可是html4.01有三种,分别是strict(不包含展现性和弃用元素,不容许框架集)、transitional(包含展现性和弃用元素,不容许框架集)、frameset(容许框架集)css
常见的行内元素有:a,b,span,img(我曾觉得是block),input,strong,selecthtml
常见的块级元素有:div、ul(无序)、ol(有序)、li、p等html5
常见的空元素:<br><hr><link><script>
java
空元素定义:html元素的内容就是其两个标签之间的content,因此,标签之间没有内容的就是空元素web
写法上:算法
<link rel="stylesheet" href="路径" />
canvas
<style type="text/css">
@import '路径'
</style>
复制代码
本质上:link属于XHTML标签,除了加载css以外,还能定义RSS,定义rel链接属性等做用。而@import是css提供的,只能用于加载cssapi
解析上:link是跟着页面加载同时加载的,可是@import会等到页面加载完再加载浏览器
兼容上:@import IE5以上才能识别,无限制
主要分为两部分:
渲染引擎:取得网页的内容(html、xml、图片)、构造cssom树、计算网页的显示方式,好比各元素宽高,而后输出至显示器或打印机。
js引擎:解析和执行javascript来实现网页的动态效果
*Blink是Chrome使用的,webkit的简化版本,可是效率等都较以前有了提高
详细文章:浏览器内核的解析和对比
实现上:h5再也不是SGML的子集。
新特性:主要是关于图像,位置,存储,多任务等功能的增长。
如:
绘画canvas
用于媒介回放的video和audio元素
本地离线存储localStorage,长期存储,浏览器关闭以后数据不丢失
sessionStorage的数据在浏览器关闭后自动删除
语意化更好的内容元素,好比 article、footer、header、nav、section
表单控件,calendar、date、time、email、url、search;
新的技术webworker, websocket, Geolocation;
移除的元素:
纯表现的元素:basefont,big,center,font, s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;
复制代码
处理兼容性: IE8/IE7/IE6支持经过document.createElement方法产生的标签,能够利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还须要添加标签默认的样式。
也可使用html5shim,可让IE9或更低版本能支持html5
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
复制代码
如何区分HTML5: DOCTYPE声明\新增的结构元素\功能元素
在用户没有与因特网链接时,能够正常访问站点或应用,在用户与因特网链接时,更新用户机器上的缓存文件。 原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),经过这个文件上的解析清单离线存储资源,这些资源就会像cookie同样被存储了下来。以后当网络在处于离线状态下时,浏览器会经过被离线存储的数据进行页面展现。
如何使用:
一、页面头部像下面同样加入一个manifest的属性;
二、在cache.manifest文件的编写离线存储的资源; CACHE MANIFEST #v0.11 CACHE: js/app.js css/style.css NETWORK: resourse/logo.png FALLBACK: / /offline.html
三、在离线状态时,操做window.applicationCache进行需求实现。
在线的状况下,浏览器发现html头部有manifest属性,它会请求manifest文件,若是是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源而且进行离线存储。若是已经访问过app而且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,而后浏览器会对比新的manifest文件与旧的manifest文件,若是文件没有发生改变,就不作任何操做,若是文件改变了,那么就会从新下载文件中的资源并进行离线存储。
离线的状况下,浏览器就直接使用离线存储的资源。
cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(一般通过加密)。
存储大小:
有期时间:
用来关联某个标签,能够是表单标签,也能够是button,这样就能够直接点击label的范围来触发绑定标签的事件
用法:
自动完成:当你给输入框输入内容时,浏览器会从以前同名输入框的历史记录中查找出相似的内容并列在输入框下面。
给form或者该input设置autocomplete=off。
通过实验,提交以后,历史记录才会存储,固然,必须是name相同的input才会共享历史记录
WebSocket、SharedWorder(须要实现试试)
也能够调用localstorage、cookies等本地存储方式
Adobe Flash Socket 、ActiveX HTMLFile (IE) 、基于 multipart 编码发送 XHR 、基于长轮询的 XHR
页面可见性:该网页是否处于可见状态。好比网页最小化,或是一个非前置的网页卡,那么visibilityState 的值就是hidden,若是是可见状态,则是visible。
用途:
详细可见:Page Visibility(页面可见性) API介绍、微拓展
一、map+area或者svg
二、border-radius
三、纯js实现 须要求一个点在不在圆上简单算法、获取鼠标坐标等等
<div style="height:1px;overflow:hidden;background:red"></div>
区分用户是计算机仍是人的公共全自动程序。能够防止恶意破解密码、刷票、论坛灌水;
有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。
简单的归总,就是为了分清楚操做者是人仍是恶意程序
这个问题涉及到语义化的问题
title属性没有明确意义只表示是个标题,H1则表示层次明确的标题,主要影响的页面爬虫与SEO
strong是标明重点内容,有语气增强的含义,使用阅读设备阅读网络时:<strong>
会重读,而<B>
是展现强调内容。
i内容展现为斜体,em表示强调的文本
Physical Style Elements -- 天然样式标签: b, i, u, s, pre
Semantic Style Elements -- 语义样式标签:strong, em, ins, del, code
若是不能肯定时首选使用天然样式标签。