HTML5

HTML5是超文本标记语言的第五次重大修改,2014年10月29日标准规范制定完成.

*HTML5语法

DOCTYPE及字符编码

<!doctype html>
<meta charset="UTF-8" />

标签结尾

在XHTML中没个标签都必需结束,在HTML5中对于一些标签不再是必要的

li dt dd p rt rp optgroup option colgroup head tbody tfoot tr td th

自结束的标签最后的 / 也不再必要

img input br hr 等

具有布尔值(boolean)的属性

对于具有boolean值的属性,例如disable和readonly等只写属性不写属性值时值为true

<input type="checkbox" checked >
<input type="checkbox" checked="checked" >
<input type="checkbox" checked="" >

省略属性值的引号

属性值可以用单引号或者双引号,在属性值不包括<、>、=、'、"时可以忽略引号:如

<input type=text >

标签名大小写都可以,但是尽量大写

*新增及删除标签

结构标签(重要) 用来搭建页面结构 不再像以前一样全是div布局
<section> 该元素用来表示网页中不同的分区版块--w3c规定section用来划分区域但不能用来布局 div布局
<article> 定义文章区域,强调完整、独立,可以更有利于搜索引擎识别网页的内容以及判断相关性
<aside> 定义页面内容之外的内容,在左侧或右侧边栏
<header> 定义了页面或内容区域的头部信息,例如:放置页面的站点名称以及LOGO和导航栏等,内容区域的标题、作者、发布日期等
<hgroup> 用于对页面或区段(section)的标题进行组合,例如:有主标题和副标题,可以使用<hgroup>标签包含起来
<footer> 定义了页面或内容区域的底部信息,例如:放置页面的版权信息、备案信息、关于我们、友情链接等,内容区域的作者、发布日期、版权声明、分享等
<nav> 定义导航栏,例如:侧边导航栏、页内导航、分页导航、传统导航栏等
<figure> 表示一段独立的流内容,一般表示文档主体流内容中的一个独立单元。使用figcaption元素为figure元素组添加标题。
表单标签 具有验证和其他好玩的功能
email 必须输入email
url 必须输入url地址
number 必须输入数值
range 必须输入一定范围内数值
Date Pickers(日期选择器) 拥有多个可供选取日期和时间的新输入类型:
date 选取日、月、年
month 选取月、年
week 选取周和年
time 选取时间(小时和分钟)
datetime 选取时间、日、月、年(UTC 时间)
datetime-local 选取时间、日、月、年(本地时间)
search 用于搜索域,域显示为常规的文本域。
color 提供了一个颜色选取器来选取颜色。
媒体标签

video元素 定义视频。例:

<video src="movie.ogg" controls="controls">video元素</video> 
<!--HTML4中写法: -->
<object type="video/ogg" data="move.ogv"> 
  <param name ="src" value="movie.ogv"> 
</object>

audio元素 定义音频。例:

<audio src ="someaudio.wav">audio元素</audio> 
<!--html4中写法: -->
<object tyle="application/ogg" data="someaudio.wav"> 
  <param name ="src" value= "someaudio.wav"> 
</object>

embed元素
用来嵌入内容(包括各种媒体)。格式可以是Midi、Wav、AIFF、AU、MP3,flash等。例:

<embed src="flash.swf" /> 
<!--HTML4中代码示例-->
<object data="flash.swf" type="application/x-shockwave-flash"><object>

其他功能标签

canvas元素

定义图形,比如图表和其他图像。<canvas> 元素只是图形容器(画布),必须使用脚本来绘制图形。

<canvas id="myCanvas"></canvas>
<script type="text/javascript"> 
var canvas=document.getElementById('myCanvas'); 
var ctx=canvas.getContext('2d'); 
ctx.fillStyle='#FF0000'; 
ctx.fillRect(0,0,80,100); 
</script>

source标签

标签为媒介元素(比如 <video> 和 <audio>)定义媒介资源。

menu标签

定义菜单列表。当希望列出表单控件时使用该标签。注意与nav的区别,menu专门用于表单控件。

<menu> 
<li><input type="checkbox" />Red</li> 
<li><input type="checkbox" />blue</li> 
</menu>

output标签

定义不同类型的输出,比如脚本的输出。

<form action="form_action.asp" method="get" name="sumform"> 
<output name="sum"></output> 
</form>

mark元素

主要用来在视觉上向用户呈现哪些需要突出显示或高亮显示的文字。典型应用搜索结果中高亮显示搜素关键字。

HTML5<mark>高亮</mark>HTML4 <span>普通</span>

progress元素

表示运行中的进程,可以使用progress元素显示JavaScript中耗时时间函数的进程。等待中……、请稍后等。<progress></progress>。

time元素

表示日期或时间,也可以两者同时。

ruby元素

定义 ruby 注释(中文注音或字符)。
与 <ruby> 以及 <rt> 标签一同使用。ruby 元素由一个或多个字符(需要一个解释/发音)和一个提供该信息的 rt 元素组成,还包括可选的 rp 元素,定义当浏览器不支持 "ruby" 元素时显示的内容。

<ruby> 
  漢 <rt><rp>(</rp>ㄏㄢˋ<rp>)</rp></rt> 
</ruby>

rt元素

定义字符(中文注音或字符)的解释或发音。

