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 jQuery Masonry hooked into our theme, it's time to apply it to the index page to create an index page with a Masonry layout. But before we do that, let me explain exactly what we are going to do. When I designed the Anaximander theme, I had a plan for two different index page layouts, so it's clear to the visitor where they are. On the front page, so the regular index or the blog index, I want to use Masonry to lay out the content in three boxes, one next to the other.
But on all the archive pages--so Author archive, Regular archive, Category archive and Tag archive--I want to retain this regular type of index where one post stacks on top of the other and we have a regular sidebar. That means a) we're only applying Masonry to the index.php file and b) we have to retain the styling for this regular index. Looking at the index page, we can see what we need to do here. First, we need to get rid of the sidebar. We then need to reorganize the content itself to match the Masonry layout. And finally, we have to make sure that on the bottom here, our pagination stays on the bottom and works properly.
But just before we dive into the code, let me show you something that I have hidden inside this theme. If we select a single post here, you will see that there's this figure class "the-thumbnail" that's inside the code, and if you look at the code itself, you will see there's an image here, but it's hidden using the style over here, regular-index .the-thumbnail display set to none. If I turn that style off, you will see that each of these posts actually has a thumbnail attached to it.
The reason why I hid it is because right now it looks kind of weird and I only want to use that thumbnail image in the Masonry index. That's also why it's sized the way it is. But if you want to have these featured images on each of the posts also in regular indexes, all you have to do is find out style in the style sheet and take it away. Now let's get down to business. The first thing we need to do is get rid of the sidebar. I'll go to my theme, find index.php, open it in my editor and then if I scroll to the bottom, we find a call to the sidebar right here.
Now, because I'm not 100% sure I want to get rid of it yet instead of deleting the function altogether, I am simply going to comment it out, and by commenting it out inside the php delimiter, it won't get rendered in the page. If we were to place HTML comments on the outside of the php delimiter, this code would be rendered and then hidden in the HTML. But I want to just hide it all together. So I'll save that, reload my page, and the images disappear of course, because I still have the style, but more importantly, you see that my sidebar disappears, and that's what I want.
Now I need to hook Masonry into the content on my page so that Masonry can realign it. The way that works is I tell Masonry what content it should work with and then Masonry applies the necessary styling and the necessary code to that content. To find out what that content is, I'll use my Developer Tools to identify the containers that contain all of those content. And if we look here, you will see that on my index page, I have a section with an id called regular- index and I also have a divider with an id called regular-content and clicking on them, you can see that these are the two containers that create the space for the sidebar.
Now I said previously I want to retain this layout for the other index pages, meaning rather than going in and changing the styling for regular-index and regular-content, what I need to do is create new names for these ids so that I can apply new styling to them. But if I look closely, I see that the regular index id in the styling is the one that creates that extra space we need for the sidebar and regular-content just responds to that style. So I should be able to remove regular-content altogether without affecting our Masonry layout.
I simply don't need it. So I'll go into index.php and find regular-content right here and I'll comment this out and see what happens. And of course, when I comment out the beginning of a div, I also have to comment out at the end. It's down here. so I'll simply move this comment over so that it's gone, save index.php, reload it in the browser, and now my content spans all the way from left to right, which is exactly what I want.
The last thing I need to do is rename regular- index to something else so that we can create custom styles for it, and here we have a bit of a chicken-and-egg situation, because this is the id that we'll be targeting using Masonry, and if you look at the function you created previously in the functions.php, you will see that that name is already defined right here, because what we are doing is we are creating a small function that tells Masonry to handle the content inside the masonry-index ID. And what Masonry will do is it will find each item inside the masonry-index ID, and then the items with the index_post_container classes are the ones that are going to be reorganized by Masonry.
So what we need to do is change the name of the ID from regular-index to masonry-index. So I'll go in here, change it to masonry-index, and then I'll also change the comment that closes it, so I see where it is. I'll save it again, reload my page. The images will appear again because the styling that hid the images were applied to regular-index, but more importantly, if we look at one of these single posts again, you will see that each post now has this index_post_container class attached to it, and it's also set as a masonry-brick, meaning that now Masonry is handling each of these items.
If you paid very close attention, you will also notice one other thing. The pagination is all of a sudden up here. That's because the pagination is floating based on the overall content. So the last thing we need to do here is move the pagination out of this container altogether so it doesn't appear here, but rather, down at the bottom of the page. So to close-up, we'll go and find our pagination, which is right here, cut it out, and just place it outside the masonry-index section. Save it, reload the page, pagination is no longer here, and if we scroll down to the bottom, it appears at the bottom where it's supposed to be.
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.