标签:
html5+css3
html5定义很多简便东西和宽松语法:
文档头:
<!doctype html>
文档编码:
<meta charset="utf-8">
单标记:可以不加结尾斜杠
是什么?
html5是建立在html4的基础上
只是多了一些新的标签和属性
css3是建立在css2的基础上
只是多了一些新的样式
不用管兼容了。因为根本也就不兼容
一些误区:
1.html5写起来跟html4完全不一样?
html4怎么写,html5就怎么写
2.移动端写起来跟pc端完全不同?
pc端怎么写,移动端就怎么写,只是尺寸不同。
3.移动端写起来比pc端难?
移动端比pc端简单
4.h5只能写移动端?
移动端
游戏
WEBApp
原生
java object-c
web
混合
html5
<header></header> 页眉
<nav></nav> 列表导航
<hgroup></hgroup> 标题组
<footer></footer> 页脚
<section></section> 区域 布局
<article></article> 文章
<aside></aside> 侧边栏
<figure></figure> 一般用于图片或视频,组合
<figcaption></figcaption> 对图片说明
<time></time> 时间
<datalist></datalist> 数据列表
配合input来用
<input type="text" list="data">
<datalist id="data">
<option></option>
</datalist>
<details></details> 简单描述
<summary>概要</summary>
<p>具体详细描述</p>
open 加上可以打开
<dialog></dialog> 对话
<address></address> 地址
<mark></mark> 标记
<keygen> form配合来用,提供了一个秘钥
<progress></progress>
标签 header secation footer nav video audio canvas
以上标签兼容不好:
兼容IE9+
IE8 7 6
想兼容:需要引入一个插件:html5shiv.js
https://en.wikipedia.org/wiki/HTML5_Shiv
条件语句:
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js"></script>
<![endif]-->
html5shiv.js 本质创建一个一对header、footer等...
表单:
type类型:
会自动校验,不是全部的,不完全
* 手机上自动切换键盘
email: 邮箱
url 地址
tel 电话
number 数字
range 滑块
search 搜索
color 颜色
date 日期
datetime
month
week
新增属性:
autofocus 自动聚焦
autocomplete 自动补全 off
placeholder 文字提示
required 必填项
pattern 正则验证
novalidate 关闭校验(加到form身上)
formaction 给submit加提交网址
\w+@[a-z0-9-]+(\.[a-z]{2,6}){1,2}
本地存储
cookie
localStorage
cookie localStorage
生存周期 有 没有
操作 难 简单
容量 4KB 5MB
提交 会 不会
localStorage.xxx = xxx; 设置
localStorage.xxx; 获取
delete localStorage.xxx; 删除
兼容到ie7
delete 是删除属性的
var json={
name:‘abc‘,
age:30
};
delete json.name;
自定义 属性(新的设置方法)
data-xxx="xxx";
向后兼容
obj.dataset.xxx;
可以遍历
性能低:oBtn.dataset.index--oBtn.index多选择了一个属性导致它的性能偏低
例子:
<script>
document.addEventListener(‘DOMContentLoaded‘,function(){
var oBtn = document.getElementsByTagName(‘input‘)[0];
alert(oBtn.dataset.index);
oBtn.dataset.a = "5";设置一个自定义属性
遍历
for(var name in oBtn.dataset){
alert(name+‘==‘+oBtn.dataset[name]);
}
},false);
</script>
<input type="button" value="abc" data-index="a" />
js里面新增东西:
选择元素:
选择出来一组元素:
document.querySelectorAll(‘#div1‘);
选择出来一个元素
document.querySelector(‘#div1‘);
属性操作:
a). .
b). []
c). attribute()
自定义属性:
用attribute绝对靠谱
现在的自定义属性,都是随便写的,为了向后兼容(html6,html100),占用了呢?
data- 自定义属性
获取:
obj.dataset.xxx
data-index-show -> obj.dataset.indexShow
设置:
this.dataset.indexOne=1;
<input data-index-one="1">
选项卡:
aBtn[i].index=i;
aBtn[i].dataset.index=i;
class:
obj.classList 所有的class
obj.add(sClass) 添加class
obj.remove(sClass) 删除class
obj.contains(sClass) 判断是否有class
obj.toggle(sClass) 切换class
//先添加active,在删除,在添加...
oDiv.classList.toggle(‘active‘);
app:应用
原生app(native app):
ios oc(object-c)
android java
缺点:至少需要两个团队,耗费资金,开发周期长
优点:性能高(大型3D游戏)、必须可以使用麦克风、摄像头
hybrid app: 混合app
本质也还是一个网页,可以调用一些接口
web app: 本质html5网页,页面,外层包个壳子
优点:跨平台、团队不需要很多人
缺点:性能凑合、不能去调用底层东西
html5基础知识
标签:
原文地址:http://www.cnblogs.com/shiyou00/p/5583260.html