使用DIV+CSS布局时,我们需要通过为div命名的方式,来区分网页中不同的模块。在HTML5中布局方式有了新的变化,HTML5中增加了新的结构标签,如header标签、nav标签、article标签等,具体介绍如下。
1. header标签
HTML5中的header标签是一种具有引导和导航作用的结构标签,该标签可以包含所有通常放在页面头部的内容。header标签通常用来放置整个页面或页面内的一个内容区块的标题,也可以包含网站Logo图片、搜索表单或者其他相关内容。其基本语法格式如下:
<header>
<h1>网页主题</h1>
...
</header>
在上面的语法格式中,<header></header>的使用方法和<div class="header"></div>类似。
注意:
在HTML网页中,并不限制header标签的个数,一个网页中可以使用多个header标签,也可以为每一个内容块添加header标签。
2. nav标签
nav标签用于定义导航链接,是HTML5新增的标签,该标签可以将具有导航性质的链接归纳在一个区域中,使页面元素的语义更加明确。nav标签的使用方法和普通标签类似,例如下面这段示例代码:
<nav>
<ul>
<li><a href="#">首页</li>
<li><a href="#">公司概况</li>
<li><a href="#">产品展示</li>
<li><a href="#">联系我们</li>
</ul></nav>
在上面这段代码中,通过在nav标签内部嵌套无序列表ul来搭建导航结构。通常一个HTML页面中可以包含多个nav标签,作为页面整体或不同部分的导航。具体来说,nav标签可以用于以下几种场合。
● 传统导航条:目前主流网站上都有不同层级的导航条,其作用是跳转到网站的其他主页面。
● 侧边栏导航:目前主流博客网站及电商网站都有侧边栏导航,目的是将当前文章或当前商品页面跳转到其他文章或其他商品页面。
● 页内导航:它的作用是在本页面几个主要的组成部分之间进行跳转。
● 翻页操作:翻页操作切换的是网页的内容部分,可以通过点击“上一页”或“下一页”切换,也可以通过点击实际的页数跳转到某一页。
除了以上几点以外,nav标签也可以用于其他导航链接组中。需要注意的是,并不是所有的链接组都要被放进nav标签,只需要将主要的和基本的链接放进nav标签即可。
3. footer标签
footer标签用于定义一个页面或者区域的底部,它可以包含所有放在页面底部的内容。在HTML5出现之前,一般使用<div class="footer"></div>标签来定义页面底部,而现在通过HTML5的footer标签可以轻松实现。与header标签相同,一个页面中可以包含多个footer标签。
4. article标签
article标签代表文档、页面或者应用程序中与上下文不相关的独立部分,该元素经常被用于定义一篇日志、一条新闻或用户评论等。一个article标签通常有它自己的标题(可以放在header标签中)和脚注(可以放在footer标签中),例如下面的示例代码。
<article>
<header>
<h1>秋天的味道</h1>
<p>你想不想知道秋天的味道?它是甜、是苦、是涩...</p>
</header>
<footer>
<p>著作权归XXXXXX公司所有...</p>
</footer></article>
需要注意的,在上面的示例代码中还缺少主体内容。主体内容通常会写在header和footer之间,通过多个section标签进行划分。一个页面中可以出现多个article标签,并且article标签可以嵌套使用。
5. section标签
section标签表示一段专题性的内容,一般会带有标题,主要应用在文章的章节中。例如,新闻的详情页有一篇文章,该文章有自己的标题和内容,因此可以使用article标签标注,如果该新闻内容太长,分好多段落,每段都有自己的小标题,这时候就可以使用section标签把段落标注起来。在使用section标签时,需要注意以下几点:
● section不仅仅是一个普通的容器标签。当一个标签只是为了样式化或者方便脚本使用时,应该使用div标签。
如果article标签、aside标签或nav标签更符合使用条件,那么不要使用section标签。
● 没有标题的内容模块不要使用section标签定义。
值得一提的是,在HTML5中,article标签可以看作是一种特殊的section标签,它比section标签更具有独立性,即section标签强调分段或分块,而article标签强调独立性。如果一块内容相对来说比较独立、完整时,应该使用article标签;但是如果想要将一块内容分成多段时,应该使用section标签。
6. aside标签
aside标签用来定义当前页面或者文章的附属信息部分,它可以包含与当前页面或主要内容相关的引用、侧边栏、广告、导航条等有别于主要内容的部分。aside标签的用法主要分为两种:
● 被包含在article标签内作为主要内容的附属信息。
● 在article标签之外使用,作为页面或网站的附属信息部分。最常用的的使用形式是侧边栏。
好程序员web前端分享HTML5中的nav标签,nav标签全称navigation,顾名思义,是导航的意思。根据HTML5的相关标准定义如下: "A section of a page that links to other pages or to parts within the page:
a section with navigation links." 中文翻译大概意思是”页面中的一个用来链接到其它页面或者当前页面的区域:一个含有导航链接的区域”。 这里非常清楚的定义了nav标签的功能,这里和header类似并没有指定必须是主导航,也可以是页面其它部分的子导航。如下:
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>
在上面这个例子中,我们看到这里只是一个区域的文章导航,同样也可以使用nav定义一个小型的页面内导航。 但并不是页面上的所有链接团体都需要放在nav标签内,它主要是由页面的主要导航块组成。例如,我们通常在网站的页脚里放一组链接,包括服务条款、网站介绍、版权声明等,这时,我们通常使用footer,而不是nav。
一个页面可可以包含多个nav标签,作为页面整体或者不同部分的导航。在下面的例子中,有两个nav标签,一个是网站的主体导航,另外一个是当前页面本身的辅助链接导航。
1.<h1>雨打浮萍</h1>
2.<nav>
3. <ul>
4. <li><a href="/">首页</a></li>
5. <li><a href="#">html+css</a></li>
6. ...more...
7. </ul>
8.</nav>
9.<article>
10. <header>
11. <h1>html5语义化标签之结构标签</h1>
12. <p><span>发表于</span>2011-12-22</p>
13. </header>
14. <nav>
15. <ul>
16. <li><a href="#">子导航</a></li>
17. <li><a href="#">子导航</a></li>
18. ...more...
19. </ul>
20. </nav>
21. <div>
22. <section id="public">
23. <h1>section里面仍然可以再用h1标签</h1>
24. <p>...more...</p>
25. </section>
26. <section id="destroy">
27. <h1>section里面仍然可以再用h1标签</h1>
28. <p>...more...</p>
29. </section>
30. ...more... </div>
31. <footer>
32. <p><a href="#">关于我们</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标签本身并不要求包含一个列表,它还可以包含其它内容形式。
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 href="http://games.example.com/">"games"</a>. Another more boring-looking exit is labeled
11. <a href="http://isp.example.net/">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新结构标签
HTML5新其他标签
HTML5新input类型
HTML5新属性
HTML5高级应用
html4和html5对比:
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新结构标签:
<header></header>页头
<footer></footer>页脚
<nav></nav>导航
<section></section>内容区块
<article></article>文章区块
<aside></aside>article之外的信息
<hgroup></hgroup>标题组
<figure></figure>数据组
<figcaption></figcaption>数据组标题
<header></header>用法
<header>
<h1>网页标题</h1>
</header>
<article>
<header>
<h1>文章标题</h1>
</header>
<p>文章正文内容</p>
</article>
<footer></footer>用法
<article>
文章主体
<footer>
文章脚注
</footer>
</article>
<footer>
<ul>
<li>站内链接</li><li>站内链接</li><li>站内链接</li>
</ul>
</footer>
<nav></nav>用法
<nav>
<ul>
<li><a href=“#”>链接内容</a></li>
<li><a href=“#”>链接内容</a></li>
<li><a href=“#”>链接内容</a></li>
</ul>
</nav>
<section></section>用法
<section>
<h1>标题</h1>
<p>内容</p>
</section>
<article></article>用法
<article>
<header>
<h1></h1>
</header>
<footer>
<ul><li></li></ul>
</footer>
</article>
<aside></aside>用法
<article>
<h1>文章标题</h1>
<p>内容</p>
<aside>相关内容</aside>
</article>
<hgroup></hgroup>用法
<article>
<header>
<hgroup>
<h1>主标题</h1>
<h2>子标题</h2>
</hgroup>
</header>
<p>正文</p>
</article>
<figure></figure>用法
<figure>
<figcaption>标题</figcaption>
<img src=“a.jpg”>
<img src=“b.jpg”>
<img src=“c.jpg”>
</figure>
新元素标签追加样式:
说明:因为很多浏览器还未支持html5新元素,须对新元素追加如下说明
//追加block说明
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新其他标签:
<video></video>视频
<audio></audio>音频
<embed></embed>多媒体
<mark></mark>标记
<time></time>时间
<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">情人节</time> 有个约会。</p>
<wbr></wbr>用法
<p>学好网页设计必须要学会的软件有:
<wbr />photoshop<wbr />dreamweaver<wbr />flash。
</p>
<canvas></canvas>用法
语法:
<canvas></canvas>
注:canvas标签只是图形容器,您必须使用脚本来绘制图形。
使用范例:
<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” />数值文本框
<input type=“range” />数值范围文本框
日期相关类型:
<input type=“date” />
<input type=“month” />
<input type=“week” />
<input type=“time” />
<input type=“datetime” />
<input type=“datetime-local” />
HTML5新属性:
表单相关属性
链接相关属性
其他属性
全局属性
表单相关属性
autocomplete属性
autofocus属性 自动获得焦点属性
placeholder属性 提示信息属性
form属性 表单声明属性
required属性 内容检验属性
链接相关属性
<a><area>新加media属性
<area>新加hreflang属性
<link>新加sizes属性
<base>新加target属性
其他属性
<ol>新加reversed属性
<meta>新加charset属性
<menu>新加type和label属性
<style>新加scoped属性
<script>新加async属性
<iframe>新加sandbox,seamless,srcdoc
全局属性
可编辑内容属性contentEditable
页面可编辑属性designMode
隐藏元素属性hidden
拼写检查属性spellcheck
焦点获取属性tabindex
HTML5高级应用
绘图应用canvas
多媒体控制
表单验证
绘图应用canvas
用canvas绘制图形
用canvas绘制渐变色
用canvas绘制变形图形
绘制图像
动画效果
用canvas绘制图形——绘制矩形
获取canvas元素
获取2d图形(获取上下文)
设定绘图样式fillStyle,strokeStyle
设定线宽lineWidth
用canvas绘制图形——绘制路径
获取canvas元素
获取2d图形(获取上下文)
创建路径beginPath()
创建圆形路径arc(x,y,radius,startAngle,endAngle,anticlockwise)
关闭路径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绘制变形图形——旋转
方法: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);
请私信我回复“666”,为严哥打Call~,还有更多惊喜哦~
....................................................................
我的微信公众号:UI严选 —越努力,越幸运
*请认真填写需求信息,我们会在24小时内与您取得联系。