HTML 5 流水賬

HTML5

引言

HTML5 致力于解決跨瀏覽器問題,可以取代部分原來要靠JavaScript實現(xiàn)的功能;

HTML 的發(fā)展歷史“比較復(fù)雜”,因為它實在太“隨意”了,而負(fù)責(zé)解析 HTML 的瀏覽器又太“寬容”了,以至于到了“寫一份對的 HTML 文檔很容易,寫一份錯的 HTML 文檔很難”的程度。而且不同瀏覽器之間又存在一些差異,因此導(dǎo)致 HTML 文檔給人的感覺比較混亂。

2008年,一項關(guān)于Alexa全球500強網(wǎng)站的調(diào)查表明,僅有 6.57%的網(wǎng)站能通過 HTML 規(guī)范驗證。如果把那些名不見經(jīng)傳的小網(wǎng)站考慮在內(nèi),整個互聯(lián)網(wǎng)上就幾乎都是不符合規(guī)范的 HTML 頁面。

一方面,W3C 組織“聲嘶力竭”的呼吁大家應(yīng)該制作遵守規(guī)范的 HTML 頁面;另一方面,各種瀏覽器卻可以正常解析、顯示那些不符規(guī)范的頁面,HTML 頁面制作者根本不太理會這種呼吁。

現(xiàn)有的 HTML 頁面中大量存在以下 4 種不符合規(guī)范的內(nèi)容:

  1. 元素標(biāo)簽名大小寫混雜:<p>HTML</P>
  2. 元素沒有結(jié)束符
  3. 元素中的屬性,只有屬性名,沒有屬性值:<input type="text" disabled>
  4. 屬性值沒有用引號:<input type=text>

可能是出于“存在即合理”的考慮,WHATWG組織開始制定一種“妥協(xié)式”的規(guī)范:HTML 5。既然互聯(lián)網(wǎng)上大量存在上面 4 種不符合規(guī)范的內(nèi)容,而且制作者從來也不打算修改這些頁面,因此 HTML 5 干脆承認(rèn)它們是符合規(guī)范的。換句話說,HTML 5 是規(guī)范制定者對現(xiàn)實的妥協(xié)。

HTML 5 的優(yōu)勢

  1. 解決跨瀏覽器問題;
  2. 部分代替了原來的JavaScript:
  • document.getElementById("price").focus();
  • < input type="text" autofocus name="price" >
  1. 更明確的語義支持:
  • 在 HTML 5 以前,如果要表達(dá)一個文檔結(jié)構(gòu),可能只能通過 div 元素來實現(xiàn):
    • <div id="header" > ... < /div >
    • <div id="nav" > ... < /div >
    • <div id="article" > ... < /div >
    • <div id="section" > ... < /div >
    • <div id="aside" > ... < /div >
    • <div id="footer" > ... < /div >
  • HTML 5 為上面的頁面布局提供了更明確的語義元素:
    • < header > ... < header >
    • < nav > ... < nav >
    • < article > ... < article >
    • < section > ... < section >
    • < aside > ... < aside >
    • < footer > ... < footer >
  1. 增強了 Web 應(yīng)用的功能:例如以前上傳文件時想同時選擇多個文件都不行,必須通過 JavaScript 來實現(xiàn);為了彌補這些不足,HTML 5 規(guī)范增加了不少新的 API ,而各種瀏覽器正努力實現(xiàn)這些 API 功能,在未來的日子里,使用 HTML 5 開發(fā) Web 應(yīng)用將變得更加輕松。

HTML 5 基本結(jié)構(gòu)和語法變化

DTD 定義:

< !DOCTYPE html >

基本結(jié)構(gòu):

<! DOCTYPE html>
<html>
    <head>
        <title>頁面標(biāo)題,顯示在瀏覽器標(biāo)簽欄</title>
        <meta charset="utf-8" />
        <!-- 此處可以插入其他meta、樣式單等信息 -->
        <link href="css/bootstrap.min.css" rel="stylesheet" />
    </head>
    
    <body>
        <h1> Hello, World! </h1>
        頁面內(nèi)容
        
        <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
    </body>
</html>

基本元素:

<style> 用于引入CSS
<h1> 到 <h6> 用于引入標(biāo)題一到標(biāo)題六
<p> 定義段落
<br> 換行
<hr> 定義水平線
<div> 定義文檔中的節(jié)
<span> 與 <div> 基本類似,區(qū)別是該定義的節(jié)默認(rèn)不會換行

