一、HTML5常用元素和属性
1.HTML5保留的常用元素
1.1 基本元素
1.2 文本格式化
<body>
<span><b>加粗文本</b></span><br />
<span><i>斜体文本</i></span><br />
<span><b><i>粗斜体文本</i></b></span><br />
<span><em>被强调的文本</em></span><br />
<p><strong>加粗文本</strong></p>
<small><span>小号字体文本</span></small><br />
<div>普通文本<sup>上标文本</sup></div>
<span>普通文本<strong><sub>下标加粗文本</sub></strong></span><br />
<!-- 指定文本从左向右(正常情况)排列 -->
<bdo dir="ltr">从左向右排列的文本</bdo><br />
<!-- 指定文本从右向左排列 -->
<bdo dir="rtl">从右向左排列的文本</bdo><br />
| ![]() |
1.3 语义相关
<abbr> ·属性:title | 表示一个缩写 | <!-- 使用abbr定义缩写 -->
<abbr title="Java教育">fkjava</abbr>。
|
<address> | | <!-- 使用address定义地址 -->
<address>广州市天河区车陂大岗路4号沣宏大厦3006-3011</address>
|
<blockquote> | 定义一段很长的引用文本 | <!-- 使用blockquote表示一段长的引用文本。 -->
<blockquote>
锦瑟无端五十弦,一弦一柱思华年。<br>
庄生晓梦迷蝴蝶,望帝春心托杜鹃。<br>
沧海月明珠有泪,蓝田日暖玉生烟。<br>
此情可待成追忆,只是当时已惘然。
</blockquote>
|
<cite> | 作品的标题 | <p>
<cite>《芙蓉镇》</cite>、<cite>《蓝风筝》</cite>是国内导演拍摄的最有思考深度的两部电影。</p>
<p>
|
<code> | 计算机代码 | <code>
public class Cat<br>
{<br>
private int name = "garfield";<br>
}<br>
</code>
|
<dfn> | 定义专业术语 | <!-- 使用dfn定义专业术语 -->
<dfn>HTML</dfn>是一种广为人知的标记语言。
|
<del> | 删除的文本。 属性: cite:该URL对应的文本解释了删除原因。 datetime:删除的日期。 | <!-- 使用del和ins表示修订 -->
<p>Android是一个<del>开发</del><ins>开放</ins>式的手机、平板电脑操作系统</p>
|
<ins>:定义文档中插入的文本 | 插入的文本。 属性: cite:该URL对应的文本解释了插入原因。 datetime:插入的日期。 | <!-- 使用del和ins表示修订 -->
<p>Android是一个<del>开发</del><ins>开放</ins>式的手机、平板电脑操作系统</p>
|
<pre> | 该元素包含的文本以i经预格式化了。 | <!-- pre元素包含的内容是“预格式化”文本。 -->
<pre>
public class Cat
{
private int name = "garfield";
}
</pre>
|
<samp> | 定义示范文本内容 | <!-- 使用samp定义范例文本 -->
<samp>
我在阅读XXX图书的第X章、第X节时,遇到一个XXX问题,错误提示信息是:XXX。
</samp>
|
<kbd> | 定义键盘文本 | <p>
可通过输入如下命令:<br/>
<kbd>list -l</kbd><br/>
在Linux的Shell窗口查看当前目录下所有文件、目录的详细信息。</p>
<p>
|
<var> | 表示一个变量。 | <!-- 使用var定义变量 -->
<var>i</var>、<var>j</var>、<var>k</var>通常用于作为循环计数器变量。
|
<q> | 定义一段短的引用文本。 | <!-- 使用q表示一段短的引用文本。 -->
<p>Java的精神是<q cite="http://www.fkjava.org">源自梦想,技术成就辉煌</q>
这也是所有Java程序员的精神。</p>
|
| | |
1.4 超链接和锚点
<body>
<!-- 在本窗口打开另一个资源 -->
<a href="http://www.crazyit.org"><b>Java联盟</b></a><br />
<!-- 在新窗口中打开另一个资源 -->
<a href="http://www.crazyit.org"
target="_blank"><em>Java联盟</em></a><br />
<!-- 为图像增加超链接 -->
<a href="http://www.crazyit.org"><img src="img/logo.jpg"
alt="Java联盟"/></a><br />
<!-- 基于相对路径指定另一个资源 -->
<a href="text.html">文本格式化标签</a><br />
</body>
1.5 列表相关
<!-- 定义无序列表 -->
<ul>
<li>Java讲义</li>
<li>轻量级Java EE企业应用实战</li>
<li>Android讲义</li>
</ul>
<!-- 定义有序列表 -->
<ol start="2" type="I" reversed>
<li>Java讲义</li>
<li>轻量级Java EE企业应用实战</li>
<li>Android讲义</li>
</ol>
<!-- 定义列表 -->
<dl>
<!-- 定义标题列表项-->
<dt>Java体系</dt>
<dd>Java讲义</dd>
<dd>轻量级Java EE企业应用实战</dd>
<dd>Android讲义</dd>
<!-- 定义标题列表项-->
<dt>作者其他图书</dt>
<dd>Struts 2.1权威指南</dd>
<dd>基于J2EE的Ajax宝典</dd>
</dl>
1.6 图像相关
<img src="images/logo.jpg" alt="Java的Logo" /><br />
<!-- 定义图片,指定高、宽 -->
<img src="images/logo.jpg" width="300" height="120"
alt="Java的Logo" /><br />
<!-- 定义图片,使用指定的图片映射 -->
<img src="images/logo.jpg" width="300"
height="120" border="0" usemap="#test"
alt="Java的Logo" /><br />
<!-- 定义图片映射 -->
<map name="test" id="test">
<!-- 为该图片映射定义2个区域 -->
<area shape="circle" coords="57,55,25"
href="http://www.fkjava.org" alt="fkjava.org" />
<area shape="poly" coords="188,28,185,50,200,74,224,72,246,51"
href="http://www.crazyit.org" alt="crazyit.org" />
</map>
1.7 表格相关
<!-- 设置表格背景色为黑色,单元格之间的间距为1px
通过设置背景色为黑色可以实现边框效果
-->
<table style="background-color:black; border-collapse:separate;border-spacing:1px;">
<caption><b>Java体系图书</b></caption>
<!-- 定义所有列的背景色都是白色 -->
<colgroup style="background-color:white;">
<!-- 设置第一列宽160px -->
<col style="width:160px"/>
<!-- 定义横跨两列,设置这两列各宽100px -->
<col span="2" style="width:100px"/>
</colgroup>
<thead>
<tr>
<th>书名</th>
<th>作者</th>
<th>价格</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3" style="text-align:right">现总计:2本图书</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>Java讲义</td>
<td>李刚</td>
<td>109</td>
</tr>
<tr>
<td>轻量级Java EE企业应用实战</td>
<td>李刚</td>
<td>89</td>
</tr>
</tbody>
</table>
| ![]() |
1.8 框架相关
2.HTML5新增的通用属性
2.1 contentEditable
<div contentEditable="true" style="width:500px;border:1px solid black">
Java讲义
<!-- 该元素的父元素有contentEditable="true",因此该表格也是可编辑的 -->
<table style="width:420px;border-collapse:collapse" border="1">
<tr>
<td>Java讲义</td>
<td>Android讲义</td>
</tr>
<tr>
<td>轻量级Java EE企业应用实战</td>
<td>经典Java EE企业应用实战</td>
</tr>
</table>
</div>
<hr/>
<!-- 这个表格默认是不可编辑的
双击之后该表格变为可编辑状态 -->
<table id="target" οndblclick="this.contentEditable=true;"
style="width:420px;border-collapse:collapse" border="1">
<tr>
<td>Java</td>
<td>Ruby</td>
</tr>
<tr>
<td>C/C++</td>
<td>Python</td>
</tr>
</table>
2.2 designMode
<body οndblclick="document.designMode='on';">
<div>aaaa</div>
<table style="width:420px;border-collapse:collapse" border="1">
<tr>
<td>Java讲义</td>
<td>Android讲义</td>
</tr>
<tr>
<td>轻量级Java EE企业应用实战</td>
<td>经典Java EE企业应用实战</td>
</tr>
</table>
</body>
![]()
2.3 hidden
<div id="target" hidden="true" style="height:80px">
文字内容
</div>
<button οnclick="var target=document.getElementById('target');
target.hidden=!target.hidden;">显示/隐藏</button>
2.4 spellcheck
<!-- 指定执行拼写检查 -->
<textarea spelllcheck="true" rows="3" cols="40"> </textarea>
3.HTML5新增的常用元素
3.1 文档结构
<body>
<article>
<!-- 帖子的“头部” -->
<header>
<hgroup>
<h1>学习Android,必须先学习Java吗</h1>
<h4>你猜啊</h4>
</hgroup>
<div>作者:crazystu</div>
</header>
<p> 学习Android,必须先学习Java吗? </p>
<!-- 帖子的“回复”部分,用section元素表示 -->
<section>
<!-- 每个article代表一个回复 -->
<article>
<!-- 回复的头部 -->
<header>
<h2>还是得学习Java</h2>
<div>作者:kongyeeku</div>
</header>
<p>虽然Android不一定要使用Java开发 </p>
</article>
<!-- 每个article代表一个回复 -->
<article>
<!-- 回复的头部 -->
<header>
<h2>Java是基础</h2>
<div>作者:kuan008</div>
</header>
<p>Java是基础,学好Java再去学习Android事半功倍。</p>
</article>
</section>
<!-- 帖子的“脚注” -->
<footer>
以上帖子和回复只代表其个人观点,不代表Java联盟的观点或立场
</footer>
</article>
</body>
| ![]() |
<body>
<article>
<!-- 帖子的“头部” -->
<header>
<h1>学习Android,必须先学习Java吗</h1>
<div>作者:crazystu</div>
</header>
<p>
学习Android,必须先学习Java吗?
Android上的应用程序只能用Java编写吗?可以用C++吗?</p>
<!-- 帖子的“回复”部分,用section元素表示 -->
<section>
<!-- 每个article代表一个回复 -->
<article>
<!-- 回复的头部 -->
<header>
<h2>还是得学习Java</h2>
<div>作者:kongyeeku</div>
</header>
<p>虽然Android不一定要使用Java开发,还可以选择JavaScript、<br/>
或NDK开发,但Java毕竟是Android主要的开发语言,<br/>
因此建议学习Android之前还是先学习Java</p>
</article>
<!-- 每个article代表一个回复 -->
<article>
<!-- 回复的头部 -->
<header>
<h2>Java是基础</h2>
<div>作者:kuan008</div>
</header>
<p>Java是基础,学好Java再去学习Android事半功倍。</p>
</article>
</section>
<!-- 帖子的“脚注” -->
<footer>
以上帖子和回复只代表其个人观点,不代表Java联盟的观点或立场
</footer>
<!-- 该aside放在article内部,将作为该文章的“边栏”信息 -->
<aside>
<h3>关于楼主</h3>
<section>
<div>用户组: 编程摸索者</div>
<div>注册日期: 2009-7-27</div>
<div>上次访问: 2012-1-3 20:02</div>
<div>最后发表: 2012-1-1 17:38</div>
<div>发帖数级别: 小试牛刀</div>
<div>阅读权限: 30</div>
</section>
</aside>
</article>
<!-- 该aside放在body内部,将作为整个HTML文档的“边栏”信息 -->
<aside>
<h3>页面导航</h3>
<nav>
<ul>
<li><a href="#">查看相关内容</a></li>
<li><a href="http://www.crazyit.org">返回首页</a></li>
<li><a href="http://www.crazyit.org/forum-63-1.html">返回本版</a></li>
</ul>
</nav>
</aside>
</body>
| ![]() |
<body>
<figure style="border:2px solid black;padding:5px;width:500px">
<figcaption><b>Java体系图书</b></figcaption>
<img src="images/java.png" alt="Java讲义"/>
<img src="images/android.png" alt="Android讲义"/>
<img src="images/ee.png" alt="轻量级Java EE企业应用实战"/>
</figure>
</body>
| ![]() |
3.2 语义相关
mark:需要关注
<body>
<article>
<header>
<h2>疯狂软件即将引入<mark>HTML 5</mark>相关课程</h2>
</header>
<p>
<mark>HTML 5</mark>是下一代的HTML规范,<br/>
<mark>HTML 5</mark>即将把前端开发者从繁重的开发中释放出来。<br/>
为了把握技术潮流的脉搏,疯狂软件教育计划在
<time datetime="2012-04-01">2012年4月</time>
引入<mark>HTML 5</mark>的相关课程。<br/>
上课时间是<time datetime="09:00">早上9点</time>
到<time datetime="17:30">下午5点半</time>。<br/>
将于<time datetime="2012-01-30T09:00">正月初八</time>
开始上班,也就是<time>2012-01-30</time>。
</p>
</article>
</body>
| ![]() |
目前只有Chrome支持 | |
<body>
<details>
<summary>芙蓉镇</summary>
《芙蓉镇》是一部极好的电影,每个中国人都不应该错过。
</details>
</body>
| ![]() |
| |
3.3 进度条
| |
<body>
当前行车速度是:
<meter value="120" min="0" max="220" low="0" high="160"> 120</meter>
千米/小时。<br/>
任务完成比:
<progress value="30" max="100">30/100</progress>
</body>
| ![]() |
<meter> value:默认0 min:默认0 max:默认1 low: high: optimum:最佳值 | <progress> max value |
4.HTML5头部和元信息
5.HTML5拖放的API
<div id="source" style="width:80px;height:80px;
border:1px solid black; background-color: #bbb;" draggable="true">
软件教育
</div>
<script type="text/javascript">
var source = document.getElementById("source");
source.ondragstart = function(evt)
{
// 让拖动操作携带数据
evt.dataTransfer.setData("text/plain" , "www.fkyva.org");
}
document.ondragover = function(evt)
{
// 取消事件的默认行为
return false;
}
document.ondrop = function(evt)
{
source.style.position = "absolute";
source.style.left = evt.pageX + "px";
source.style.top = evt.pageY + "px";
// 取消事件的默认行为
return false;
}
</script>
ondragstart | 开始拖动 |
ondrag | 拖动过程 |
ondragend | 拖动结束 |
ondragenter | 被拖动的元素进入本元素 |
ondragover | 被拖动的元素进入本元素后,被拖动时触发 |
ondragleave | 被拖动的元素离开本元素 |
ondrop | 其他元素被放到了本元素中时 |
| |
DataTransfer对象
dataTransfer.dropEffect | none,copy,link,move |
dataTransfer.effectAllowed | none,copy,copyLink,copyMove,link,linkMove,move,all,uninitialized |
dataTransfer.items | |
dataTransfer.setDragImage | |
dataTransfer.addElement(element) | |
dataTransfer.types | |
dataTransfer.getData(format) | |
dataTransfer.setData(format) | |
dataTransfer.clearData([format]) | |
| |
<!DOCTYPE html>
<html>
<head>
<meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" />
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title> 通过拖放实现添加、删除 </title>
<style type="text/css">
div>div{
display: inline-block;
padding: 10px;
background-color: #aaa;
margin: 3px;
}
</style>
</head>
<body>
<div style="width:600px;border:1px solid black;">
<h2>可将喜欢的项目拖入收藏夹</h2>
<div draggable="true" οndragstart="dsHandler(event);">Java联盟</div>
<div draggable="true" οndragstart="dsHandler(event);">软件教育</div>
<div draggable="true" οndragstart="dsHandler(event);">关于我们</div>
<div draggable="true" οndragstart="dsHandler(event);">疯狂成员</div>
</div>
<div id="dest"
style="width:400px;height:260px;
border:1px solid black;float:left;">
<h2 οndragleave="return false;">收藏夹</h2>
</div>
<img id="gb" draggable="false" src="garbagebin.png"
alt="垃圾桶" style="float:left;"/>
<script type="text/javascript">
var dest = document.getElementById("dest");
var imgIcon = document.createElement("img");
imgIcon.src = "my.gif";
// 开始拖动事件的事件监听器
var dsHandler = function(evt)
{ //设置拖放图标
var dt=evt.dataTransfer;
dt.effectAllowed='copy';//move,copy,link,none
dt.setDragImage(imgIcon,0,0);
// 将被拖动元素的innerHTML属性值设置成被拖动的数据
evt.dataTransfer.setData("text/plain" , "<item>" + evt.target.innerHTML);
}
dest.ondrop = function(evt)
{
var text = evt.dataTransfer.getData("text/plain");
// 如果该text以<item>开头
if (text.indexOf("<item>") == 0)
{
// 创建一个新的div元素
var newEle = document.createElement("div");
// 以当前时间为该元素生成一个唯一的ID
newEle.id = new Date().getUTCMilliseconds();
// 该元素内容为“拖”过来的数据
newEle.innerHTML = text.substring(6);
// 设置该元素允许拖动
newEle.draggable="true";
// 为该元素的开始拖动事件指定监听器
newEle.ondragstart = function(evt)
{
// 将被拖动元素的id属性值设置成被拖动的数据
evt.dataTransfer.setData("text/plain"
, "<remove>" + newEle.id);
}
dest.appendChild(newEle);
}
}
// 当把被拖动元素“放”到垃圾桶上时激发该方法。
document.getElementById("gb").ondrop = function(evt)
{
var id = evt.dataTransfer.getData("text/plain");
// 如果id以<remove>开头
if (id.indexOf("<remove>") == 0)
{
// 根据“拖”过来的数据,获取被拖动的元素
var target = document.getElementById(id.substring(8));
// 删除被拖动的元素
dest.removeChild(target);
}
}
document.ondragover = function(evt)
{
// 取消事件的默认行为
return false;
}
document.ondrop = function(evt)
{
// 取消事件的默认行为
return false;
}
</script>
</body>
</html>
| ![]() |
| |
二、HTML5纲要
1.查看纲要
1.1 Chrome扩展
http://code.google.com/p/h5o/
1.2 在线HTML纲要生成器
http://gsnedders.html5.org/outliner/
1.3 Opera扩展
https://addons.opera.com/zh-cn/extensions/details/html5-outliner/?display=en
2.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- saved from url=(0014)about:internet -->
<title>HTML5 Feature Detection</title>
<script src="modernizr-2.0.6.js"></script>
</head>
<body>
<article>
<header>
<hgroup>
<h1>H1</h1>
<h4>H2</h4>
</hgroup>
<p>1235</p>
</header>
<div>
<script>
var result = document.getElementById("result");
if (Modernizr.draganddrop) {
result.innerHtml("Rejoice! Your browser supports drag-and-drop.");
}
else {
result.innerHtml("Sadly, your feeble browser does not support drag-and-drop.");
}
</script>
<span id="result"> </span>
</div>
<div>
<figure>
<img src="00007.jpg" alt="123">
<figcaption>
5-5
</figcaption>
</figure>
</div>
<div>
<p>Hello Chritmas</p>
<aside>
<hr/>
<img src="00007.jpg" alt="123">
ASIDE
<hr/>
</aside>
</div>
<div>
<aside>
<nav>
<h2>Article</h2>
<ul>
<li>CET-1</li>
<li>CET-3</li>
<li>CET-4</li>
</ul>
</nav>
<section>
<h2>Articles</h2>
<p>Desription</p>
</section>
</aside>
</div>
<div>
<details>
<summary>#1</summary>
<p>12345687654312456753432</p>
</details>
</div>
<div>
<time datetime="2013-12-25">April 21<sup>st</sup>.</time>
</div>
<div>
<form action="#" id="outPutForm">
<label for="feet inches">Height:</label>
<input name="feet" type="text"/>
<input name="inches" type="text"/>
<label for="pounds">Weight:</label>
<input name="pounds" type="text"/>
<input name="submit" type="submit" />
</form>
<p>
<output id="outPut_result" form="outPutForm" for="feet inches pounds"> </output>
</p>
</div>
<div>
<style type="text/css">
mark{
background-color:green;
color:red;
}
</style>
1<mark>2345</mark>6789
</div>
</article>
<div id="footer">
<img src="00007.jpg">
<footer>
<p>©CopyRights,All Rights Reserved.</p>
</footer>
</div>
</body>
</html>