1. 程式人生 > >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元素
使用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="../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 = 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 = e.target.value;
        }
    }
</script>