Responsive HTML
Responsive HTML
Design
❮ PreviousNext ❯
Responsive web design is about creating web pages that look good on all
devices!
A responsive web design will automatically adjust for different screen sizes
and viewports.
Example
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
Try it Yourself »
This will set the viewport of your page, which will give the browser instructions
on how to control the page's dimensions and scaling.
Here is an example of a web page without the viewport meta tag, and the same
web page with the viewport meta tag:
Tip: If you are browsing this page on a phone or a tablet, you can click on the
two links above to see the difference.
ADVERTISEMENT
Responsive Images
Responsive images are images that scale nicely to fit any browser size.
Notice that in the example above, the image can be scaled up to be larger than
its original size. A better solution, in many cases, will be to use the max-
width property instead.
Example
<picture>
<source srcset="img_smallflower.jpg" media="(max-width: 600px)">
<source srcset="img_flowers.jpg" media="(max-width: 1500px)">
<source srcset="flowers.jpg">
<img src="img_smallflower.jpg" alt="Flowers">
</picture>
Try it Yourself »
That way the text size will follow the size of the browser window:
Hello World
Resize the browser window to see how the text size scales.
Example
<h1 style="font-size:10vw">Hello World</h1>
Try it Yourself »
Viewport is the browser window size. 1vw = 1% of viewport width. If the
viewport is 50cm wide, 1vw is 0.5cm.
Media Queries
In addition to resize text and images, it is also common to use media queries in
responsive web pages.
With media queries you can define completely different styles for different
browser sizes.
Example: resize the browser window to see that the three div elements below
will display horizontally on large screens and stack vertically on small screens:
Left Menu
Main Content
Right Content
Example
<style>
.left, .right {
float: left;
width: 20%; /* The width is 20%, by default */
}
.main {
float: left;
width: 60%; /* The width is 60%, by default */
}
Try it Yourself »
Ever heard about W3Schools Spaces? Here you can create your website from
scratch or use a template, and host it for free.
W3.CSS
W3.CSS is a modern CSS framework with support for desktop, tablet, and mobile
design by default.
W3.CSS Demo
Resize the page to see the responsiveness!
London
London is the capital city of England.
It is the most populous city in the United Kingdom, with a metropolitan area of
over 13 million inhabitants.
Paris
Paris is the capital of France.
The Paris area is one of the largest population centers in Europe, with more than
12 million inhabitants.
Tokyo
Tokyo is the capital of Japan.
It is the center of the Greater Tokyo Area, and the most populous metropolitan
area in the world.
Example
<!DOCTYPE html>
<html>
<head>
<title>W3.CSS</title>
<meta name="viewport" content="width=device-width, initial-
scale=1">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.c
ss">
</head>
<body>
<div class="w3-row-padding">
<div class="w3-third">
<h2>London</h2>
<p>London is the capital city of England.</p>
<p>It is the most populous city in the United Kingdom,
with a metropolitan area of over 13 million inhabitants.</p>
</div>
<div class="w3-third">
<h2>Paris</h2>
<p>Paris is the capital of France.</p>
<p>The Paris area is one of the largest population centers in
Europe,
with more than 12 million inhabitants.</p>
</div>
<div class="w3-third">
<h2>Tokyo</h2>
<p>Tokyo is the capital of Japan.</p>
<p>It is the center of the Greater Tokyo Area,
and the most populous metropolitan area in the world.</p>
</div>
</div>
</body>
</html>
Try it Yourself »
Bootstrap
Another popular CSS framework is Bootstrap:
Example
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap 5 Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/
bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/
bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container-fluid p-5 bg-primary text-white text-center">
<h1>My First Bootstrap Page</h1>
<p>Resize this responsive page to see the effect!</p>
</div>
Exercise?
There is a CSS font size unit that sizes text in percent of the viewport, what unit is that?
px
em
vw
vp