《从0到1:HTML5+CSS3修炼之道》笔记

HTML、XHTML、HTML5的区别

HTML,超文本标记语言,通常指HTML4.01。

XHTML,扩展的超文本标记语言,是更严格、更纯净的HTML4.01。

        1、标签必须闭合

        2、标签必须小写

        3、标签属性必须用引号

        4、id属性代替name属性,

HTML5,HTML4.01的升级版。

        1、文档声明<! DOCTYPE html>

        2、标签不区分大小写

        3、标签属性可不加引号

        4、部分属性值可以忽略

HTML5新增的语言化标签,以及好处。

<header>、<nav>、<article>、<aside>、<section>、<footer>

好处是可以帮助完善页面的语义化,提高可读性、可维护性,以及SEO搜索引擎优化。

HTML5新增的input元素类型

验证型:<input type="email" />、<input type="tel" />、<input type="url" />、

取值型:<input type="range" />滑动条;<input type="number" />微调数字按钮;<input type="color" />取色工具;<input type="date" />选择日历;<input type="time" />选择时间;<input type="month" />选择月份;<input type="week" />选择周数

对于以上类型的input,完备的验证效果还需结合pattern属性来实现。

HTML5新增的其他元素

表单元素:<output>展示数据;<datalist>可选列表,代替section;<keygen />暂时忽略;

其他元素:<address>语义化地址;<time>语义化时间;<progress>进度条;<meter>静态进度条;<figure>图片;<figcaption>图片注释;<fieldset>表单分组;<legend>表单标题;

HTML5改良元素

<a download="下载后的文件名">;<ol reversed>无序列表降序显示;<small>小字;<script>新增defer和async,两者都是异步加载脚本的意思,区别是defer会等HTML文档加载完成后执行,async是不等了,立马执行。

HTML5新增属性

公共属性:hidden=“hidden”隐藏;draggable=="true/false"可拖动;contenteditable="true/false"可编辑;data-*=“xx”自行设置属性与属性值,需用obj.dataset.*来获取xx。

input属性:autocomplete=“on/off”文本框自动提示,一般结合datalist使用;autofocus=“autofocus”文本框自动获取焦点;placeholder、required=“required”文本框内容不能为空、pattern=“正则表达式”等。

form属性:novalidate="novalidate"禁用form元素的所有文本框内置验证功能。

元素拖放

源元素:被拖拽元素,可以不是网页上的元素,浏览器外开始拖的也算。事件包括ondragstart,ondrag,ondragend。

目标元素:源元素最终被释放到的那个元素。事件包括ondragenter,ondragover,ondragleave,ondrop。

源元素和目标元素之间的数据传递:dataTransfer对象,包括setData和getData两个重要方法。在源元素的ondragstart中用setData,在目标元素的方法中用getData。

文件获取与读取

<input type="file" multiple="multiple" accept="image/jpeg, image/png" />

其中,multiple设置可选择多个文件;accept设置文件过滤类型(MIME类型)。

File对象:用于获取文件信息。

FileReader对象:用于读取文件内容。readAsText(File对象,编码方式)以某种编码方式读取文本;readAsDataURL(File对象)将文件转为base64编码。

Blob对象:

本地存储

为了解决Cookie存在的大小限制、数量限制、总数限制、不必要的跟随http请求等,HTML5新增了3种数据存储方式:localStorage、sessionStorage、indexedDB。

localStorage:永久、少量。

sessionStorage:临时、少量。

indexedDB:永久、大量。

视频音频

视频如下。video对象有很多属性与方法。音频同视频。

<video width="320" height="240" src="media/mp4" autoplay controls loop preload="auto/metadata/none">

 离线缓存

需要搭建虚拟服务器来做案例。实现离线缓存有三步。

总结:
一、在httpd.conf文件最后添加AddType text/cache-manifest .manifest​​
二、在HTML页面的html标签中添加manifest=“cache.manifest”属性
三、在www文件目录建立cache.manifest文件,文件内容如下

CACHE MANIFEST
#verson xx.xx.xx 这句注释方便更新缓存
CACHE:
xx.html
xx.css
images/logo.png
xx.js等文件

多线程处理

JS的执行环境是单线程的。HTML5提供了JS多线程的解决方案——Web Worker。

客户端:

​​//新建worker实例

var worker = new Worker(url);

//向后台发送数据

worker.postMessage(yourdata);

//接收后台处理完成的数据

worker.onmessage = function(e){
    console.log(e.data);

};​​

服务端:局限性是无法访问DOM、全局变量、全局函数、不支持跨域加载JS。

onmessage = function(e){
  
    //通过e.data获取前台发送来的数据
  
    var d = e.data;
  
    //数据处理
  
    var str = d.split("").reverse().join("");
    //向前台返回数据
  
    postMessage(str);

};​​

地理位置

window.navigator.geolocation有三个方法:getCurrentLocation(function(position){...})、watchPosition(function(position){...})、clearWatch(watchPositionID)。

还有使用百度地图API进行开发的方法,略。

 桌面通知

 Notification API

Canvas

HTML5的核心技术。可用于绘制图形、绘制图表、动画效果、游戏开发。

 canvas是行内块元素,

1、画直线。moveTo画线会与上一个点断开,lineTo画线会与上一个点连续。

var cvs = document.getElementById("canvas");
var ctx = cvs.getContext("2d");
ctx.moveTo(50,100);
ctx.lineTo(150,50);
ctx.lineTo(150,150);
ctx.stroke();

2、画矩形。 

cxt.fillStyle = "HotPink";
cxt.fillRect(50, 50, 80, 80);
cxt.strokeStyle = "rgba(0,0,255,0.3)";
cxt.fillRect(30, 30, 80, 80);

其他略。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值