<span>、<p>、<div>三個元素的效果有點類似,它們都可以作為其他內(nèi)容的容器。在默認(rèn)情況下,<span>元素不會導(dǎo)致?lián)Q行,而<div>元素會導(dǎo)致?lián)Q行,而<p>元素會產(chǎn)生一個段落,段落和段落之間默認(rèn)有更大的間距。

除此之外,<p><span>只能包含文本類內(nèi)容,如文本、圖像、超鏈接、文本格式化元素(<em>等)和表單控件等內(nèi)容;
** <p>可以包含<span>元素,但<span>不能包含<p>元素;**

<div>幾乎可以包含所有內(nèi)容:<h1>到<h6>、<form>、<table>、<ol>、<ul><div>、<p>、<span>正是因為<div>元素可以包含各種各樣的內(nèi)容,因此在 HTML 5 以前,經(jīng)常會大量使用<div>元素來完成頁面布局。

文本格式化元素
  • <b> 粗體文本
  • <i> 斜體文本
  • <em> 強調(diào)文本,實際效果和<i>差不多
  • <strong> 粗體文本,與<b>基本相同
  • <big> 大號字體文本
  • <small> 小號字體文本
  • <sup> 上標(biāo)文本
  • <sub> 下標(biāo)文本

上面這些文本格式化元素能繼續(xù)包含文本類內(nèi)容,如文本、圖像、超鏈接、文本格式化元素和表單控件元素;還可以包含<span>!

語義相關(guān)元素
  • <abbr> 表示一個縮寫
  • <address> 表示一個地址,瀏覽器通常會用斜體字顯示地址內(nèi)容
  • <blockquote> 引用,長的帶換行的大段引用
  • <q> 引用,短的不帶換行的引用
  • <code> 一段計算機代碼
  • <dfn> 一個專業(yè)術(shù)語,瀏覽器通常會用粗體或斜體顯示
  • <del> 被刪除的文本,瀏覽器以中劃線顯示
  • <ins> 插入的文本,通常以下劃線顯示
  • <pre> 表示該元素包含的文本已經(jīng)進行了預(yù)格式化,也就是說<pre> 所包含的空格、回車、Tab和< > / \ ' "格式字符都會被保留下來
  • <var> 表示一個變量。瀏覽器通常以斜體顯示<var>所包含的文本
超鏈接和錨點

<big>< a... /></big>

  • href:鏈接地址
  • target:指定使用框架集中的哪個框架來裝載。屬性值可以為_self、_blank、_top、_parent 四個,分別代表使用自身、新窗口、頂層框架、父框架來加載新資源
  • media:指定目標(biāo) url 所引用的媒體類型。默認(rèn)值為 all。是 HTML 5 新增的屬性。

命名錨點就是頁面內(nèi)的定位點,用來實現(xiàn)頁面內(nèi)的定位:
<a name="anchor1">
<a href="#anchor1">

列表元素
  • <ol> 有序列表
    • 可以通過starttype屬性指定起始數(shù)字和編號類型(數(shù)字、字母、羅馬數(shù)字)
  • <ul> 無序列表
  • <li> 列表項
  • <dl> 自定義列表
<dl>
    <!-- 定義標(biāo)題列表項 -->
    <dt>要掌握的編程語言</dt>
    <dd>Java</dd>
    <dd>C++</dd>
    <dd>Python</dd>
    <dd>JavaScript</dd>
</dl>
自定義列表
圖片相關(guān)元素

<img>
此外,還可以指定以下屬性:

  • height:高度,可以為百分比或像素值
  • width:寬度,可以為百分比或像素值

圖片映射:將一幅圖片劃分成不同的區(qū)域,每一個區(qū)域可以設(shè)置一個鏈接地址
http://blog.csdn.net/qiantujava/article/details/18305709

圖片映射 圖中每一個頭像都連接到不同的地址

表格

< table >

  • <caption> 定義表格標(biāo)題
  • <thead> 表格頭
  • <tfoot> 表格腳
  • <tr> 表格行
  • <td> 單元格
  • <th> 表格頁眉
  • <tbody> 表格體

使用<tbody>標(biāo)簽,可以將一個表格分成幾個獨立的部分。<tbody>元素可以將表格中的一行或幾行合并成一組,當(dāng)我們使用 Ajax 編程時常常需要動態(tài)修改表格中的某幾行,這就需要使用<tbody>元素了。

