最高效的WEB程序员学习网站
SVG手册 HTML5手册
 

<dl>、<dt>和<dd>标记的用法


<dl>、<dt>、<dd>这三个html标记是一个组合,它们很很像<ul><li>这个标签组合,但<dl>、<dt>、<dd>通常是用来描述一些术语定义,比如附录里的词汇表,或用来显示key-value这样成对的键和值。

<dl>、<dt>、<dd>通常被称为定义性列表。


例一:一个术语对应一条解释或定义

<dl>
  <dt>Firefox</dt>
  <dd>A free, open source, cross-platform, graphical web browser
      developed by the Mozilla Corporation and hundreds of volunteers.</dd>

  <!-- other terms and definitions -->
</dl>


例二:多个术语对应一条解释或定义

<dl>
  <dt>Firefox</dt>
  <dt>Mozilla Firefox</dt>
  <dt>Fx</dt>
  <dd>A free, open source, cross-platform, graphical web browser
      developed by the Mozilla Corporation and hundreds of volunteers.</dd>

  <!-- other terms and definitions -->
</dl>


例二:一个术语对应多条解释或定义

<dl>
  <dt>Firefox</dt>
  <dd>A free, open source, cross-platform, graphical web browser
      developed by the Mozilla Corporation and hundreds of volunteers.</dd>
  <dd>The Red Panda also known as the Lesser Panda, Wah, Bear Cat or Firefox,
      is a mostly herbivorous mammal, slightly larger than a domestic cat
      (60 cm long).</dd>

  <!-- other terms and definitions -->
</dl>


例二:多术语和解释或定义

<dl>
    <dt>Name</dt>    
    <dd>Godzilla</dd>
    <dt>Born</dt>
    <dd>1952</dd>
    <dt>Birthplace</dt>
    <dd>Japan</dd>
    <dt>Color</dt>
    <dd>Green</dd>
</dl>

HTML5视频<video>/音频<audio>的用法介绍


HTML5里引入的新标记 <audio><video> 实现了HTML对视频播放和音频播放的原生支持,有了这种原生的HTML5视频播放器/音频播放器,我们不再需要flash技术,而直接能将视频/音频嵌入到了网页中。

如何嵌入视频和音频

在网页里嵌入HTML5音频播放器和视频播放器的方法非常简单:

<video src="http://www.webhek.com/~j/theora_testsuite/320x240.ogg" controls autoplay loop>
  Your browser does not support the <code>video</code> element.
</video>

上面这个例子显示了如何播放一个视频文件,并露出视频播放控制按钮。

下面这个例子是在HTML网页里嵌入音频 audio 的方法:

<audio controls autoplay loop src="/test/audio.ogg">
<p>Your browser does not support the <code>audio</code> element.</p>
</audio>

这里的 src 属性里可以填入一个音频/视频的URL,也可以是一个本地的文件。

<audio src="audio.ogg" controls autoplay loop>
<p>Your browser does not support the <code>audio</code> element </p>
</audio>

下面是<audio><video> 两个标记上控制属性的含义:

  • controls : 显示标准的 HTML5 视频/音频播放器控制条、控制按钮。
  • autoplay : 让文件自动播放。
  • loop : 让文件循环播放。
<audio src="audio.mp3" preload="auto" controls></audio>

这里的 preload 属性是用来缓存大体积文件的。它有三个可选值:

  • "none" 不缓存
  • "auto" 缓存
  • "metadata" 只缓存文件元信息

为了能够兼容各种浏览器对不同媒体类型的支持,我们可以用多个 <source> 元素来提供多个不同的媒体类型。例如:

<video controls>
  <source src="foo.ogg" type="video/ogg">
  <source src="foo.mp4" type="video/mp4">
  Your browser does not support the <code>video</code> element.
</video>

支持Ogg格式视频流的浏览器可以播放 Ogg 文件。如果不支持,可以播放 MPEG-4 文件。查看各种浏览器对各种媒体类型的支持情况,请查看这里

我们还可以指定播放使用的解码器(codecs); 这样就可以更精确的让浏览器如何播放提供的视频:

