史上最全--HTML5新特性都有哪些

HTML5為新增了很多特性,下面我們來(lái)詳細(xì)探索一下

  • 什么是HTML
  • W3C對(duì)HTML5的需求整體原則
  • DOCTYPE 和字符編碼charset聲明
  • 新增的語(yǔ)義/結(jié)構(gòu)化標(biāo)簽
  • HTML4 --> HTML5語(yǔ)義化標(biāo)簽遷移
  • 新增的input的type類(lèi)型和屬性
  • HTML5專(zhuān)有的API 地理位置 本地存儲(chǔ) 緩存等
  • 新的圖形標(biāo)簽 svg canvas 二者區(qū)別
  • 新的多媒體標(biāo)簽 video audio source
  • 瀏覽器支持度
  • 廢棄的一些元素標(biāo)簽
  • 自定義元素標(biāo)簽
  • 解決瀏覽器兼容性的 HTML5Shiv
  • HTML擴(kuò)展名.html和.htm的區(qū)別


    HTML5

一、W3C對(duì)HTML5的需求整體原則:

  • 新特性應(yīng)該基于 HTML、CSS、DOM 以及 JavaScript。
  • 減少對(duì)外部插件的需求(比如 Flash)
    更優(yōu)秀的錯(cuò)誤處理
  • 更多取代腳本的標(biāo)記
  • HTML5 應(yīng)該獨(dú)立于設(shè)備
  • 開(kāi)發(fā)進(jìn)程應(yīng)對(duì)公眾透明

二、什么是HTML:

  • HTML是創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言
  • HTML描述了使用標(biāo)記的網(wǎng)頁(yè)結(jié)構(gòu)
  • HTML元素由標(biāo)簽顯示
  • 瀏覽器不會(huì)顯示HTML標(biāo)簽,而是使用它們呈現(xiàn)頁(yè)面的內(nèi)容

三、DOCTYPE聲明

<!Doctype html>

四、字符編碼聲明:

<meta charset="UTF-8">   //不寫(xiě)的話HTML5默認(rèn)也是UTF-8
  • 一鍵生成的網(wǎng)頁(yè)結(jié)構(gòu):
<!DOCTYPE html> //
<html>
<head>
<meta charset="UTF-8">    //
<title>標(biāo)題</title>
</head>
<body>
內(nèi)容
</body>
</html>

五、新增的語(yǔ)義/結(jié)構(gòu)化標(biāo)簽 Semantic

標(biāo)簽 標(biāo)簽
<article>文檔中定義文章內(nèi)容 <aside>
<details> <dialog>
<figcaption> <figure> img和figcaption組合放在figure里
<footer> 一個(gè)文檔可以有多個(gè)footer <header>一個(gè)文檔可以有多個(gè)header
<main> <mark>
<nav> 導(dǎo)航 <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語(yǔ)義化標(biāo)簽遷移

HTML4 HTML5
<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>
  • 這也是為什么識(shí)別不了的元素通過(guò) HTML5Shiv自動(dòng)轉(zhuǎn)換識(shí)別啦

七、新增的input類(lèi)型和屬性

類(lèi)型type 屬性attribute
color autocomplete
date autofocus
datetime form
datetime-local formaction
email formenctype
month formmethod
number formnovalidate
range formtarget
search height and width
tel list
search min and max
time pattern(regexp)
url placeholder
week required
? step
? mutiple
其他 其他

八、新的圖形標(biāo)簽:

SVG
  • 代表可縮放矢量圖形
  • SVG用于為Web定義圖形
  • SVG是W3C的建議
SVG與Canvas區(qū)別
  • SVG適用于描述XML中的2D圖形的語(yǔ)言
  • Canvas隨時(shí)隨地繪制2D圖形(使用JavaScript)
  • SVG是基于XML的,這意味著每個(gè)元素在SVG DOM中都可用。你可以為每個(gè)元素添加JavaScript事件處理程序
  • 在SVG中,每個(gè)繪制的形狀都會(huì)被記憶為一個(gè)對(duì)象。如果SVG對(duì)象的書(shū)香發(fā)生變化,瀏覽器可以自動(dòng)重新渲染形狀。
  • Canvas是一像素一像素地渲染。在畫(huà)布中,一旦圖形繪制好了,就會(huì)被瀏覽器遺忘。如果你想改變某一個(gè)的位置,整個(gè)場(chǎng)景都需要重新繪制,包括可能已經(jīng)被圖形覆蓋的任何對(duì)象。