rp元素

在 ruby 注释中使用,以定义不支持 ruby 元素的浏览器所显示的内容。

wbr元素

表示软换行。与br元素的区别:br元素表示此处必须换行;wbr表示浏览器窗口或父级元素足弓宽时(没必要换行时),不换行,而宽度不够时主动在此处换行。

删除标签

1.可以使用css代替的标签
basefont、big、center、font、s、strike、tt、u。这些元素纯粹是为画面展示服务的,HTML5中提倡把画面展示性功能放在css中统一编辑。
2.不再使用frame
frameset、frame、noframes。HTML5中不支持frame框架,只支持iframe框架,或者用服务器方创建的由多个页面组成的符合页面的形式,删除以上这三个标签。
3.只有个别浏览器支持的标签
applet、bgsound、blink、marquee等标签。
4.其他不常用的标签
废除rb,使用ruby替代。
废除acronym使用abbr替代。
废除dir使用ul替代。

*新增的属性

表单相关的属性

表单属性 属性说明
placeholder 显示提示文字
autocomplete 自动完成功能on or off
autofocus 自动获取焦点
list特性和datalist 绑定input和datalist
required 提交之前必须填写
pattern 规定输入内容的验证表正则达式
form 规定input元素属于哪个form表单
disabled 禁用一个input属性
readonly 规定输入字段为只读
multiple 允许file选择多个文件

HTML5拖放API

单词翻译:drag:拖曳 drop落下

drag事件 事件说明
dragstart 网页元素开始拖动时触发。
drag 被拖动的元素在拖动过程中持续触发。
dragenter 被拖动的元素进入目标元素时触发,应在目标元素监听该事件。
dragleave 被拖动的元素离开目标元素时触发,应在目标元素监听该事件。
dragover 被拖动元素停留在目标元素之中时持续触发,应在目标元素监听该事件。
drop 被拖动元素或从文件系统选中的文件,拖放落下时触发。
drogend 网页元素拖动结束时触发

demo1

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style>
 *{
 margin: 0;
 padding: 0;
 }
 div{
 width: 300px;
 height: 300px;
 border: 1px solid #666;
 float: left;
 }
 </style>
</head>
<body>
 <div class="div1">
<!--1,为了使元素可拖动,把 draggable 属性设置为 true-->
 <img src="../img/wuqing.jpg" alt="" draggable="true" id="dragImg">
 </div>
 <div class="div2" ></div>
 <script>
 var img = document.querySelector("img");
 var div1 = document.querySelector(".div1");
 var div2 = document.querySelector(".div2");
//2,拖动什么ondragstart 和 setData()
 img.ondragstart = function(e){
 e.dataTransfer.setData("id",e.target.id);
 }
//3,拖到何处
 div2.ondragover=function(e){
//必须阻止对元素的默认处理方式。这要通过调用  ondragover 事件的 event.preventDefault() 方法:
 e.preventDefault();
 }
//4,进行放置
 div2.ondrop=function(e){
 var _id = e.dataTransfer.getData("id");
 var img = document.querySelector("#"+_id);
 div2.appendChild(img);
 }
 /*把图片移回来 同理
div1.ondragover=function(e){
 e.preventDefault();
 }
 div1.ondrop=function(e){
 var _id = e.dataTransfer.getData("id");
 var img = document.querySelector("#"+_id);
 div1.appendChild(img);
 }*/
 </script>
</body>
</html>

HTML5文件API

  1. FileList对象
  2. Blob对象
  3. File对象
  4. FileReader接口:
    (1)readAsBinaryString(Blob blob);
    (2) readAsText(Blob blob, optional DOMString encoding);
    (3)readAsDataURL(Blob blob);

demo2
从外部拖曳图片到网站

<div id="box">  
</div>
    <script>
        var box = document.querySelector("#box");
        box.ondragover = function(e){
            e.preventDefault();
        }
        //box 作为目标元素 当外部文件拖入到目标元素内并松开鼠标时 box.ondrop将会被执行
        box.ondrop = function(e){
            e.preventDefault();
            var file = e.dataTransfer.files[0];
            //创建一个FileReader对象 
            var fileReader = new FileReader();
            fileReader.onload = function(e){
                // 在 fileReader.onload里 异步获取外部拖入的文件数据
                var img = new Image();

                img.src = fileReader.result;

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

推荐阅读更多精彩内容

  • HTML5 标签comment 注释标签用于在源文档中插入注释。注释内容不会被浏览器显示。为代码编写注释的好处是...
    才気莮孒阅读 4,055评论 1 25
  • 本文主要介绍Html5和Html4的区别。 语法的改变 内容类型HTML5 的文件扩展符与内容类型保持不变。扩展符...
    layjoy阅读 1,839评论 0 23
  • 接上 关于HTML/HTML5(一)http://www.jianshu.com/p/33fc7840c079 学...
    Amyyy_阅读 789评论 0 4
  • 学习HTML的最佳网站没有之一http://www.w3school.com.cn/html/ 关于HTML/HT...
    Amyyy_阅读 2,067评论 0 16
  • 转载请声明 原文链接 关注公众号获取更多资讯 这篇文章主要总结H5的一些新增的功能以及一些基础归纳,这里只是一个提...
    程序员poetry阅读 9,071评论 22 225