Flash cards
Review the key moves
What is the main idea behind Responsive Web Design - Media Queries?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
@___ (min-width: 600px) { .header {grid-area: 1 / span 6;} .menu {grid-area: 2 / span 1;} .content {grid-area: 2 / span 4;} .facts {grid-area: 2 / span 1;} .footer {grid-area: 3 / span 6;}Put the learning moves in the order that makes the concept easiest to apply.
CSS Media Queries
CSS media queries allow you to apply styles based on the characteristics of a device or the environment displaying the web page.
CSS media queries are essential for creating responsive web pages.
The CSS @media rule is used to add media queries to your style sheet.
Use Mediaqueries to Add a Breakpoint
On the earlier lesson we made a grid layout web page. Now we want to add a breakpoint with mediaqueries to rearrange the grid items on bigger screens.
Example
@media (min-width: 600px) { .header {grid-area: 1 / span 6;} .menu {grid-area: 2 / span 1;} .content {grid-area: 2 / span 4;} .facts {grid-area: 2 / span 1;} .footer {grid-area: 3 / span 6;}
}Live preview
Another Breakpoint
You can add as many breakpoints as you like.
Example
@media (min-width: 600px) { .header {grid-area: 1 / span 6;} .menu {grid-area: 2 / span 1;} .content {grid-area: 2 / span 4;} .facts {grid-area: 3 / span 6;} .footer {grid-area: 4 / span 6;}
}
@media (min-width: 768px) { .header {grid-area: 1 / span 6;} .menu {grid-area: 2 / span 1;} .content {grid-area: 2 / span 4;} .facts {grid-area: 2 / span 1;} .footer {grid-area: 3 / span 6;}
}Live preview
Typical Device Breakpoints
There are tons of screens and devices with different heights and widths, so it is hard to create an exact breakpoint for each device. To keep things simple you could target five groups:
Example
/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {...}
/* Small devices (portrait tablets and large phones, 600px and up)
*/
@media only screen and (min-width: 600px) {...}
/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {...}
/* Large devices (laptops/desktops, 992px and up)
*/
@media only screen and (min-width: 992px) {...}
/* Extra large devices (large
laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {...}Live preview
Media Queries for Screen Orientation
Media queries can also be used to change the layout of a page depending on the orientation of the screen.
Here, we change the background-color of the body, if the screen orientation is in landscape mode:
Example
@media only screen and (orientation: landscape) {
body {
background-color: lightblue;
}
}Live preview
Hide Elements With Media Queries
Here, we use media queries to hide an element on small screens:
Example
/* Hide element if the viewport width is 600px or less */
@media
screen and (max-width: 600px) {
#div1 {
display: none;
}
}Live preview
Change Font Size With Media Queries
Here, we use media queries to change the font size of an element on different viewport widths:
Example
/* If viewport width is 600px or more, set font-size to 80px */
@media screen and (min-width: 600px) {
#div1 {
font-size: 80px;
}
}Live preview
Media Queries for User Preferences
Some users have motion sensitivity and prefer websites with less animation.
The prefers-reduced-motion media feature lets you check if a user has asked to reduce motion, such as animations or transitions. Use this feature to turn off animations and transitions for the users who has activated this setting on their computer:
Example
@media (prefers-reduced-motion: reduce) {
* {
animation: none !important;
transition: none !important;
}
}Live preview