<table border="1" style="width:400px">
<caption><b>瘋狂Java體系圖書</b></caption>
<thead>
    <tr>
        <th>書名</th>
        <th>作者</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>瘋狂Java講義</td>
        <td>李剛</td>
    </tr>
    <tr>
        <td>輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)</td>
        <td>李剛</td>
    </tr>
</tbody>
<tfoot>
    <tr>
        <td colspan="2" style="text-align:right">現(xiàn)總計:2本圖書</td>
    </tr>
</tfoot>
</table>
tbody thead tfoot
框架

HTML 5 不再推薦在頁面中使用框架集,因此 HTML 5 刪除了<frameset>、<frame>、和<noframes>三個標(biāo)簽。

HTML 5 依然保留了一個與框架相關(guān)的元素:<iframe>,該元素用于在普通 HTML 頁面中生成一個內(nèi)聯(lián)框架,可以直接放在 HTML 頁面的任意位置,用于加載一個 url 指向的頁面。
<iframe src="https://www.baidu.com/" >

iframe

HTML 5 新增的通用屬性

HTML 5 保留了大部分原有的 HTML 元素,但為這些元素增加了一些通用屬性,這些屬性極大地增強了 HTML 元素的功能。

  • contentEditable 屬性:允許直接編輯元素里的內(nèi)容。此處的 HTML 元素并不是指那些原來就允許用戶輸入的表單元素,如文本框、文本域子類的;而是可以把<table>、<div>等元素變成可編輯狀態(tài)。
  • designMode 屬性:相當(dāng)于一個全局的 contentEditable 屬性,如果把整個頁面的 designMode屬性設(shè)為 on 時,該頁面上所有可支持 contentEditable 的元素都變?yōu)榭删庉嫚顟B(tài)。
  • hidden 屬性:通知瀏覽器不顯示元素,且不占用空間;相當(dāng)于style="display: none"。
  • spellcheck:為<input>、<textarea>等元素增加了 spellcheck 屬性,瀏覽器會對輸入進行單詞拼寫檢查(錯誤的單詞劃紅色的下劃線)。
HTML 5 新增的常用元素
文檔結(jié)構(gòu)元素
  • <article>:代表頁面上獨立、完整的一篇“文章”,可以使一個帖子、一篇 Blog 文章、一篇短文、一條完整的回復(fù)等。
    • <article>內(nèi)部可以用<header>定義文章標(biāo)題部分,用<footer>定義腳注,用多個<section>將文章內(nèi)容分成幾個段落,同時還可以嵌套多個<article>作為它的附屬文章,比如一篇 Blog 文章后面可以有多篇回復(fù)文章。
  • <section>:對頁面內(nèi)容進行分塊;
  • <nav>:定義導(dǎo)航條。HTML 5 推薦將導(dǎo)航鏈接放在<nav>元素中進行管理。
  • <aside>:定義側(cè)邊欄;
  • <header><article>文章的頭部,該元素內(nèi)部可以包含多個<h1>~<h6>這樣的標(biāo)題元素,也可以包含<hgroup>元素;
  • <hgroup>:用于組織多個<h1>~<h6>這樣的標(biāo)題元素;
  • <footer><article>的腳注部分;
  • <figure>:一個獨立的圖片區(qū)域,內(nèi)部可包含多個<img>元素所代表的的圖片。
語義元素
  • <mark>:熒光筆效果,瀏覽器默認(rèn)會用黃色顯示;
  • <time>:表示時間;
兩個特殊功能的元素
  • <meter>:用于表示一個已知最大值和最小值的計數(shù)儀表,比如電池的剩余電量;
  • <progress>:進度條;
當(dāng)前行車速度是:
<meter value="120" min="0" max="220" low="0" high="160">120</meter>千米/小時。<br>
任務(wù)完成比:
<progress value="30" max="100">30/100</progress>
`<meter> & <progress>`
HTML 5 的頭部和元信息

