Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
The many ways visitors access web sites, via mobile devices, tablets, and desktops, now requires sites to incorporate responsive design elements that adapt to different screen sizes and browsers. In this course, Morten Rand-Hendriksen demonstrates design strategies, best practices, and actual code examples for creating a responsive web site. The course covers layout, navigation, responsive video embedding, and content sliders. The final chapter shows how to create an index page with jQuery Masonry, a jQuery plugin that helps you create dynamic grid layouts.
Now that we have a responsive header, it's time to move on to creating responsive layouts for our content, and we'll start with the single post. If I go to a single post, you see that we have the layout that's based on the small screens. We have the title and meta information on top and then we have the content underneath. But on this large screen, that doesn't look very good, because we have way too much space for these lines of text. And when you get text that is above a certain number of words per line, it becomes very hard to read.
That's the reason why, in the original design, I created this layout with the header and meta content on the left and the main content on the right. So, what we are going to do now is use that same technique we used to create that responsive header to change the layout of this main content area to make it flow the way it's supposed to. So we'll use that same math formula I showed earlier to find the correct percentages so that we can lay this out. First, we need to identify the elements we are going to move.
You'll remember what we want to do here is first take all the content on the page and shift it to the right so that it only occupies this section of the page. So, the first thing we need to do is find that container. I'll go to my browser and use the Developer Tools to find what container contains everything. And you see here we have three main elements for the single post: we have a header, we have the entry-content, and we have a footer.
And all of those three elements are contained within this article with a class post-container. So this is the element we want to shift to the right first. I'll go to my style sheet and find the main content section, and here, I'll add in a new style for a post container. This style is going to have a margin left, and now I just need to find out what that value is. So, I'll go back to my design. I'll find the total width, which is 940 pixels, and then I'll find the width of the margin we are going to add, and that margin is 320 pixels.
So, in my calculator, I go 320 times 100 divided by 940. That gives me 34.04, et cetera. I'll copy that and paste it in as a percentage. Now, you'll notice I am not rounding this out because computers are incredibly good at math, so there's no point in rounding it out. Ideally, you'd even have a longer percentage than this, but that's what the calculator gave me, so that's what I am using. I'll save this, and when I reload my browser, you'll see the content shift to the right like we want it to.
Now, I want to shift the header-content back to the left. So first, I'll identify the header-content container, and you see here, it's called header class entry-header. So I'll create that style. And I know that in this case I want to have a margin-left that is negative, and I just have to find that value. Going back to the design, I know that I want to shift it the equivalent of 320 pixels to the left, but now that percentage has to be relative to the total width of just this area, which is 620 pixels.
So, I'll go back to my calculator and go 320 times 100 divided by 620. This gives me 51.61, et cetera. I'll copy that, I'll paste it in, make it a percentage, and then I also want the entry header to float left, so I'll say float: left. And when I save this and reload my browser, the header is now floating to the left. However, you also notice that it's shifting everything down, and not only that, but it's spanning into an area it's not supposed to be in.
That's because we haven't yet defined a width for the header, so it's taking up 100% of the space. The final thing we need to do is go back to our design and look at what the total width of this header is supposed to be. You'll see here that we only have this much space for the header, because I left a 20- pixel gutter between the header and the rest of the content, so that it doesn't clash into each other. So, what we want to do is find the percentage equivalent of this width, which is 300 pixels, in relation to the total width, which we've defined here as 620 pixels.
Back to the calculator. We go 300 pixels times 100 divided by 620. We get 48.38, et cetera. I'll copy that and go width 48 point, et cetera, percentage, save, reload it in the browser, and now it lines up properly. More importantly, it will also scale down. So when I change the size of this window and we ignore the image for now, you'll see that these two elements size proportionately when the scale changes.
The final thing we need to do is add the media queries so that when we get below that breakpoint, everything realigns, so we get the title and everything on top and the content below it. So I'll go in here and copy out the styles I just created, go down to my media queries, and find the media queries for the breakpoint, which is here, at 719 pixels. We'll scroll down and find a logical place to place it, which would be right here. And I'll paste in my current styles, do some cleanup, and then I'll just reset everything.
So, the margin-left set to zero, margin-left set to zero, float set to none, and finally, the width set to 100%. Save that, reload the browser again, and everything snaps into place. Small screens, larger screens.
There are currently no FAQs about WordPress: Building Responsive Themes.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.