首页 > 代码库 > HTML5-嵌入内容

HTML5-嵌入内容

下述内容主要讲述了《HTML5权威指南》第15章关于“嵌入内容”。

一、嵌入图像

img元素允许我们在HTML文档里嵌入图像。图像在HTML标记处理完毕后才加载!!

  • src属性指定欲嵌入图像的URL;
  • alt属性定义了img元素的备用内容(图像无法显示时呈现)。
  • width和height属性指定img元素所代表图像的尺寸(单位是像素)。如果省略了该属性,浏览器不知道该为图像留出多大的屏幕空间,造成的结果是,浏览器必须依赖图像文件本身来确定它的尺寸,然后重定位屏幕上的内容来容纳它,产生晃动。

1. 在超链接里嵌入图像

示例:使用img和a元素创建服务器端的分区响应图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用img和a元素创建服务器端的分区响应图</title>
</head>
<body>
<a href="otherpage.html">
    <img src="../images/sport.jpg" ismap alt="奥运会运动项目" width="520px" height="131px">
</a>
</body>
</html>
http://localhost:63342/html_test/public/embeddedContent_Chapter15/otherpage.html?466,39
添加ismap属性就创建了一个服务器端分区响应图,URL地址中会包含鼠标点击的坐标。

2. 创建客户端分区响应图

创建一个客户端分区响应图,通过点击某张图像上的不同区域让浏览器导航到不同的URL上。

  • map元素包含一个或多个area元素,它们各自代表了图像上可被点击的一块区域。
  • area元素的属性可以被分为两类:第一类处理的是area所代表的图像区域被用户点击后浏览器会导航打的URL;第二类包含shape和coords属性标明用户可以点击的各个图像区域。

表 与目标地址相关的area元素属性

属性 说明
href 此区域被点击时浏览器应该加载的URL
alt 替代内容
target 应该用来显示URL的浏览上下文
rel 描述了当前文档和目标文档之间的关系
meida 此区域适用的媒介
hreflang 目标文档的语言
type 目标文档的MIME类型

表 shape和coords属性的值

属性 coords值得性质和意思
rect 代表矩形区域。coords属性必须由四个用逗号分隔的整数组成(左,上,右,下)
circle 代表圆形区域。coords属性必须右三个用逗号分隔的整数组成(左边缘到圆心的距离,上边缘到圆心的距离,半径)
poly 代表一个多边形。coords属性必须至少包含六个用逗号分隔的整数组成(每个数字各代表多边形的一个顶点)
default 默认区域,即覆盖整张图片

示例:创建分区响应图
技术分享

<p>
    <img src="../images/sport.jpg" usemap="#sportmap" alt="Sport image">
</p>
<map name="sportmap">
    <area href="archery.html" shape="rect" coords="0,5,90,125" alt="射箭">
    <area href="swimming.html" shape="rect" coords="120,5,250,125" alt="游泳">
    <area href="weightlifting.html" shape="rect" coords="290,5,390,125" alt="举重">
    <area href="hockey.html" shape="rect" coords="420,5,520,125" alt="曲棍球">
    <area href="sport.html" shape="default" alt="运动">
</map>

注意:
1. 给img元素添加usemap属性;将其与map元素关联起来。
2. 无需使用a元素来显示创建超链接。

二、 嵌入名一张HTML文档

iframe元素允许我们在现有的HTML文档中嵌入另一张文档。

示例:使用iframe元素
技术分享

<header>
    <nav>
        <ul>
            <li>
                <a href="img_a.html" target="myframe">Img a Demo</a>
            </li>
            <li>
                <a href="img_map.html" target="myframe">Img map Demo</a>
            </li>
        </ul>
    </nav>
</header>

<iframe name="myframe" width="300" height="100"></iframe>

上述示例中创建了一个name属性为myframe的iframe元素,这样就创建了一个名为myframe的浏览上下文。然后将这个浏览上下文同其他元素(具体是指a、form、button、input和base)的target属性结合使用。示例中,会把href属性中指定的URL载入iframe。