<head>

  • <script>:用于包含 JavaScript 腳本;
  • <style>:用于定義 CSS 樣式;
  • <link>:用于鏈接外部 CSS 樣式等資源;
  • <title>:顯示在瀏覽器標(biāo)簽欄的標(biāo)題;
  • <base>:用于指定頁面中所有鏈接的基準(zhǔn)鏈接;
    • <href>:指定所有鏈接的基準(zhǔn)鏈接;
    • <target>:指定頁面中所有鏈接的默認(rèn)打開方式:<_blank>, <_self>, <_parent>, <_top>;
  • <meta>:用于定義 HTML 頁面的元數(shù)據(jù),也就是一些 name-value 對,它可以指定以下 3 個屬性:
    • <http-equiv>:指定元信息的名稱,該屬性指定的名稱具有特殊意義,它可以向瀏覽器傳回一些有用的信息,幫助瀏覽器正確的處理網(wǎng)頁內(nèi)容。
    • <name>:指定元信息的名稱,該名稱值可以隨意指定;
    • <content>:元信息的值;

<meta>元素里<http-equiv><name>的作用基本相同,只是<http-equiv>屬性值通常規(guī)定為應(yīng)該是瀏覽器可以識別的、具有特殊意義的名稱。

<http-equiv>屬性支持以下幾個值:

  • <Expires>:指定網(wǎng)頁的過期時間,一旦網(wǎng)頁過期,必須重新從服務(wù)器上下載。例如:
    • <meta http-equiv="Expires" content="Sat Sep 27 16:12:36 CST 2008"/>
  • <Pragma><meta http-equiv="Pragma" content="no-cache">禁止緩存頁面,等價于 HTTP 頭中的Cache-Control: no-cache
  • <Refresh>指定瀏覽器多長時間后自動刷新頁面:
    • <meta http-equiv="Refresh" content="2"/>兩秒后自動刷新;
    • <meta http-equiv="Refresh" content="2; URL=http://www.baidu.com"/>兩秒后自動刷新至百度;
  • <Set-Cookie>:設(shè)置 Cookie:
    • <meta http-equiv="Set-Cookie" content="name=value expires= Sat Sep 27 16:12:36 CST 2008, path=/">
  • <Content-Type>:設(shè)置頁面內(nèi)容類型和字符集:
    • <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
HTML 5 新增的拖放 API

HTML 5 新增了關(guān)于拖放的 API ,通過拖放 API 可以讓 HTML 頁面的任意元素都變成可拖動的(比如圖片和鏈接就默認(rèn)是可拖動的)。
結(jié)合 JavaScript 就可以設(shè)置拖放時攜帶的數(shù)據(jù)。

HTML 5 表單

一個問題,不要被 HTML 5 的“強大”迷惑,上傳文件這種事情還是要靠 JavaScript 來完成;只不過 HTML 5 提供了更方便的接口。

<form>三個重要的屬性:

  • <action>:目標(biāo)地址;
  • <method>post or get
  • <enctype>對表單內(nèi)容進行編碼所使用的字符集
    • application/x-www-form-urlencoded:默認(rèn)的編碼方式;
    • multipart/form-data:含有文件時;
    • text/plain:適用于發(fā)送郵件;

HTML 5 對客戶端校驗進行了增強(以前完全要靠 JavaScript 來實現(xiàn)),甚至支持基于正則表達(dá)式的校驗。

HTML 5 繪圖

在 HTML 5 以前的時代,如果需要在頁面上動態(tài)的生成圖片,要么在服務(wù)器端生成位圖后輸出到 HTML 頁面上顯示;要么要么使用 Flash 等第三方工具。HTML 5 的出現(xiàn)改變了這種局面, HTML 5 新增了一個 <canvas>元素,結(jié)合 JavaScript 的繪圖 API ,能夠?qū)崿F(xiàn)強大的繪圖功能。

HTML 5 的多媒體支持

在 HTML 5 的規(guī)范以前,如果希望在網(wǎng)頁上播放視頻、音頻,通常需要借助第三方插件,比如 Flash;HTML 5 新增了<audio>、<video>兩個元素,無需使用任何插件,即可播放視頻、音頻。

其他

HTML 5 內(nèi)聯(lián)支持 SVG —— Scalable Vector Graphics——可伸縮矢量圖形

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190> 
    <polygon points="100,10 40,180 190,60 10,60 160,180"
    style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;">
</svg>
SVG - Scalable Vector Graphics
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,783評論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,828評論 18 139
  • HTML標(biāo)簽解釋大全 一、HTML標(biāo)記 標(biāo)簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,301評論 1 41
  • 春風(fēng)吹撫柳芽發(fā), 滿樹桃花圍高塔。 歸來千里尋大雁, ...
    北塔雪松閱讀 570評論 15 26
  • 日有海賊王,我有山妖王!就醬。
    祖卡閱讀 112評論 0 0