html5 新特性简介

一、W3C对HTML5的需求整体原则:

  • 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。
  • 减少对外部插件的需求(比如 Flash)
    更优秀的错误处理
  • 更多取代脚本的标记
  • HTML5 应该独立于设备
  • 开发进程应对公众透明

二、什么是HTML:

  • HTML是创建网页的标准标记语言
  • HTML描述了使用标记的网页结构
  • HTML元素由标签显示
  • 浏览器不会显示HTML标签,而是使用它们呈现页面的内容

三、DOCTYPE声明

 

<!Doctype html>

四、字符编码声明:

 

<meta charset="UTF-8">   //不写的话HTML5默认也是UTF-8
  • 一键生成的网页结构:

 

<!DOCTYPE html> //
<html>
<head>
<meta charset="UTF-8">    //
<title>标题</title>
</head>
<body>
内容
</body>
</html>

五、新增的语义/结构化标签 Semantic

标签标签
<article>文档中定义文章内容<aside>
<details><dialog>
<figcaption><figure> img和figcaption组合放在figure里
<footer> 一个文档可以有多个footer<header>一个文档可以有多个header
<main><mark>
<nav> 导航<section> 在文档中定义部分
<summary><time>

123

 

<figure>
//img和figcaption可以组合放在figure里
  <img src="pic_mountain.jpg" alt="The Pulpit Rock" width="304" height="228">
  <figcaption>Fig1. - The Pulpit Rock, Norway.</figcaption>
</figure>

六、HTML4 到HTML5语义化标签迁移

HTML4HTML5
<div id="header"></div><header>
<div id="menu"></div><nav>
<div id="content"></div><section>
<div class="article"></div><article>
<div id="footer"></div><footer>
  • 这也是为什么识别不了的元素通过 HTML5Shiv自动转换识别啦

七、新增的input类型和属性

类型type属性attribute
colorautocomplete
dateautofocus
datetimeform
datetime-localformaction
emailformenctype
monthformmethod
numberformnovalidate
rangeformtarget
searchheight and width
tellist
searchmin and max
timepattern(regexp)
urlplaceholder
weekrequired
 step
 mutiple
其他其他

八、新的图形标签:

SVG

  • 代表可缩放矢量图形
  • SVG用于为Web定义图形
  • SVG是W3C的建议

SVG与Canvas区别

  • SVG适用于描述XML中的2D图形的语言
  • Canvas随时随地绘制2D图形(使用JavaScript)
  • SVG是基于XML的,这意味着每个元素在SVG DOM中都可用。你可以为每个元素添加JavaScript事件处理程序
  • 在SVG中,每个绘制的形状都会被记忆为一个对象。如果SVG对象的书香发生变化,浏览器可以自动重新渲染形状。
  • Canvas是一像素一像素地渲染。在画布中,一旦图形绘制好了,就会被浏览器遗忘。如果你想改变某一个的位置,整个场景都需要重新绘制,包括可能已经被图形覆盖的任何对象。
CanvasSVG
与分辨率相关(可以理解为位图,图形放大会失真看到一个个像素点)与分辨率无关(可以理解为矢量,图形放大不会失真)
不支持事件处理程序支持事件处理程序
文字呈现功能比较简单最适合具有大型渲染区域地应用程序(如Google地图)
可以将生成的图像保存为.png或.jpg如果复杂地话渲染速度慢(其实任何使用DOM的东西都会很慢)
非常适合图形密集性游戏不适合游戏应用程序

 

<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>   //描边绿色,填充黄色的圆,半径40px
<canvas id="myCanvas" width="200" height="100"></canvas> //通过脚本(通常是JavaScript) 动态绘制图形
  • 你以为下面的美图是jpg,png吗,Come on babe,用svg几段代码搞定,才只占几k内存!

  • 总有一天,你也会轻轻松松几行代码画出优美的艺术

     

    wrk.png

  • 再看看这个,svg怎么能少得了Illustrator和svg编辑器呢~~

parrot.png

  • 没事,近期正在钻研SVG,有合适的demo我会集中起来发文,记得常来看看寡人~

九、新的多媒体标签

videoaudio
sourceembed
track

 

<audio controls>
<!--source多配合audio video内部标签使用 -->
   <source src="horse.ogg" type="audio/ogg">
 你的浏览器不支持音频文件 
</audio> 

<track kind="subtitles" src="subs_chi.srt" srclang="zh" label="Chinese">
<!--主浏览器都不支持,track目前不用深究-->

