HTML HTML5

 锚链接

首先在文档中命名一个锚:<a name="top">顶部</a>

然后再该文档中创建一个指向该锚的连接:<a href="#top">回到顶部</a>

也可以其他页面中指向该锚:<a href="www.baidu.com/test/test.html#top"></a>

 

数据周围绘制一个带标题的框:

<fieldset>

<legend>信息</legend>

身高:<input type="text"/>

体重:<input type="text"/></fieldset>



 

 创建图像映射

<img src="test.jpg" usermap="#planetmap" alt="文本显示"/> //usermap属性

<map name="planetmap" id="planetmap"> //标识name或id

<area shape="circle" coords="180,139,14" href=".../test.html" target="_blank"> //定义的映像区域,点击此区域打开新的链接

<area shape="circle" coords="129,161,10" href ="mercur.html" target ="_blank" alt="Mercury" />

</map>

 

垂直框架        <frameset>和<body>不能同时使用

<html>

<frameset cols="25%,70%">        //水平框架:rows="25%,50%,25%"
  <frame src="/example/html/frame_a.html">
  <frame src="/example/html/frame_b.html" name="showframe"> //frame_a.html中链接指定target=“showframe”就可以在标识的<frame>中打开页面
</frameset>

 </html>

 <iframe></iframe> 内联框架

 

重定向

<meta http-equiv="Refresh" content="5;url=http://www.w3school.com.cn" />

 

<base> 标签为页面上的所有链接规定默认地址或默认目标(target)

 

<base href="http://www.w3school.com.cn/images/" />
<base target="_blank" /> 

 

插入对象

codebase加载了用于播放媒体的插件

flash格式
<object width="400" height="40"
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/
pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
<param name="SRC" value="bookmark.swf">
<embed src="bookmark.swf" width="400" height="40"></embed>
</object>
wmv格式
<object width="100%" height="100%"
type="video/x-ms-asf" url="3d.wmv" data="3d.wmv"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param name="url" value="3d.wmv">
<param name="filename" value="3d.wmv">
<param name="autostart" value="1">
<param name="uiMode" value="full" />
<param name="autosize" value="1">
<param name="playcount" value="1">
<embed type="application/x-mplayer2" src="3d.wmv" width="100%"
 height="100%" autostart="true" showcontrols="true" 
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"></embed>
</object>

 

HTML5中标签 audio。所有浏览器都支持。但html4没有该标签。

<audio controls="controls">
  <source src="song.mp3" type="audio/mp3" />
  <source src="song.ogg" type="audio/ogg" />
Your browser does not support this audio format.
</audio>

 

雅虎媒体播放器,只要加入如下js

<script type="text/javascript" src="http://mediaplayer.yahoo.com/js"></script>

 视频

<video width="320" height="240" controls="controls">
  <source src="movie.mp4" type="video/mp4" />
  <source src="movie.ogg" type="video/ogg" />
  <source src="movie.webm" type="video/webm" />
  <object data="movie.mp4" width="320" height="240">
    <embed src="movie.swf" width="320" height="240" />
  </object>
</video>

 

优酷解决方案

在 HTML 中显示视频的最简单的方法是使用优酷等视频网站。

如果您希望在网页中播放视频,那么您可以把视频上传到优酷等视频网站,然后在您的网页中插入 HTML 代码即可播放视频:

 

 拖放

<html>
<head>
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<div id="div1" οndrοp="drop(event)"
οndragοver="allowDrop(event)"></div>
<img id="drag1" src="img_logo.gif" draggable="true"
οndragstart="drag(event)" width="336" height="69" />

</body>
</html>

 

canvas 元素用于在网页上绘制图形

<canvas id="myCanvas" width="200" height="100"></canvas>
<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>

 

 矢量图SVG

 

地理定位

<script>
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showPosition);
    }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
  }
