W3.CSS Built-In Responsiveness
W3.CSS includes a responsive, mobile-first grid system to handle layout:
1/2
1/2
1/3
1/3
1/3
1/3
2/3
1/4
1/4
1/4
1/4
1/2
1/4
1/4
2/3
1/3
3/4
1/4
1/4
1/4
1/2
1/4
1/2
1/4
50px
rest
1/4
rest
100px
45px
rest
W3.CSS Responsive Classes
W3.CSS's grid system is responsive, and the columns will re-arrange automatically depending on the screen size:
Class | Description |
---|---|
w3-half | Occupies 1/2 of the window (on medium and large screens) |
w3-third | Occupies 1/3 of the window (on medium and large screens) |
w3-twothird | Occupies 2/3 of the window (on medium and large screens) |
w3-quarter | Occupies 1/4 of the window (on medium and large screens) |
w3-threequarter | Occupies 3/4 of the window (on medium and large screens) |
w3-rest | Occupies the rest of the column width |
w3-col | Defines one column in a 12-column responsive grid |
w3-mobile | Adds mobile-first responsiveness to a cell (column). Displays elements as block elements on mobile devices. |
The responsive classes above must be placed inside a w3-row class (or w3-row-padding class) to be fully responsive.
Class | Description |
---|---|
w3-row | Container for responsive classes, with no padding |
w3-row-padding | Container for responsive classes, with 8px left and right padding |
w3-content | Container for fixed size centered content |
w3-hide-small | Hides content on small screens (less than 601px) |
w3-hide-medium | Hides content on medium screens |
w3-hide-large | Hides content on large screens (larger than 992px) |
l1 - l12 | Responsive sizes for large screens |
m1 - m12 | Responsive sizes for medium screens |
s1 - s12 | Responsive sizes for small screens |
The w3-half Class
The width of the w3-half class is 1/2 of the parent element (style="width:50%").
On screens smaller than 601 pixels it resizes to 100%.
w3-half
w3-half
Example
<div class="w3-row">
<div class="w3-half w3-container w3-green">
<h2>w3-half</h2>
</div>
<div class="w3-half w3-container">
<h2>w3-half</h2>
</div>
</div>
Try It Yourself »
The w3-third Class
The width of the w3-third class is 1/3 of the parent element (style="width:33.33%").
On screens smaller than 601 pixels it resizes to 100%.
w3-third
w3-third
w3-third
Example
<div class="w3-row">
<div class="w3-third w3-container w3-green">
<h2>w3-third</h2>
</div>
<div class="w3-third w3-container">
<h2>w3-third</h2>
</div>
<div class="w3-third w3-container">
<h2>w3-third</h2>
</div>
</div>
Try It Yourself »
The w3-twothird Class
The width of the w3-twothird class is 2/3 of the parent element (style="width:66.66%").
On screens smaller than 601 pixels it resizes to 100%.
w3-twothird
w3-third
Example
<div class="w3-row">
<div class="w3-green w3-container w3-twothird">
<h2>w3-twothird</h2>
</div>
<div class="w3-container w3-third">
<h2>w3-third</h2>
</div>
</div>
Try It Yourself »
The w3-quarter Class
The width of the w3-quarter class is 1/4 of the parent element (style="width:25%").
On screens smaller than 601 pixels it resizes to 100%.
w3-quarter
w3-quarter
w3-quarter
w3-quarter
Example
<div class="w3-row">
<div class="w3-green w3-container w3-quarter">
<h2>w3-quarter</h2>
</div>
<div class="w3-container w3-quarter">
<h2>w3-quarter</h2>
</div>
<div class="w3-container w3-quarter">
<h2>w3-quarter</h2>
</div>
<div class="w3-container w3-quarter">
<h2>w3-quarter</h2>
</div>
</div>
Try It Yourself »
The w3-threequarter Class
The width of the w3-threequarter class is 3/4 of the parent element (style="width:75%").
On screens smaller than 601 pixels it resizes to 100%.
w3-threequarter
w3-quarter
Example
<div class="w3-row">
<div class="w3-green w3-container w3-threequarter">
<h2>w3-threequarter</h2>
</div>
<div class="w3-container w3-quarter">
<h2>w3-quarter</h2>
</div>
</div>
Try It Yourself »
Combinations
w3-quarter
w3-half
w3-quarter
w3-quarter
w3-quarter
w3-half
w3-half
w3-quarter
w3-quarter
Nested Rows
Example: w3-half Inside w3-half
<div class="w3-row">
<div class="w3-half w3-container">
<h2>w3-half</h2>
<div class="w3-row">
<div class="w3-half w3-container w3-red">
<h2>w3-half</h2>
<p>This is a paragraph.</p>
</div>
<div class="w3-half w3-container">
<h2>w3-half</h2>
<p>This is a paragraph.</p>
</div>
</div>
</div>
<div class="w3-half w3-container">
<h2>w3-half</h2>
<div class="w3-row">
<div class="w3-half w3-container w3-red">
<h2>w3-half</h2>
<p>This is a paragraph.</p>
</div>
<div class="w3-half w3-container">
<h2>w3-half</h2>
<p>This is a paragraph.</p>
</div>
</div>
</div>
</div>
Try It Yourself »
Columns Using Rest
The w3-col class defines one column in a 12-column responsive grid.
The w3-rest class will occupy the rest of the width:
I am 150px
I am the rest
Example
<div class="w3-row">
<div class="w3-col" style="width:150px"><p>I am 150px</p></div>
<div class="w3-rest w3-green"><p>I am the rest</p></div>
</div>
Try It Yourself »
Columns Using Percent
You can also use the CSS width property to set the width in percent:
20%
60%
20%
Example
<div class="w3-row">
<div class="w3-col" style="width:20%"><p>20%</p></div>
<div class="w3-col" style="width:60%"><p>60%</p></div>
<div class="w3-col" style="width:20%"><p>20%</p></div>
</div>
Try It Yourself »
The w3-content Class
The w3-content class defines a container for fixed size centered content. Use the CSS max-width property to override the default width (980px).
w3-row vs. w3-row-padding
The w3-row class defines a container with no padding, while the w3-row-padding class adds a 8px left and right padding to each column:
w3-row:
w3-third
w3-third
w3-third
w3-row-padding:
w3-third
w3-third
w3-third
w3-row:
w3-row-padding:
Example
<div class="w3-row">
<div class="w3-col s4"><img src="img_lights.jpg"></div>
<div class="w3-col s4"><img src="img_nature.jpg"></div>
<div class="w3-col s4"><img src="img_snowtops.jpg"></div>
</div>
<div class="w3-row-padding">
<div class="w3-col s4"><img src="img_lights.jpg"></div>
<div class="w3-col s4"><img src="img_nature.jpg"></div>
<div class="w3-col s4"><img src="img_snowtops.jpg"></div>
</div>
Try It Yourself »
Stretch Padded Rows
The w3-stretch class removes the right and left margins from an element. This class is often used to stretch a padded row:
An example with w3-stretch:
An example without w3-stretch:
Example
<div class="w3-row-padding w3-section w3-stretch">
<div class="w3-col s4">
<img src="img_nature_wide.jpg">
</div>
<div class="w3-col s4">
<img src="img_snow_wide.jpg">
</div>
<div class="w3-col s4">
<img
src="img_mountains_wide.jpg">
</div>
</div>
Try It Yourself »
Responsive Show / Hide
The w3-hide-small, w3-hide-medium, and w3-hide-large classes hide elements on specific screen sizes.
Note: Resize the browser window to understand how it works:
Example
<div class="w3-container w3-hide-small w3-red">
<p>w3-hide-small will be hidden on small screens (phones)</p>
</div>
<div class="w3-container w3-hide-medium w3-green">
<p>w3-hide-medium will be hidden on medium screens (tablets)</p>
</div>
<div class="w3-container w3-hide-large w3-blue">
<p>w3-hide-large will be hidden on large screens (laptops/desktop)</p>
</div>
Try It Yourself »
The w3-mobile Class
The w3-mobile class adds mobile-first responsiveness to any element.
It adds display:block and width:100% to an element on screens that are less than 600px wide.
Screen Resolutions
The built-in responsiveness of W3.CSS uses the DP size of a screen.
W3.CSS will treat an iPhone 6 with a resolution of 750 x 1334 pixels as a small screen of 375 x 667 pixels DP.
Small screens are less than 601 pixels DP, medium screens are less than 993 pixels DP.
Below is a list of typical device resolutions and reported DP sizes:
Iphone 4
Resolution
640 x 960
DP
320 x 480
Iphone 5
Resolution
640 x 1136
DP
320 x 528
Iphone 6
Resolution
750 x 1334
DP
375 x 667
Iphone 6s
Resolution
1080 x 1920
DP
414 x 736
Galaxy S6
Resolution
1440 x 2560
DP
360 x 640
Note 4
Resolution
1440 x 2560
DP
400 x 853
Nexus 6
Resolution
1440 x 2560
DP
411 x 731
iPad Mini
Resolution
768 x 1024
DP
768 x 1024
iPad
Resolution
1536 x 2048
DP
768 x 1024
Typical Laptop
Resolution
1366 x 768
DP
1366 x 768
Typical Desktop
Resolution
1920 x 1080
DP
1920 x 1080
12 Column Responsive Fluid Grid
W3.CSS also supports an advanced 12 column responsive fluid grid.
Resize the page to see the effect!
This part will occupy 12 columns on a small screen, 4 on a medium screen, and 3 on a large screen.
This part will occupy 12 columns on a small screen, 8 on a medium screen, and 9 on a large screen.
You will learn a lot more about the fluid grid in a later chapter.