Optimizing UI Design: How to Apply CSS Based on Screen Orientation
Thanks to CSS3 Media Queries, we can now easily adjust and apply CSS styles depending on the size of the device’s screen or viewport.
This article explores how to use min-width
and max-width
declarations within Media Queries to apply styles based on viewport dimensions. This is an extension of our Responsive Design Series.
Understanding Device Orientation
Mobile devices offer two orientations: Portrait and Landscape. Sometimes, you may need to apply styles based on the device’s orientation, in addition to its viewport width. Here’s how you can do it:
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css"> <link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">
This method works across various platforms like iPad, iPhone, Android, Safari, and Firefox. You can also include the orientation declaration within Media Queries as shown below.
@media all and (orientation:portrait) { /* Styles for Portrait screen */ } @media all and (orientation:landscape) { /* Styles for Landscape screen */ }
As defined by W3C, the orientation is considered portrait
when the viewport height is greater than the width. Conversely, it’s landscape
when the width is greater than the height.
Preview Examples
Here are some test previews on iPhone, iPad, and Desktop in both Landscape and Portrait orientations:
Feel free to check out the demo and download the source code to see these orientations in action.
Additional Resources
- iPad Orientation CSS – Cloud Four
- CSS3 Media Queries – W3C