Canvas SVG
與分辨率相關(guān)(可以理解為位圖,圖形放大會(huì)失真看到一個(gè)個(gè)像素點(diǎn)) 與分辨率無(wú)關(guān)(可以理解為矢量,圖形放大不會(huì)失真)
不支持事件處理程序 支持事件處理程序
文字呈現(xiàn)功能比較簡(jiǎn)單 最適合具有大型渲染區(qū)域地應(yīng)用程序(如Google地圖)
可以將生成的圖像保存為.png或.jpg 如果復(fù)雜地話渲染速度慢(其實(shí)任何使用DOM的東西都會(huì)很慢)
非常適合圖形密集性游戲 不適合游戲應(yīng)用程序
<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> //通過(guò)腳本(通常是JavaScript) 動(dòng)態(tài)繪制圖形
  • 你以為下面的美圖是jpg,png嗎,Come on babe,用svg幾段代碼搞定,才只占幾k內(nèi)存!

  • 總有一天,你也會(huì)輕輕松松幾行代碼畫(huà)出優(yōu)美的藝術(shù)


    wrk.png
  • 再看看這個(gè),svg怎么能少得了Illustrator和svg編輯器呢~~

parrot.png
  • 沒(méi)事,近期正在鉆研SVG,有合適的demo我會(huì)集中起來(lái)發(fā)文,記得常來(lái)看看寡人~

九、新的多媒體標(biāo)簽

video audio
source embed
track
<audio controls>
<!--source多配合audio video內(nèi)部標(biāo)簽使用 -->
   <source src="horse.ogg" type="audio/ogg">
 你的瀏覽器不支持音頻文件 
</audio> 

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

<!--標(biāo)簽定義嵌入的內(nèi)容,比如插件-->
<embed src="" />

十、新的HTML5的API

  • (Application Programming Interface)--應(yīng)用程序編程接口
  • HTML Geolocation 地理位置
  • HTML Drag & Drop拖放
  • HTML Local Storage 本地存儲(chǔ)
  • HTML Application Cache 應(yīng)用程序緩存
  • HTML Web Workers web工作者
  • HTNL SSE

十一、瀏覽器的支持度

  • 所有現(xiàn)代瀏覽器都支持HTML5
  • 另外,對(duì)于新舊瀏覽器,無(wú)法識(shí)別的元素,作為內(nèi)聯(lián)自動(dòng)處理

十二、語(yǔ)義元素轉(zhuǎn)換為塊元素:

  • HTML5新定義了8個(gè)新的語(yǔ)義化元素,全都是塊元素
  • 如果像確保新老瀏覽器都支持,我們可以手動(dòng)設(shè)置CSS樣式
header, section, footer, aside, nav, main, article, figure {
    display: block; 
}

十三、可以自定義標(biāo)簽名字

  • 自定義標(biāo)簽和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> //隨便取的標(biāo)簽名字,你開(kāi)心不就好啦~
    你好,我是Amelia
</aaa>
</body>
1

高能預(yù)警:傻缺IE8(及以前)不允許未知元素

  • HTML5Shiv是一個(gè)針對(duì) IE 瀏覽器的 HTML5 JavaScript 補(bǔ)丁,目的是讓 IE 識(shí)別并支持 HTML5 元素。
  • HTML5Shiv包裹在<head>元素里,
  • 是一個(gè)js外部文件
  • 在使用HTML5新元素就可以引入它了
<head>
// 下面是HTML的條件注釋判斷。只給懂的人...呸、瀏覽器看
  <!--[if lt IE 9]>
    <script src="/js/html5shiv.js"></script>
  <![endif]--> 
</head>