<!--标签定义嵌入的内容,比如插件-->
<embed src="" />

十、新的HTML5的API

  • (Application Programming Interface)--应用程序编程接口
  • HTML Geolocation 地理位置
  • HTML Drag & Drop拖放
  • HTML Local Storage 本地存储
  • HTML Application Cache 应用程序缓存
  • HTML Web Workers web工作者
  • HTNL SSE

十一、浏览器的支持度

  • 所有现代浏览器都支持HTML5
  • 另外,对于新旧浏览器,无法识别的元素,作为内联自动处理

十二、语义元素转换为块元素:

  • HTML5新定义了8个新的语义化元素,全都是块元素
  • 如果像确保新老浏览器都支持,我们可以手动设置CSS样式

 

header, section, footer, aside, nav, main, article, figure {
    display: block; 
}

十三、可以自定义标签名字

  • 自定义标签和style样式

 

<style>
    display: block;
    width: 400px;
    height: 300px;
    background: lightpink;
    margin-left: 100px;
    margin-top: 100px;
    font-size: 30px;
    text-align: center;
    line-height: 300px;
    color: green;
</style>

<body>
<aaa> //随便取的标签名字,你开心不就好啦~
    你好,我是Amelia
</aaa>
</body>

1

高能预警:傻缺IE8(及以前)不允许未知元素

  • HTML5Shiv是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素。
  • HTML5Shiv包裹在<head>元素里,
  • 是一个js外部文件
  • 在使用HTML5新元素就可以引入它了

 

<head>
// 下面是HTML的条件注释判断。只给懂的人...呸、浏览器看
  <!--[if lt IE 9]>
    <script src="/js/html5shiv.js"></script>
  <![endif]--> 
</head>

<body>
<!-- HTML5标签-->
<section>
<h1>Famous Cities</h1>
<article>
<h2>London</h2>
<p>London is the capital city of England. It is the most populous city in the United Kingdom, with a metropolitan area of over 13 million inhabitants.</p>
</article>
</section>
</body>

十四、HTML5删除/废弃不能用的元素

删除的元素被以下替代
<acronym> 首字母缩写<abbr>
<applet><object>
<basefont> 页面上默认字体颜色和字号CSS样式
<big> 更大的文本CSS样式
<center> 文本水平居中CSS样式
<dir> 目录列表CSS样式
<font> 字体外观,尺寸,颜色CSS样式
<frame> 定义子窗口
<frameset> 定义框架集
<noframes> 向浏览器显示无法处理框架的提示文本,位于frameset元素中
<strike> 文本添加删除线CSS样式,<s>或<del>
<tt> 定义打字机文本CSS样式

 

<acronym title="World Wide Web">WWW</acronym> //换成了abbr
<basefont color="red" size="5" />  //CSS样式替代
<frame></frame>
<frameset></frameset> //该标签对网页可用性的负面影响

十五、其他细节

  • 闭合标签,双标签不写那个闭合的标签不会出现解析错误,但是建议闭合

 

<section>
  <p>This is a paragraph.  //没有</p>
  <p>This is a paragraph.
</section>
  • 单标签元素建议加 /来闭合;但在XHTML和XML文档中是必须要加的

 

<meta charset="utf-8">
<meta charset="utf-8" />  //两个都行
  • HTML5元素命名 & class等属性名允许混合使用大写和小写字母,但建议用小写
    • 1.混合使用本身就不符合命名习惯
    • 2.视觉更干净
    • 3.小写更容易编写
  • 引号括起来的属性现在允许去掉,下面的例子都不会报错,

 

<table class="striped">  //建议用
<table class=striped>  //不建议用
<table class=table striped>  //更不建议用
  • 在HTML5标准里,<html>,<body>,<header>标签甚至是可以省略的,但不建议哦~

 

<!DOCTYPE html>
<head>
  <title>Page Title</title>
</head>

<h1>This is a heading</h1>
<p>This is a paragraph.</p>
  • HTML5通过meta标签达到监听并适配设备屏幕的布局

 

<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • 扩展名.html和.htm的差异:
    • 解析方面是没有区别的。任何浏览器Wen服务器都会将它们视为HTML
    • 两者的差异体现在文化发展层面:
    .htm 可以察觉早期讲扩展名限制为3个字符的DOS系统
    .html 不会特定去识别Unix操作系统的这个扩展名字符限制



作者:小宝薯
链接:https://www.jianshu.com/p/37c0b1eb4145
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值