使用DIV+CSS布局時(shí),我們需要通過(guò)為div命名的方式,來(lái)區(qū)分網(wǎng)頁(yè)中不同的模塊。在HTML5中布局方式有了新的變化,HTML5中增加了新的結(jié)構(gòu)標(biāo)簽,如header標(biāo)簽、nav標(biāo)簽、article標(biāo)簽等,具體介紹如下。
1. header標(biāo)簽
HTML5中的header標(biāo)簽是一種具有引導(dǎo)和導(dǎo)航作用的結(jié)構(gòu)標(biāo)簽,該標(biāo)簽可以包含所有通常放在頁(yè)面頭部的內(nèi)容。header標(biāo)簽通常用來(lái)放置整個(gè)頁(yè)面或頁(yè)面內(nèi)的一個(gè)內(nèi)容區(qū)塊的標(biāo)題,也可以包含網(wǎng)站Logo圖片、搜索表單或者其他相關(guān)內(nèi)容。其基本語(yǔ)法格式如下:
<header>
<h1>網(wǎng)頁(yè)主題</h1>
...
</header>
在上面的語(yǔ)法格式中,<header></header>的使用方法和<div class="header"></div>類似。
注意:
在HTML網(wǎng)頁(yè)中,并不限制header標(biāo)簽的個(gè)數(shù),一個(gè)網(wǎng)頁(yè)中可以使用多個(gè)header標(biāo)簽,也可以為每一個(gè)內(nèi)容塊添加header標(biāo)簽。
2. nav標(biāo)簽
nav標(biāo)簽用于定義導(dǎo)航鏈接,是HTML5新增的標(biāo)簽,該標(biāo)簽可以將具有導(dǎo)航性質(zhì)的鏈接歸納在一個(gè)區(qū)域中,使頁(yè)面元素的語(yǔ)義更加明確。nav標(biāo)簽的使用方法和普通標(biāo)簽類似,例如下面這段示例代碼:
<nav>
<ul>
<li><a href="#">首頁(yè)</li>
<li><a href="#">公司概況</li>
<li><a href="#">產(chǎn)品展示</li>
<li><a href="#">聯(lián)系我們</li>
</ul></nav>
在上面這段代碼中,通過(guò)在nav標(biāo)簽內(nèi)部嵌套無(wú)序列表ul來(lái)搭建導(dǎo)航結(jié)構(gòu)。通常一個(gè)HTML頁(yè)面中可以包含多個(gè)nav標(biāo)簽,作為頁(yè)面整體或不同部分的導(dǎo)航。具體來(lái)說(shuō),nav標(biāo)簽可以用于以下幾種場(chǎng)合。
● 傳統(tǒng)導(dǎo)航條:目前主流網(wǎng)站上都有不同層級(jí)的導(dǎo)航條,其作用是跳轉(zhuǎn)到網(wǎng)站的其他主頁(yè)面。
● 側(cè)邊欄導(dǎo)航:目前主流博客網(wǎng)站及電商網(wǎng)站都有側(cè)邊欄導(dǎo)航,目的是將當(dāng)前文章或當(dāng)前商品頁(yè)面跳轉(zhuǎn)到其他文章或其他商品頁(yè)面。
● 頁(yè)內(nèi)導(dǎo)航:它的作用是在本頁(yè)面幾個(gè)主要的組成部分之間進(jìn)行跳轉(zhuǎn)。
● 翻頁(yè)操作:翻頁(yè)操作切換的是網(wǎng)頁(yè)的內(nèi)容部分,可以通過(guò)點(diǎn)擊“上一頁(yè)”或“下一頁(yè)”切換,也可以通過(guò)點(diǎn)擊實(shí)際的頁(yè)數(shù)跳轉(zhuǎn)到某一頁(yè)。
除了以上幾點(diǎn)以外,nav標(biāo)簽也可以用于其他導(dǎo)航鏈接組中。需要注意的是,并不是所有的鏈接組都要被放進(jìn)nav標(biāo)簽,只需要將主要的和基本的鏈接放進(jìn)nav標(biāo)簽即可。
3. footer標(biāo)簽
footer標(biāo)簽用于定義一個(gè)頁(yè)面或者區(qū)域的底部,它可以包含所有放在頁(yè)面底部的內(nèi)容。在HTML5出現(xiàn)之前,一般使用<div class="footer"></div>標(biāo)簽來(lái)定義頁(yè)面底部,而現(xiàn)在通過(guò)HTML5的footer標(biāo)簽可以輕松實(shí)現(xiàn)。與header標(biāo)簽相同,一個(gè)頁(yè)面中可以包含多個(gè)footer標(biāo)簽。
4. article標(biāo)簽
article標(biāo)簽代表文檔、頁(yè)面或者應(yīng)用程序中與上下文不相關(guān)的獨(dú)立部分,該元素經(jīng)常被用于定義一篇日志、一條新聞或用戶評(píng)論等。一個(gè)article標(biāo)簽通常有它自己的標(biāo)題(可以放在header標(biāo)簽中)和腳注(可以放在footer標(biāo)簽中),例如下面的示例代碼。
<article>
<header>
<h1>秋天的味道</h1>
<p>你想不想知道秋天的味道?它是甜、是苦、是澀...</p>
</header>
<footer>
<p>著作權(quán)歸XXXXXX公司所有...</p>
</footer></article>
需要注意的,在上面的示例代碼中還缺少主體內(nèi)容。主體內(nèi)容通常會(huì)寫在header和footer之間,通過(guò)多個(gè)section標(biāo)簽進(jìn)行劃分。一個(gè)頁(yè)面中可以出現(xiàn)多個(gè)article標(biāo)簽,并且article標(biāo)簽可以嵌套使用。
5. section標(biāo)簽
section標(biāo)簽表示一段專題性的內(nèi)容,一般會(huì)帶有標(biāo)題,主要應(yīng)用在文章的章節(jié)中。例如,新聞的詳情頁(yè)有一篇文章,該文章有自己的標(biāo)題和內(nèi)容,因此可以使用article標(biāo)簽標(biāo)注,如果該新聞內(nèi)容太長(zhǎng),分好多段落,每段都有自己的小標(biāo)題,這時(shí)候就可以使用section標(biāo)簽把段落標(biāo)注起來(lái)。在使用section標(biāo)簽時(shí),需要注意以下幾點(diǎn):
● section不僅僅是一個(gè)普通的容器標(biāo)簽。當(dāng)一個(gè)標(biāo)簽只是為了樣式化或者方便腳本使用時(shí),應(yīng)該使用div標(biāo)簽。
如果article標(biāo)簽、aside標(biāo)簽或nav標(biāo)簽更符合使用條件,那么不要使用section標(biāo)簽。
● 沒(méi)有標(biāo)題的內(nèi)容模塊不要使用section標(biāo)簽定義。
值得一提的是,在HTML5中,article標(biāo)簽可以看作是一種特殊的section標(biāo)簽,它比section標(biāo)簽更具有獨(dú)立性,即section標(biāo)簽強(qiáng)調(diào)分段或分塊,而article標(biāo)簽強(qiáng)調(diào)獨(dú)立性。如果一塊內(nèi)容相對(duì)來(lái)說(shuō)比較獨(dú)立、完整時(shí),應(yīng)該使用article標(biāo)簽;但是如果想要將一塊內(nèi)容分成多段時(shí),應(yīng)該使用section標(biāo)簽。
6. aside標(biāo)簽
aside標(biāo)簽用來(lái)定義當(dāng)前頁(yè)面或者文章的附屬信息部分,它可以包含與當(dāng)前頁(yè)面或主要內(nèi)容相關(guān)的引用、側(cè)邊欄、廣告、導(dǎo)航條等有別于主要內(nèi)容的部分。aside標(biāo)簽的用法主要分為兩種:
● 被包含在article標(biāo)簽內(nèi)作為主要內(nèi)容的附屬信息。
● 在article標(biāo)簽之外使用,作為頁(yè)面或網(wǎng)站的附屬信息部分。最常用的的使用形式是側(cè)邊欄。
好程序員web前端分享HTML5中的nav標(biāo)簽,nav標(biāo)簽全稱navigation,顧名思義,是導(dǎo)航的意思。根據(jù)HTML5的相關(guān)標(biāo)準(zhǔn)定義如下: "A section of a page that links to other pages or to parts within the page:
a section with navigation links." 中文翻譯大概意思是”頁(yè)面中的一個(gè)用來(lái)鏈接到其它頁(yè)面或者當(dāng)前頁(yè)面的區(qū)域:一個(gè)含有導(dǎo)航鏈接的區(qū)域”。 這里非常清楚的定義了nav標(biāo)簽的功能,這里和header類似并沒(méi)有指定必須是主導(dǎo)航,也可以是頁(yè)面其它部分的子導(dǎo)航。如下:
1.<h3>gbin1.com文章列表</h3>
2.<nav>
3. <ul>
4. <li><a href="#html5">HTML5文章介紹</a></li>
5. <li><a href="#css3">CSS3文章介紹</a></li>
6. <li><a href="#jquery">jQuery文章介紹</a></li>
7. <ul>
8.</nav>
在上面這個(gè)例子中,我們看到這里只是一個(gè)區(qū)域的文章導(dǎo)航,同樣也可以使用nav定義一個(gè)小型的頁(yè)面內(nèi)導(dǎo)航。 但并不是頁(yè)面上的所有鏈接團(tuán)體都需要放在nav標(biāo)簽內(nèi),它主要是由頁(yè)面的主要導(dǎo)航塊組成。例如,我們通常在網(wǎng)站的頁(yè)腳里放一組鏈接,包括服務(wù)條款、網(wǎng)站介紹、版權(quán)聲明等,這時(shí),我們通常使用footer,而不是nav。
一個(gè)頁(yè)面可可以包含多個(gè)nav標(biāo)簽,作為頁(yè)面整體或者不同部分的導(dǎo)航。在下面的例子中,有兩個(gè)nav標(biāo)簽,一個(gè)是網(wǎng)站的主體導(dǎo)航,另外一個(gè)是當(dāng)前頁(yè)面本身的輔助鏈接導(dǎo)航。
1.<h1>雨打浮萍</h1>
2.<nav>
3. <ul>
4. <li><a href="/">首頁(yè)</a></li>
5. <li><a href="#">html+css</a></li>
6. ...more...
7. </ul>
8.</nav>
9.<article>
10. <header>
11. <h1>html5語(yǔ)義化標(biāo)簽之結(jié)構(gòu)標(biāo)簽</h1>
12. <p><span>發(fā)表于</span>2011-12-22</p>
13. </header>
14. <nav>
15. <ul>
16. <li><a href="#">子導(dǎo)航</a></li>
17. <li><a href="#">子導(dǎo)航</a></li>
18. ...more...
19. </ul>
20. </nav>
21. <div>
22. <section id="public">
23. <h1>section里面仍然可以再用h1標(biāo)簽</h1>
24. <p>...more...</p>
25. </section>
26. <section id="destroy">
27. <h1>section里面仍然可以再用h1標(biāo)簽</h1>
28. <p>...more...</p>
29. </section>
30. ...more... </div>
31. <footer>
32. <p><a href="#">關(guān)于我們</a> |
33. <a href="#">友情鏈接</a> |
34. <a href="#">雜七雜八</a></p>
35. </footer>
36.</article>
37.<footer>
38. <p><small>? copyright 2011 </small></p>
</footer>
nav標(biāo)簽本身并不要求包含一個(gè)列表,它還可以包含其它內(nèi)容形式。
1.<nav>
2. <h1>Navigation</h1>
3. <p>You are on my home page. To the north lies
4. <a href="/blog">my blog</a>, from whence the sounds of battle can be heard. To the east you can see a large mountain,
5. upon which many
6. <a href="/school">school papers</a>are littered. Far up thus mountain you can spy a little figure who appears to
7. be me, desperately scribbling a
8. <a href="/school/thesis">thesis</a>.</p>
9. <p>To the west are several exits. One fun-looking exit is labeled
10. <a </a>. Another more boring-looking exit is labeled
11. <a >ISP?</a>.</p>
12. <p>To the south lies a dark and dank
13. <a href="/about">contacts page</a>. Cobwebs cover its disused entrance, and at one point you see a rat run quickly
14. out of the page.</p>
15.</nav>
錄:
HTML5新結(jié)構(gòu)標(biāo)簽
HTML5新其他標(biāo)簽
HTML5新input類型
HTML5新屬性
HTML5高級(jí)應(yīng)用
html4和html5對(duì)比:
Html4代表示例:
<div id=“header”></div>
<div id=“nav”></div>
<div class=“section”>
<div class=“article”></div>
</div>
<div id=“sideBar”></div>
<div id=“footer”></div>
Html5代碼示例:
<header></header>
<nav></nav>
<section>
<article></article>
</section>
<aside></aside>
<footer></footer>
HTML5新結(jié)構(gòu)標(biāo)簽:
<header></header>頁(yè)頭
<footer></footer>頁(yè)腳
<nav></nav>導(dǎo)航
<section></section>內(nèi)容區(qū)塊
<article></article>文章區(qū)塊
<aside></aside>article之外的信息
<hgroup></hgroup>標(biāo)題組
<figure></figure>數(shù)據(jù)組
<figcaption></figcaption>數(shù)據(jù)組標(biāo)題
<header></header>用法
<header>
<h1>網(wǎng)頁(yè)標(biāo)題</h1>
</header>
<article>
<header>
<h1>文章標(biāo)題</h1>
</header>
<p>文章正文內(nèi)容</p>
</article>
<footer></footer>用法
<article>
文章主體
<footer>
文章腳注
</footer>
</article>
<footer>
<ul>
<li>站內(nèi)鏈接</li><li>站內(nèi)鏈接</li><li>站內(nèi)鏈接</li>
</ul>
</footer>
<nav></nav>用法
<nav>
<ul>
<li><a href=“#”>鏈接內(nèi)容</a></li>
<li><a href=“#”>鏈接內(nèi)容</a></li>
<li><a href=“#”>鏈接內(nèi)容</a></li>
</ul>
</nav>
<section></section>用法
<section>
<h1>標(biāo)題</h1>
<p>內(nèi)容</p>
</section>
<article></article>用法
<article>
<header>
<h1></h1>
</header>
<footer>
<ul><li></li></ul>
</footer>
</article>
<aside></aside>用法
<article>
<h1>文章標(biāo)題</h1>
<p>內(nèi)容</p>
<aside>相關(guān)內(nèi)容</aside>
</article>
<hgroup></hgroup>用法
<article>
<header>
<hgroup>
<h1>主標(biāo)題</h1>
<h2>子標(biāo)題</h2>
</hgroup>
</header>
<p>正文</p>
</article>
<figure></figure>用法
<figure>
<figcaption>標(biāo)題</figcaption>
<img src=“a.jpg”>
<img src=“b.jpg”>
<img src=“c.jpg”>
</figure>
新元素標(biāo)簽追加樣式:
說(shuō)明:因?yàn)楹芏酁g覽器還未支持html5新元素,須對(duì)新元素追加如下說(shuō)明
//追加block說(shuō)明
article,aside,dialog,figure,footer,header,legend,nav,section{display:block}
另:ie8前的瀏覽器不支持css方法追加,須用如下方法:
<script>
document.createElement(“header”);
document.createElement(“nav”);
document.createElement(“article”);
document.createElement(“footer”);
</script>
HTML5新其他標(biāo)簽:
<video></video>視頻
<audio></audio>音頻
<embed></embed>多媒體
<mark></mark>標(biāo)記
<time></time>時(shí)間
<wbr></wbr>軟換行
<canvas></canvas>繪圖
<video></video>用法
<video src=“test.ogg" controls="controls"></video>
<audio></audio>用法
<audio src=“test.wav"></audio>
<embed></embed>用法
<embed src=“test.swf"></embed>
<mark></mark>用法
<p>謝謝您光臨本站 <mark>段先生</mark>。</p>
<time></time>用法
<p>早上 <time>9:00</time> 上班。</p>
<p>我在 <time datetime="2016-02-14">情人節(jié)</time> 有個(gè)約會(huì)。</p>
<wbr></wbr>用法
<p>學(xué)好網(wǎng)頁(yè)設(shè)計(jì)必須要學(xué)會(huì)的軟件有:
<wbr />photoshop<wbr />dreamweaver<wbr />flash。
</p>
<canvas></canvas>用法
語(yǔ)法:
<canvas></canvas>
注:canvas標(biāo)簽只是圖形容器,您必須使用腳本來(lái)繪制圖形。
使用范例:
<canvas id="myCanvas"></canvas>
<script>
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>
HTML5新input類型:
<input type=“email” />e-mail地址文本框
<input type=“url” />url地址文本框
<input type=“number” />數(shù)值文本框
<input type=“range” />數(shù)值范圍文本框
日期相關(guān)類型:
<input type=“date” />
<input type=“month” />
<input type=“week” />
<input type=“time” />
<input type=“datetime” />
<input type=“datetime-local” />
HTML5新屬性:
表單相關(guān)屬性
鏈接相關(guān)屬性
其他屬性
全局屬性
表單相關(guān)屬性
autocomplete屬性
autofocus屬性 自動(dòng)獲得焦點(diǎn)屬性
placeholder屬性 提示信息屬性
form屬性 表單聲明屬性
required屬性 內(nèi)容檢驗(yàn)屬性
鏈接相關(guān)屬性
<a><area>新加media屬性
<area>新加hreflang屬性
<link>新加sizes屬性
<base>新加target屬性
其他屬性
<ol>新加reversed屬性
<meta>新加charset屬性
<menu>新加type和label屬性
<style>新加scoped屬性
<script>新加async屬性
<iframe>新加sandbox,seamless,srcdoc
全局屬性
可編輯內(nèi)容屬性contentEditable
頁(yè)面可編輯屬性designMode
隱藏元素屬性hidden
拼寫檢查屬性spellcheck
焦點(diǎn)獲取屬性tabindex
HTML5高級(jí)應(yīng)用
繪圖應(yīng)用canvas
多媒體控制
表單驗(yàn)證
繪圖應(yīng)用canvas
用canvas繪制圖形
用canvas繪制漸變色
用canvas繪制變形圖形
繪制圖像
動(dòng)畫效果
用canvas繪制圖形——繪制矩形
獲取canvas元素
獲取2d圖形(獲取上下文)
設(shè)定繪圖樣式fillStyle,strokeStyle
設(shè)定線寬lineWidth
用canvas繪制圖形——繪制路徑
獲取canvas元素
獲取2d圖形(獲取上下文)
創(chuàng)建路徑beginPath()
創(chuàng)建圓形路徑arc(x,y,radius,startAngle,endAngle,anticlockwise)
關(guān)閉路徑closePath()
用canvas繪制圖形——繪制圓形
var canvas = document.getElementById("mycanvas");
var ctx = canvas.getContext("2d");
ctx.arc(150,100,100,0,(Math.PI/180)*360,true);
ctx.fillStyle="rgba(255,0,0,0.4)";
ctx.fill();
用canvas繪制圖形——繪制三角
方法moveTo(x,y),lineTo(x,y):
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
context.strokeStyle="red";
context.moveTo(0,0);
context.lineTo(10,100);
context.lineTo(130,100);
context.lineTo(0,0);
context.stroke();
用canvas繪制圖形——繪制弧線
方法bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y))
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
context.strokeStyle="red";
context.moveTo(0,0);
context.bezierCurveTo(10,0,100,0,100,100);
context.stroke();
用canvas繪制漸變色——繪制線性漸變
方法createLinearGradient(xStart,yStart,xEnd,yEnd);
方法addColorStop(offset,color);
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
var objLg = context.createLinearGradient(0,100,500,100);
objLg.addColorStop(0,"red");
objLg.addColorStop(0.5,"green");
objLg.addColorStop(1,"blue");
context.fillStyle=objLg;
context.fillRect(0,0,500,300);
用canvas繪制漸變色——繪制放射漸變
方法createRadialGradient(x0,y0,r0,x1,y1,r1);
方法addColorStop(offset,color);
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
var rg = context.createRadialGradient(50,50,0,50,50,50);
context.createR
rg.addColorStop(0,"red");
rg.addColorStop(1,"green");
context.fillStyle=rg;
context.fillRect(0,0,150,150);
用canvas繪制變形圖形——平移
方法:translate(x,y);
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
context.translate(100,150);
context.fillStyle="red";
context.fillRect(0,0,200,200);
用canvas繪制變形圖形——縮放
方法:scale(x,y);
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
context.scale(2,2);
context.fillStyle="red";
context.fillRect(0,0,10,10);
用canvas繪制變形圖形——旋轉(zhuǎn)
方法:rotate (angle);
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
context.rotate(Math.PI/180*5);
context.fillStyle="red";
context.fillRect(0,0,100,100);
繪制圖像
方法:drawImage(image,x,y,w,h)
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
var image = new Image();
image.src="img.jpg";
context.drawImage(image,0,0,500,300);
圖像平鋪
方法:createPattern(image,type)
var obj = document.getElementById("mycanvas");
var context = obj.getContext("2d");
var img = new Image();
img.src="img.jpg";
var ptrn = context.createPattern(img,"repeat");
context.fillStyle=ptrn;
context.fillRect(0,0,2000,2000);
請(qǐng)私信我回復(fù)“666”,為嚴(yán)哥打Call~,還有更多驚喜哦~
....................................................................
我的微信公眾號(hào):UI嚴(yán)選 —越努力,越幸運(yùn)
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。