<video controls>
  <source src="foo.ogg" type="video/ogg; codecs=dirac, speex">
  Your browser does not support the <code>video</code> element.
</video>

上面,我们指定了这个视频需要使用 Dirac 和 Speex 解码器。如果浏览器支持 Ogg 格式,但没有指定的解码器,那么,视频将不会被加载。

如果没有提供 type 属性,则浏览器会向服务器询问媒体类型,看看是否支持;如果不支持,浏览器将会去检查下一个 source 属性。

用JavaScript控制视频/音频播放

一旦视频文件正确的嵌入到了HTML网页里,我们就可以使用JavaScript里控制它的部分,获取它的播放信息。比如,用JavaScript启动视频播放:

var v = document.getElementsByTagName("video")[0];
v.play();

用JavaScript可控制HTML5视频播放器实现播放、暂停、快进,快退、音量等。

<audio id="demo" src="audio.mp3"></audio>
<div>
  <button onclick="document.getElementById('demo').play()">播放</button>
  <button onclick="document.getElementById('demo').pause()">暂停</button>
  <button onclick="document.getElementById('demo').volume+=0.1">降低音量</button>
  <button onclick="document.getElementById('demo').volume-=0.1">提高音量</button>
</div> 

停止下载视频文件

虽然我们可以使用pause()方法里让视频文件停止播放,但浏览器并未停止下载媒体文件,除非它达到了一定的缓存量。

下面是让浏览器如何停止下载视频文件的方法:

var mediaElement = document.getElementById("myMediaElementID");
mediaElement.pause();
mediaElement.src='';
//或
mediaElement.removeAttribute("src");

通过删除 src 属性(或者设置为空值),这样就能停止文件的网络下载。

设定播放的时间点定位

我们可以指定视频从某时某分某秒开始播放,这是通过设置 currentTime 属性来实现。

我们可以通过 seekable 属性来获得视频有效的播放时间范围。它会返回一个 TimeRanges 对象,能够告诉你有效的开始时间和结束时间。

var mediaElement = document.getElementById('mediaElementID');
mediaElement.seekable.start(0);  // 返回开始时间 (秒)
mediaElement.seekable.end(0);    // 返回结束时间 (秒)
mediaElement.currentTime = 122; // 定位到第 122 秒播放
mediaElement.played.end(0);      // 返回已经播放的时间长度(秒)

设定播放范围

