Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
When controlling element positioning on the page, there are three positioning models that your browser is going to use: normal document flow, absolute positioning, and floats. In this movie, we will discuss absolute positioning and relative positioning, which is actually considered part of normal document flow, and we will discuss floats in our next movie. So absolute positioning is going to take an element and actually remove it from your normal document flow. Your normal document flow basically states that block level elements position themselves on top of each other from the top of the page to the bottom of the page, and inline level elements will go from left to right. So in this example, in normal flow, div tags, Box 1, 2, and 3 are positioned right on top of each other because that's the order that they come in the content. So Box 1 is first, then Box 2, and box number 3. And based upon their margins and padding, we learned about in the box model in the last movie, they are going to space themselves out accordingly. Well, if we start adding positioning attribute to the mix, and we start working with absolute positioning, we can take one or more of these elements and actually remove them from that normal document flow.
So you can see on the right-hand side of this line, we have a selector called Box1 and we are defining with a width of 100 pixels, and we are giving it absolute positioning, and then we are using the let and top properties. Now you can use left, top, right, and bottom, to choose which corner or which edge of the element is going to be positioned, and in this case, we are saying left and top. So we are saying left of 50 pixels, top of 200 pixels. Now positive left values are going to move you to the right, positive top values are going to move you down. So if you wanted to move to the left, or you wanted to move up, you would use negative values. So you can think of the top left-hand corner of the page as being at 0, 0 point on the X and Y grid. So if I move it over by 50 pixels, and then move it down by 200 pixels, I am moving it away from the other two elements. Now because we have removed it from normal document flow, box number 2 and box number 3 react as if Box 1 weren't there anymore, and they move up to occupy that position. Because of the fact that we have removed them from normal document flow, you can sort of think of any position elements as sort of hovering above your other contents. So box number 1 actually does something that up until now was impossible in HTML, which is it positions itself on top of another element. It's hovering over box number 3. Now, absolute positioning is pretty easy to understand and a lot of people use it to lay their pages out, but you have to remember something else too, once it's removed from the normal document flow, the other elements don't react to any change that you make. So if I took Box 1 and added a bunch of content to it, as it stretches down, the content on the rest of the page of the other elements, they don't react to it. So they won't not react. So using absolute positioning is really good for fixed layouts where the size of one element really isn't going to change a lot, or one element doesn't need to push another element down if you are going to be changing its size. So absolute positioning, remember removes it from normal document flow. The other elements move up to take where it was positioned prior to that, and it has the ability to hover on top of any other element that you want. Now I am going to contrast that with relative positioning. Now relative positioning basically takes the element and it moves it relative from its normal starting position. So absolute positioning actually moves it relative to the parent container. So for in the body tag it moves it relative to the body tag but relative positioning moves an element away from where its normal starting position was. So in our example here again, we have box number 1, we are positioning it using relative positioning and then we are giving a left value of 120 pixels, which is moving it over to the right by 120 pixels. Notice that box number 2 and box number 3 remain unchanged, but they don't move up to take its place, and that's because they still believe that Box 1 is occupying that spot. So if we were to take box number 1 and add more content to it, Boxes 2 and 3 would react to that. So it's still part of normal document flow. So that gives us a little background in absolute and relative positioning. What we are going to do now is we are going to go back into Dreamweaver and we are going to do an exercise where we take certain elements and we use both Absolute and relative positioning on them. Here we are back in Dreamweaver and we have the positioning_ test.htm exercise file opened, and you will find this in the Chapter 3 Exercise Files. Notice that we have three div tags Chapter 2, Chapter 3 and Chapter 4. They are actually div tags and we have an ID of box number 1, box number 2, and of course box number 3, and they all have a different segments of one of my favorite books, Animal Farm, in it. So we will go ahead and we will use positioning to move these elements around and we will first use the box number 1. So I am going to go ahead and write a selector for that. So I will go to my CSS Styles panel, and click on New CSS Rule, and we will just do #box1, and I am going to define it in this document only. So I will go ahead and click OK. Now I am going to click on Positioning, and I am going to change the Type of Positioning to absolute. Now you are going to notice a couple of other types in there, fixed and static. They are not as widely supported by older browsers and they are really used more to fix the positions of something on page, for example, if you wanted your navigation to remain constant as somebody scrolls, you just use fixed positioning. So I am going to choose Absolute, and again if I look at the category below that where it says Placement, there I can choose Top, Bottom, Left, Right, and sort of thing. Now I'll use my Top and Left, and again when you are using absolute positioning, you are moving it in relation to its parent container and it's the parent container that contains a positioning attribute. Now that can sound confusing but what it boils down to is this. If the element is inside of another element, if that element that it's inside of the parent element does not have a positioning attribute, it uses the next highest one that does which eventually is going to become the body tag. If the parent element does have a positioning property, maybe it's positioned with relative positioning, then it uses that element as the 0, 0 point, and we will actually see that as we start getting into the Cheek Chastain inside. So I am going to take the Top value and I am going to move the Top value down by 100 pixels. I will take the Left value and I will move the Left value over by 50 pixels, and I will go ahead and click OK. Now you can see what happened to box number 1, it moved down the page, and it moved over to the right. But notice what happened to Chapter 3 and Chapter 4 below it. Because we removed it from normal document flow, they moved up to occupy that position and Chapter 2 is now overlapping them, and maybe that's what we want, maybe it's not we want. Notice if I highlight this content, and copy it and then paste it, again to extend it, wow! The box itself is expanding. The content underneath it is not reacting in any fashion whatsoever.
So now that we have tested absolute positioning, let's change our selectors, so that we are using relative positioning. I will go back to box number 1 and because I want to see that dialog box and actually see that different categories, I am going to go back up to my CSS Styles, All Rules. I am going to double-click on the Box 1 rule. That will bring this dialog box back up again. So I am going to click on Positioning and I am going to change my type from absolute to relative, and maybe I will change the Positioning too. Maybe I will change the Top position to 50, and maybe I will change my Left position to 300, and click OK. Now it moved down a little bit, and then over, but notice what happened to Chapter 3 and Chapter 4 or more importantly, notice what didn't happen. They really didn't move. They certainly didn't move up to take the place of where Chapter 2 used to be. Now if we try to test again by extending content, highlight the content, copy it, paste it. Notice what has happened to Chapter 3 and Chapter 4. They are now pushing down the page because Chapter 2 who they still see in its original place is expanding. They are going to expand as well. So we are still really working with normal document flow. So relative positioning allows us to sort of nudge elements over the side, up a little bit or over to the left, without really breaking normal document flow or causing re-flow within your document. So our next movie is going to focus on floats, and how floats get into the equation of positioning, but understanding absolute positioning and relative positioning is crucial to tweaking your layout, and making sure the elements are exactly where you want them inside their container elements.
Get unlimited access to all courses for just $25/month.Become a member
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.