Media Queries
Media Queries allow us to define CSS styling rules for web page elements by querying on on the device type and/or certain features of the device on which the web content is currently being viewed or rendered.
In a single media style rule, multiple queries for device types or features can be combined using logical operators - and
, not
or only
.
Syntax for writing a CSS Media rules: @media <<device type or feature query or comma-separated list of queries>> <<logical operator>> <<device type or feature query or comma-separated list of queries>>....
examples:
@media screen {
body { background-color: #ddd; }
}
@media screen, print {
body { background-color: #ddd; }
}
Using CSS media query for Responsive Web Design (RWD):
Below css media rules define how our web content would be rendered on devices of type screen
and different sizes - usually we target
#body-container {
width: 950px;
margin: 0 auto;
}
#section-container {
width: 690px;
float: left;
}
#side-container {
width: 260px;
float: left;
}
/* media rule for devices for upto max width of 950px */
@media screen and (max-width:950px) {
#body-container { width: 100%; }
#section-container { width: 70%; }
#side-container { width: 30%; }
}
/* for devices having width of 640 or less, make section and side occupy whole width */
@media screen and (max-width:640px) {
#section-container { width: 100%; }
#side-container { width: 100%; }
}
/* for devices having width of less than 320px,
if width of container is made responsive to such
smaller screen size contents won't be visible properly.
So set body-container size fixed to 320px & if screen size is less,
then horizontal scroller would be enabled
to see the contents which are beyond the visible screen area */
@media screen and (max-width:320px) {
#body-container { width: 320px; }
}
Also note, usually, we add below viewport
tag in the header of our page HTML to have it respond to device screen size on phones or tablet:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
This tells the device that the content of the web page needs to be equal to the device width and keep the contents initial scale to 100% and do not scale it up or down.
Last updated