当在网页里嵌入视频/音频文件时, <audio><video> 元素允许我们提供一些额外的信息来指定播放哪一时间段。实现的方法是在媒体文件后面跟随(“#”)格式的信息。

它的具体语法是这样的:

#t=[开始时间][,结束时间]

时间的表示方法可以使用秒数,也可以提供一个 ”时:分:秒“ 格式的时间(例如 2:05:01 )。/p>

举例:

http://www.webhek.com/video.ogg#t=10,20
指定视频从10秒开始播放,到20秒处结束。
http://www.webhek.com/video.ogg#t=,10.5
指定视频从头开始播放到 10.5 秒处。
http://www.webhek.com/video.ogg#t=,02:00:00
指定视频播放2小时。
http://www.webhek.com/video.ogg#t=60
指定视频从第60秒开始播放,播放到结束。

HTML5 <progress>


<progress>标记,顾名思义,就是显示进度条。

<progress>标记的几个属性:

max
进度条的最大值,必须是大于零的值,可以是浮点数。缺省值为1
value
进度条的完成进度,必须是小于max的值。

例1

<progress value="70" max="100">70 %</progress>

HTML5 <output>


这个<output>标记是用来输出计算结果或用户动作的结果。

<output>元素的几个属性:

for
用来指明参与计算的元素的ID,用空格分割多个ID
form
这个元素相对应的表单的ID,如果这个元素放在一个表单内,这不用指明这个值。当它位于表单外时,需要指明是属于哪个表单。
name
这个元素的名称。

例1

<form oninput="result.value=parseInt(a.value)+parseInt(b.value)">
    <input type="range" name="b" value="50" /> +
    <input type="number" name="a" value="10" /> =
    <output name="result"></output>
</form>

例2

<form onsubmit="return false" oninput="o.value = parseInt(a.value) + parseInt(b.value)">
  <input name="a" type="number" step="any"> +
  <input name="b" type="number" step="any"> =
  <output name="o"></output>
</form>

HTML5 <datalist>


<datalist>标记很很像<select>标记,它里面可以放置很多个<option>元素,而且也呈现出下拉列表的样子,但它显示的地方不一样。它只是一个数据容器,需要使用它的<input>元素使用list属性引用<datalist>列表。于是这个<input>不仅可以直接输入数据,而且可以从下拉列表中选择数据。

<label>从列表中选择一种浏览器:
<input list="browsers" name="myBrowser" /></label>
<datalist id="browsers">
  <option value="谷歌浏览器">
  <option value="火狐浏览器">
  <option value="IE浏览器">
  <option value="Opera浏览器">
  <option value="Safari浏览器">
</datalist>

SVG <feComposite>


This filter primitive performs the combination of two input images pixel-wise in image space using one of the Porter-Duff compositing operations: over, in, atop, out, xor. Additionally, a component-wise arithmetic operation (with the result clamped between [0..1]) can be applied.

The arithmetic operation is useful for combining the output from the and filters with texture data. If the arithmetic operation is chosen, each result pixel is computed using the following formula:

result = k1*i1*i2 + k2*i1 + k3*i2 + k4

 

where:

  • i1 and i2 indicate the corresponding pixel channel values of the input image, which map to in and in2 respectively
  • k1, k2, k3 and k4 indicate the values of the attributes with the same name

SVG光照滤镜


<feDiffuseLighting>标记的作用是产生光照效果滤镜,它使用原图的alpha通道作为纹理图,输出的结果取决于光线颜色,光源位置和图片的物体表面纹理。

下面的例子里将使用<feDiffuseLighting>元素产生点光、平行光、聚光照射的滤镜效果。


HTML5 <section>


HTML Section 元素 (<section>) 表示文档中的一个区块(或章节),比如,内容中的一个专题组,一般来说会有包含一个标题。 每个<section>的结构应该是相似的,通常会将一个标题元素(<h1><h6> 元素)作为子元素。

用法说明 :

  • 如果<section>元素的内容感觉是相互分离但可以合在一起的内容,那么,应该用<article>元素来替换它。
  • 不要把 <section> 元素作为一个普通的容器来使用;这种情况是 <div>的适用范围,特别是当它的目标只是美化样式的情况。 通常来说一个 <section> 应该只被当做文档结构框架来使用。

用法说明:

<section>
  <h1>Heading</h1>
  <p>Bunch of awesome content</p>
</section>

例 2

主体前

<div>
  <h2>Heading</h2>
  <img>some image</img>
</div>

主体后

<section>
  <h2>Heading</h2>
  <img>some image</img>
</section>

HTML5 <nav>


HTML (<nav>)元素用来表示一个含有多个超链接的区域,这个区域的连接可以连接到其他页面,也可以连接到本页面内部其他部分。

用法说明:

  • 并不是所有的链接都必须使用<nav>元素,它只用来将一些热门的链接放入导航栏,例如<footer>元素就常用来在页面底部包含一个不常用到,没必要加入<nav>的链接列表.
  • 一个网页也可能含有多个<nav>元素,例如一个是网站内的导航列表,另一个是本页面内的导航列表.
  • 对于屏幕阅读障碍的人,可以使用这个元素来确定是否忽略初始内容.

示例

<nav>
  <ul>
    <li><a href="#">首页</a></li>
    <li><a href="#">关于</a></li>
    <li><a href="#">联系方式</a></li>
  </ul>
</nav> 

HTML5 <header>


HTML <header> 元素用来表示一些前言性质或导航类的内容。它可以包含一些标题性质元素,也可以放置一些比如logo,搜索框,或其它的<header>元素等。

使用说明:

  • <header>元素并不是一个可以形成段落内容的元素,所以,不需要在内容目录里体现出来。

用法例子

<header>
  a logo
</header>