HTML Images
Images can improve the design and the appearance of a web page.
Example
<img src="nature.jpg"
alt="Nature Love">
Example
<img src="nature1.jpg"
alt="Beautiful Nature">
Example
<img src="nature2.jpg"
alt="Nature">
HTML Images Syntax
In HTML, images are defined with the <img>
tag.
The <img>
tag is empty, it contains attributes only, and does not
have a closing tag.
The src
attribute specifies the URL
(web address) of the image:
<img src="url">
The alt Attribute
The alt
attribute provides an alternate text for an image, if the user for
some reason cannot view it (because of slow connection, an error in the src
attribute, or if the user uses a screen reader).
The value of the alt
attribute should describe the image:
Example
<img src="nature.jpg" alt="Nature Love">
If a browser cannot find an image, it will display the value of the alt
attribute:
Example
<img src="wrongname.gif" alt="Nature Love">
Note: The alt
attribute is required. A web page will not validate correctly without it.
Image Size - Width and Height
You can use the style
attribute to specify the width and
height of an image.
Example
<img src="nature.jpg" alt="Nature Love"
style="width:500px;
height:600px;">
Alternatively, you can use the width
and height
attributes:
Example
<img src="nature.jpg" alt="Nature Love" width="500" height="600">
The width
and height
attributes always defines the width and height of the
image in pixels.
Note: Always specify the width and height of an image. If width and height are not specified, the page might flicker while the image loads.
Width and Height, or Style?
The width
, height
, and style
attributes are valid in HTML5.
However, we suggest using the style
attribute. It prevents styles sheets from changing
the size of images:
Example
<!DOCTYPE html>
<html>
<head>
<style>
img {
width: 100%;
}
</style>
</head>
<body>
<img src="html5.gif" alt="HTML5 Icon" width="128" height="128">
<img src="html5.gif" alt="HTML5 Icon"
style="width:128px;
height:128px;">
</body>
</html>
Images in Another Folder
If not specified, the browser expects to find the image in the same folder as the web page.
However, it is common to store images in a sub-folder. You must then include the folder
name in the src
attribute:
Example
<img src="/images/html5.gif"
alt="HTML5 Icon" style="width:128px;
height:128px;">
Images on Another Server
Some web sites store their images on image servers.
Actually, you can access images from any web address in the world:
Example
<img src="abc.com/images/snap.jpg" alt="snap">
Animated Images
HTML allows animated GIFs:
Example
<img src="programming.gif" alt="Computer Man" style="width:48px;
height:48px;">
Image as a Link
To use an image as a link, put the <img>
tag inside the <a>
tag:
Example
<a href="index">
<img src="smiley.gif" alt="HTML tutorial"
style="width:42px;
height:42px;
border:0;">
</a>
Note: border:0;
is added to prevent IE9 (and earlier) from displaying a border around the image
(when the image is a link).
Image Floating
Use the CSS float
property to let the image float to the right or to the left of a text:
Example
<p><img src="smiley.gif" alt="Smiley face"
style="float:right;width:42px;
height:42px;">
The image will float to the right of
the text.</p>
<p><img src="smiley.gif" alt="Smiley face"
style="float:left;width:42px;
height:42px;">
The image will float to the left of
the text.</p>
Image Maps
The <map>
tag defines an image-map. An image-map is an image with
clickable areas.
In the image below, click on the computer, the phone, or the cup of coffee:
Example
<img src="workplace.jpg" alt="Workplace" usemap="#workmap">
<map name="workmap">
<area shape="rect" coords="34,44,270,350"
alt="Computer" href="#">
<area shape="rect" coords="290,172,333,250"
alt="Phone" href="#">
<area shape="circle" coords="337,300,44"
alt="Coffee" href="#">
</map>
The name
attribute of the <map>
tag is associated with the <img>
's usemap
attribute and creates a relationship between the image and the map.
The <map>
element contains a number of <area>
tags, that define the clickable
areas in the image-map.
Background Image
To add a background image on an HTML element, use the CSS property
background-image
:
Example
To add a background image on a web page, specify the background-image property on the BODY element:
<body style="background-image:url('clouds.jpg')">
<h2>Background
Image</h2>
</body>
Example
To add a background image on a paragraph, specify the background-image property on the P element:
<body>
<p style="background-image:url('clouds.jpg')">
...
</p>
</body>
The <picture>
Element
HTML5 introduced the <picture>
element to add more flexibility when
specifying image resources.
The <picture>
element contains a number of <source>
elements, each referring
to different image sources. This way the browser can choose the image that best
fits the current view and/or device.
Each <source>
element have attributes describing when their image is the
most suitable.
The browser will use the first <source>
element with matching attribute
values, and ignore any following <source>
elements.
Example
Show one picture if the browser window (viewport) is a minimum of 650 pixels, and another image if not, but larger than 465 pixels.
<picture>
<source media="(min-width: 650px)" srcset="img_pink_flowers.jpg">
<source media="(min-width: 465px)" srcset="img_white_flower.jpg">
<img src="img_orange_flowers.jpg"
alt="Flowers" style="width:auto;">
</picture>
Note: Always specify an <img>
element as the last child
element of the <picture>
element. The <img>
element is used by browsers that
do
not support the <picture>
element, or if none of the <source>
tags matched.
HTML Screen Readers
A screen reader is a software program that reads the HTML code, converts the
text, and allows the user to "listen"
to the content. Screen readers are useful
for people who are blind, visually impaired, or learning disabled.
Chapter Summary
- Use the HTML
<img>
element to define an image - Use the HTML
src
attribute to define the URL of the image - Use the HTML
alt
attribute to define an alternate text for an image, if it cannot be displayed - Use the HTML
width
andheight
attributes to define the size of the image - Use the CSS
width
andheight
properties to define the size of the image (alternatively) - Use the CSS
float
property to let the image float - Use the HTML
<map>
element to define an image-map - Use the HTML
<area>
element to define the clickable areas in the image-map - Use the HTML
<img>
's elementusemap
attribute to point to an image-map - Use the HTML
<picture>
element to show different images for different devices
Note: Loading images takes time. Large images can slow down your page. Use images carefully.