function showPosition(position)
  {
  x.innerHTML="Latitude: " + position.coords.latitude +
  "<br />Longitude: " + position.coords.longitude;
  }
</script>

 使用google地图

<p id="demo">点击这个按钮,获得您的位置:</p>
<button οnclick="getLocation()">试一下</button>
<div id="mapholder"></div>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
  }

function showPosition(position)
  {
  lat=position.coords.latitude;
  lon=position.coords.longitude;
  latlon=new google.maps.LatLng(lat, lon)
  mapholder=document.getElementById('mapholder')
  mapholder.style.height='250px';
  mapholder.style.width='500px';

  var myOptions={
  center:latlon,zoom:14,
  mapTypeId:google.maps.MapTypeId.ROADMAP,
  mapTypeControl:false,
  navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
  };
  var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
  var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"});
  }

function showError(error)
  {
  switch(error.code)
    {
    case error.PERMISSION_DENIED:
      x.innerHTML="User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML="Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML="The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML="An unknown error occurred."
      break;
    }
  }
</script>

 

在客户端存储数据

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

<script type="text/javascript">
localStorage.lastname="Smith";
document.write(localStorage.lastname);
</script>

 使用缓存

 请注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。

<html manifest="demo.appcache">

缓存文件配置

CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js

NETWORK:
login.asp

FALLBACK:
/html5/ /404.html

 

web worker 运行在后台的javascript

<p>Count numbers: <output id="result"></output></p>
<button οnclick="startWorker()">Start Worker</button>
<button οnclick="stopWorker()">Stop Worker</button>
<br /><br />

<script>
var w;

function startWorker()
{
if(typeof(Worker)!=="undefined")
{
  if(typeof(w)=="undefined")
    {
    w=new Worker("demo_workers.js");
    }
  w.onmessage = function (event) {
    document.getElementById("result").innerHTML=event.data;
  };
}
else
{
document.getElementById("result").innerHTML="Sorry, your browser
 does not support Web Workers...";
}
}

function stopWorker()
{
w.terminate();
}
</script>

 

Server-Sent 事件 - 单向消息传递

服务器端代码实例

为了让上面的例子可以运行,您还需要能够发送数据更新的服务器(比如 PHP 和 ASP)。

服务器端事件流的语法是非常简单的。把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。

asp示例:demo_see.asp

 

<%
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
  • 把报头 "Content-Type" 设置为 "text/event-stream"
  • 规定不对页面进行缓存
  • 输出发送日期(始终以 "data: " 开头)
  • 向网页刷新输出数据
var source=new EventSource("demo_sse.asp");
source.onmessage=function(event)
  {
  document.getElementById("result").innerHTML+=event.data + "<br />";
  };
 
 

HTML5 Input 类型

Input typeIEFirefoxOperaChromeSafari
emailNo4.09.010.0No
urlNo4.09.010.0No
numberNoNo9.07.0No
rangeNoNo9.04.04.0
Date pickersNoNo9.010.0No
searchNo4.011.010.0No
colorNoNo11.0NoNo
 

HTML5 表单元素

Input typeIEFirefoxOperaChromeSafari
datalistNoNo9.5NoNo
keygenNoNo10.53.0No
outputNoNo9.5NoNo
<input type="url" list="url_list" name="link" />
<datalist id="url_list">
<option label="W3School" value="http://www.W3School.com.cn" />
<option label="Google" value="http://www.google.com" />
<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

HTML5 表单属性

Input typeIEFirefoxOperaChromeSafari
autocomplete8.03.59.53.04.0
autofocusNoNo10.03.04.0
formNoNo9.5NoNo
form overridesNoNo10.5NoNo
height and width8.03.59.53.04.0
listNoNo9.5NoNo
min, max and stepNoNo9.53.0No
multipleNo3.5No3.04.0
novalidateNoNoNoNoNo
patternNoNo9.53.0No
placeholderNoNoNo3.03.0
requiredNoNo9.53.0No
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值