Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
So at the end of the last movie we had the situation, seen here were, we have two columns, one on the left one on the right and variable amount of space between the two. I mean, it doesn't change as long as the browser window doesn't change the width and very few people ever to change their browser window. It's, while they're browsing around the Internet, but what this means is that someone has their browser window maximize to 1024x768 is going to see this much of a gap, where someone who has 800x600 is only going to see this much of a gap and you know, maybe that's Ok with you and maybe it's not.
In my case I'm going to assume that it's not and that we wish to fix this. So, what we're going to do, Well the first thing we are going to do is take the width off of the content completely. Just no width. Actually, if we save and reload what we discover is that because there's a bunch of content here the float, basically, it expands until it can't be any larger and then it stops. That doesn't leave enough room for a sidebar, but we're going to address that in just a moment. The next thing is that we're going to add some padding to the content div.
We're not going to have any top padding, we're going to have a whole mass of right padding, we'll make this 20em, which is wider than the 17em, the width of the sidebar. The key here is that you want the padding on the side or you want the sidebar to go wider than the actual sidebar. A little bit of bottom padding, a little bit of right padding to push the content over then if we go back to the web browser and hit Reload, OK, same basic situation. The content is being actually pushed in from the left by the left padding, but on the right we have this big blank space, created by that 20em of right padding. And it's into that big blank space that we want our sidebar to go, because of like I said, the key is that you make that padding wider than the actual sidebar, or whatever it is that you want to float over there. These are both floats, so we need a way to get that second float, the sidebar up into the space that we just created for and you might think that you could do it by pulling the float upward by grabbing the top and pulling it upward but that actually doesn't work, because of the way CSS is written.
So what we're going to do instead, is we're going to cheat just a tiny little bit and when I say cheat, what I mean is exploit the way that the CSS float algorithms actually work. So the key here is to have a situation where the mathematical width of the sidebar in this case, the second float is zero or less. So in this case, we have a sidebar with a width of 17em and a, in this case left margin of minus 18em.
So that actually, mathematically, gives the layout box, a layout width of negative 1em, the important thing being that it's zero or less and If we do that, when we hit Reload, ding, tadaa!, there's the sidebar, right where we want it. Why that works is that the CSS float layout algorithms say that if you have floated elements that have the potential to sit next to each other, you can have as many of them next to each other as will fit from side to side.
And if there isn't room for a float, then that's when it drops down. Well, here, because the, the width of the sidebar is zero or less, there's always room for it, there's no such thing as a situation where there can't be room for it really. So, there's a place for it to go and so it's drawn there. The way that it gets drawn is governed by other portions of the foot algorithm, so you end up with these two columns basically next to each other, in fact, they are overlapping, I mean you can see that. The background color on the content div makes that very clear, that you're actually overlapping a portion of the content div with the sidebar div. This is why you have to be careful.
If you don't think about this far enough in advance, if we hit Reload here, after having dropped that right padding from 20em to 3em, yes the content is going to get completely overlapped because as far as that content is concerned there really isn't a float next to it on the right side for it to flow around because of the trick that we did, making them lay out with effectively negative. So if you're going to do this, make sure that you leave enough space and of course have 20em of right padding here, the sidebars with the 17em, so that will leave a difference of 3em, which is the distance between the two and now, we can reflow this, we can change the width and the sidebar stays right next to the content and there's no problem there, and it reflows very nicely. Just as you might expect, a layout to do and if we take off our little diagnostic background then there we go.
We have one column next to another, just using a little floating trick. Negative margins actually do get their own video in Chapter seven, so that's somewhere else to check out if you want to dig a little more deeply into the whole concept of using negative margins in certain ways, but it's really things like negative margins that allow for some creative design effects and some creative layout effects. If you're thinking at the moment however of using negative padding, please don't because there is no such thing. Padding can never be less than zero. Margins on the other hand can be less than zero as we saw in this video.
Get unlimited access to all courses for just $25/month.Become a member
82 Video lessons · 103250 Viewers
58 Video lessons · 55935 Viewers
61 Video lessons · 89985 Viewers
56 Video lessons · 105102 Viewers
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.
Your file was successfully uploaded.