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="../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>