<body>
<!-- HTML5標(biāo)簽-->
<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> 首字母縮寫(xiě) <abbr>
<applet> <object>
<basefont> 頁(yè)面上默認(rèn)字體顏色和字號(hào) CSS樣式
<big> 更大的文本 CSS樣式
<center> 文本水平居中 CSS樣式
<dir> 目錄列表 CSS樣式
<font> 字體外觀,尺寸,顏色 CSS樣式
<frame> 定義子窗口
<frameset> 定義框架集
<noframes> 向?yàn)g覽器顯示無(wú)法處理框架的提示文本,位于frameset元素中
<strike> 文本添加刪除線 CSS樣式,<s>或<del>
<tt> 定義打字機(jī)文本 CSS樣式
<acronym title="World Wide Web">WWW</acronym> //換成了abbr
<basefont color="red" size="5" />  //CSS樣式替代
<frame></frame>
<frameset></frameset> //該標(biāo)簽對(duì)網(wǎng)頁(yè)可用性的負(fù)面影響

十五、其他細(xì)節(jié)

  • 閉合標(biāo)簽,雙標(biāo)簽不寫(xiě)那個(gè)閉合的標(biāo)簽不會(huì)出現(xiàn)解析錯(cuò)誤,但是建議閉合
<section>
  <p>This is a paragraph.  //沒(méi)有</p>
  <p>This is a paragraph.
</section>
  • 單標(biāo)簽元素建議加 /來(lái)閉合;但在XHTML和XML文檔中是必須要加的
<meta charset="utf-8">
<meta charset="utf-8" />  //兩個(gè)都行
  • HTML5元素命名 & class等屬性名允許混合使用大寫(xiě)和小寫(xiě)字母,但建議用小寫(xiě)
    • 1.混合使用本身就不符合命名習(xí)慣
    • 2.視覺(jué)更干凈
    • 3.小寫(xiě)更容易編寫(xiě)
  • 引號(hào)括起來(lái)的屬性現(xiàn)在允許去掉,下面的例子都不會(huì)報(bào)錯(cuò),
<table class="striped">  //建議用
<table class=striped>  //不建議用
<table class=table striped>  //更不建議用
  • 在HTML5標(biāo)準(zhǔn)里,<html>,<body>,<header>標(biāo)簽甚至是可以省略的,但不建議哦~
<!DOCTYPE html>
<head>
  <title>Page Title</title>
</head>

<h1>This is a heading</h1>
<p>This is a paragraph.</p>
  • HTML5通過(guò)meta標(biāo)簽達(dá)到監(jiān)聽(tīng)并適配設(shè)備屏幕的布局
<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • 擴(kuò)展名.html和.htm的差異:
    • 解析方面是沒(méi)有區(qū)別的。任何瀏覽器Wen服務(wù)器都會(huì)將它們視為HTML
    • 兩者的差異體現(xiàn)在文化發(fā)展層面:
    .htm 可以察覺(jué)早期講擴(kuò)展名限制為3個(gè)字符的DOS系統(tǒng)
    .html 不會(huì)特定去識(shí)別Unix操作系統(tǒng)的這個(gè)擴(kuò)展名字符限制
    
    • 技術(shù)層面的差異:
* 當(dāng)URL沒(méi)有指定文件名時(shí)(比如:https://www.w3schools.com/css/),服務(wù)器將返回默認(rèn)的文件名,通用的默認(rèn)文件名是:index.html、index.htm、default.html、和default.html
* 但如果你的服務(wù)器僅配置了“index.html”作為默認(rèn)文件名,那么你的文件就必須命名index.html,不能用index.htm
* 不過(guò)服務(wù)器可以配置多個(gè)默認(rèn)的文件名,所以你可以根據(jù)需要設(shè)置多個(gè)默認(rèn)文件名
* 總而言之,HTML文件的完整擴(kuò)展名是.html,我們沒(méi)有理由不用它啊~~~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,152評(píng)論 1 92
  • 前端開(kāi)發(fā)面試題 <a name='preface'>前言</a> 只看問(wèn)題點(diǎn)這里 看全部問(wèn)題和答案點(diǎn)這里 本文由我...
    自you是敏感詞閱讀 904評(píng)論 0 3
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,828評(píng)論 1 19
  • RUEN ENTER Search... BACK Touching stories about dog fide...
    張建亞_9605閱讀 443評(píng)論 0 0
  • 17剛過(guò)今天如約被領(lǐng)導(dǎo)談話 恰巧好友推薦相關(guān)閱讀并要求交讀后感 借此機(jī)會(huì)督促自己對(duì)這一年做一個(gè)小小的回顧和反思 年...
    Sarahyanrong閱讀 225評(píng)論 0 1

友情鏈接更多精彩內(nèi)容