前端基礎

-

HTML img 標籤的三個實用方法

this.web

限制圖片大小

如果我們用 width: 100%,圖片會跟著父元素的寬度,當父元素越大,圖片也會變大,如下👇

有時候我們希望圖片的大小不要超過原始尺寸,此時就可以用 max-width: 100% 來限制圖片的寬度在原始尺寸內,如下👇。

這邊附上程式碼 👇

<div class="container">
  <p>width: 100%</p>
  <img class="width" src="./img.jpg" alt="img">
</div>
<div class="container">
  <p>max-width: 100%</p>
  <img class="max-width" src="./img.jpg" alt="img">
</div>
.container {
  padding: 8px;
  border: 1px solid;
  text-align: center;
  
  resize: horizontal;
  overflow: auto;
}
.width {
  width: 100%;
}
.max-width {
  max-width: 100%;
}

利用 <source> 根據螢幕大小變化圖片

如果我們希望在不同的螢幕尺寸,顯示不同的圖片,最容易想到的方法可能是用 media query。

 @media screen and (max-width: 600px) {
    .bg {
      background-img: url('./some/url/img.webp')
    }
 }

但其實使用原生的 picture 和 source 標籤,就能夠輕易做到一樣的事情。

只要指定 source 以及 media 就可以根據寬度來顯示不同的圖片 👇

<picture>
  <source srcset="img1.jpg" media="(max-width: 600px)">
  <source srcset="img2.jpg" media="(max-width: 1600px)">
  <source srcset="img3.jpg">
  <img src="img1.jpg" alt="Flowers">
</picture>

指定圖片的點擊範圍

如果你希望用戶點擊圖片的不同地方,可以跳轉到不同的頁面,我們可以使用 <map> 和 <area> 來做到,舉例說這張圖片👇

img1

我希望用戶點擊書本時跳到 book 頁面,點手機跳到 phone 頁面,點橘子跳到 fruit,點電腦跳到 computer。

此時可以用網路上的 Image Map 工具 ( Free Online Image Map Generator ) 來快速指定區域,使用起來非常簡單,用滑鼠點擊就可以框出想被用戶點擊的區域,並產生相對的 code。

img map tool

此時就可會產生以下的 code,只要用戶點擊這些範圍就可以跳到相應的頁面了~

<img src="img.jpg" usemap="#image-map">

<map name="image-map">
    <area target="_blank" alt="book" title="book" href="/book" coords="63,185,156,236,116,307,23,253" shape="poly">
    <area target="_blank" alt="computer" title="computer" href="/computer" coords="202,37,224,150,211,317,466,315,460,153,492,34" shape="poly">
    <area target="_blank" alt="phone" title="phone" href="/phone" coords="541,221,501,246,559,341,602,309" shape="poly">
    <area target="_blank" alt="fruit" title="fruit" href="/fruit" coords="510,141,24" shape="circle">
</map>

小結

你喜歡這樣的 HTML 冷知識嗎,想知道更多實用的冷知識,留言告訴我。那老樣子,我們下篇貼文見~!

相關系列文章