表 其他属性

属性 说明
src 指定iframe一开始应该载入并显示的URL
srcdoc 定义一张用于内嵌显示的HTML文档
seamless 把iframe内容显示得像主HTML文档的一个整体组成部分(浏览器未支持)
sandbox 对HTML文档进行限制(浏览器未支持)

三、 通过插件嵌入内容

object和embed元素最初都是作为扩展浏览器能力的一种方式,用于添加插件支持,而插件能够处理浏览器不直接支持的内容。

示例:嵌入视频

<embed src="https://www.youtube.com/embed/jItLiNKSCBg" 
    width="560" height="349" allowfullscreen="true">

<object data="https://www.youtube.com/embed/jItLiNKSCBg"
        width="560" height="349">
    <param name="allowFullScreen" value="true">
    <b>Sorry!</b>We can‘t display this content
</object>

示例:用object元素嵌入一张图像

<object data=http://www.mamicode.com/"../images/sport.jpg" type="image/jpg"></object>

示例:用object元素创建一张客户端分区响应图

<header>
    <nav>
        <ul>
            <li>
                <a href="img_a.html" target="myframe">Img a Demo</a>
            </li>
            <li>
                <a href="img_map.html" target="myframe">Img map Demo</a>
            </li>
        </ul>
    </nav>
</header>

<object type="text/html" name="myframe" width="300" height="100"></object>

注意:chrome和Safari目前不支持用object元素创建客户端分区响应图

示例:用object元素创建浏览器上下文

<p>
    <object type="image/jpg" data="../images/sport.jpg" usemap="#sportmap"></object>
</p>
<map name="sportmap">
    <area href="archery.html" shape="rect" coords="0,5,90,125" alt="射箭">
    <area href="swimming.html" shape="rect" coords="120,5,250,125" alt="游泳">
    <area href="weightlifting.html" shape="rect" coords="290,5,390,125" alt="举重">
    <area href="hockey.html" shape="rect" coords="420,5,520,125" alt="曲棍球">
    <area href="sport.html" shape="default" alt="运动">
</map>

四、嵌入数字表现形式

1. 显示进度

progress元素可以用来表现某项任务逐渐完成的过程。
value属性定义了当前的进度,它位于0和max属性的值所构成的范围之间。当max属性被省略时,范围是0至1。

示例:使用progress元素

<progress id="myprogress" value="10" max="100"></progress>
<p>
    <button type="button" value="30">30%</button>
    <button type="button" value="60">60%</button>
    <button type="button" value="90">90%</button>
</p>
<script>
    var buttons = document.getElementsByTagName("button");
    var progress = document.getElementsByTagName("progress")[0];
    for(var i = 0, len = buttons.length; i < len; i++){
        buttons[i].onclick = function(e){
            progress.value = http://www.mamicode.com/e.target.value; // 千万不能通过 buttons[i].value 获取值
        }
    }
</script>

2. 显示范围里的值

meter元素显示了某个范围内所有可能值中的一个。
min和max属性设定了可能值所处范围的边界,它们可以用浮点数表示。
meter元素的显示可以分为三个部分:过低、过高和最佳。

  • low属性设置一个值,在它之下的所有值都被认为是过低;
  • high属性设置一个值,在它之上的所有值都被认为是过高;
  • optimum属性则指定了“最佳”的值。
<meter id="mymeter" value="90"
       min="0" max="100"
       low="40" high="80" optimum="60">
</meter>
<p>
    <button type="button" value="30">30</button>
    <button type="button" value="60">60</button>
    <button type="button" value="90">90</button>
</p>
<script>
    var buttons = document.getElementsByTagName("button");
    var meter = document.getElementById("mymeter");
    for(var i = 0, len = buttons.length; i < len; i++){
        buttons[i].onclick = function(e){
            meter.value = http://www.mamicode.com/e.target.value;></script>
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    HTML5-嵌入内容