Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
In our last movie, we focused on creating the basic structure of our site layout. Although we did write some basic CSS for our regions, they were more so that we could visualize them within the layout rather than being part of our final layout. In this movie, we're going to write the CSS that's going to focus on our container elements and the basic positioning attributes, leaving the creation of our two-column layout for our next movie. In both movies we will focus not only on using the layout techniques we've learned so far but also on the organization and overall strategies of our layout CSS.
So here we have our index.htm from the 10 _08 folder and we're kind of picking up right where we left off. In the last movie we went ahead and built the structure of this and put in some placeholder CSS. Well we want to write some more robust CSS in this movie and write the CSS that's going to control our actual Explore California layout. So we are going to work with the same basic structural elements that we had before and I'm just going to come over here to the CSS Styles panel, maybe pull that divider down a little bit, so I can see these guys a little bit better.
I want to talk about some of the styles that we are going to be writing. Now the first style we are going to be writing is actually a new style to this, and what we are going to be doing is dealing with the fact that all browsers out there have default margins and padding that are used for the body tag. It offsets the page slightly from the top and the left corner of the browser itself and all browsers are slightly different. So if you want a consistent positioning, either left-to-right or top-to-bottom, a good idea is to go ahead and zero those out. So what I am going to do is go over to my CSS Styles and I am going to click the body tag.
It's the top-level tag and then I just want to create a rule close to that one. And I am going to choose New CSS Rule. Now here I am going to grab the Selector Type and choose Compound. Remember, Compound allows me to type in pretty much whatever I want. Here I am going to type in html,body. So that is a grouped selector and it's grouping both the HTML element selector and the body element selector. So why are we doing that? Well, it's interesting. Most browsers view the body tag as the parent tag but there are some browsers who view the HTML element as its top-level parent tag.
So in that case, we're going to go ahead and write a selector that applies to both of them. So no matter what browser we're in, we're zeroing out those default margins and padding. So I am going to go ahead and click OK, I am going to go to my Box category, and for padding I'll type in 0, Same for all, margin 0, Same for all, and I'm going to go ahead and click OK. Now notice what happens for our page layout. It aligns to the top of the document window and to the left of the document window, indicating that there are no default margins and padding affecting our page, perfect! Now, next thing we need to do is refine our body tag selector a little bit.
So I am going to go over to my CSS Styles panel, double-click the body tag and we're just going to make a couple of general changes here. Now the first thing I am going to do is go to my Box properties and here I am going to deselect Same for all for margin, but I am going to give this a top margin of 25 pixels. Now you would probably sit here wondering, wait a minute, I thought we just took the margin off of the body tag. Here you are, putting it right back again. Well, what we did with the previous rule is remove the default margins and padding. Now we're explicitly telling every single browser out there, we want our body tag to push everything down by about 25 pixels.
That's going to give us a little bit of space between the top of our page and the top of the browser window, and for the layout that we're doing that is exactly what we want. Next we're going to go to the Block category and we are going to do something that for some of you guys might be a little unexpected. We're going to change our Text-align property to Center and to which a lot of you might reply, what? Well, what's happening here is that we want our page layout centered on the page. Older versions of Internet Explorer have a little bit of a problem with the technique that we're going to use to do this.
To center our layout on the page, we're going to use auto margins on our wrapper div tag. Well since older versions of Internet Explorer have a harder time dealing with that, we use text-align center on the parent tag. That's going to move everything to the center of the page in those older versions of IE, but it has the downside of physically centering all of our text. So in another selector we are going to have to deal with that. One last thing here, we're going to change the background property for our body tag too. We want to display a background graphic. That's going to give the illusion of a gradient going from blue to sort of a sand color.
So we are going to change our Background-color to #e1d8b9, so e-1-d-8-b-9. If you hit Tab, you will see a sort of a light tan color there or maybe a little bit of a sand color. Now the Background-image we're going to put in, I am just going to browse for this and I am going to make sure I am in the 10_08 folder. I am going to go into _images directory and what I am looking for is this page_background.jpg, so you want to browse down and find page_background.jpg.
Now this is interesting. If we look at this in the little preview window over here, we can see that it is 1600 pixels tall but only 10 pixels wide. So it's a really small graphic but it's really big in terms of its height. Now how in the world is that going to give us the illusion that we have this sort of solid gradient going down the page? Well I'm going to click OK here, but then what I am going to do is for the background-repeat, I am going to grab the pulldown menu and choose repeat-x. That means instead of tiling this background graphic, which would be the default, it's only going to repeat it along the X-axis.
So it's going to repeat it over and over and over again horizontally, but not vertically. When we click OK, we can kind of see that in action. I am just kind of go ahead and scroll down the page. You can see the gradient and then it finally fades out to that sort of sand color. So no matter how tall the page gets, that sand color will sort of be there down at the bottom but as I scroll up, it will have that gradient fading into the blue. So it's kind of a nice way to achieve that effect. All right the next thing we need to do is center our page layout in the browser window. We're going to do that by taking advantage of the fact that our page layout has a wrapper div tag.
This wrapper becomes kind of the container for our entire page and is typically used to control the remainder of the layout. So I am going to go to the #wrapper right here, double-click that, and there are just a few changes we want to make here. Now the first thing that we're going to do is we're going to go down to the Box category. This is where we are going to make the majority of our changes here. Our width is 930 pixels and that's fine. We don't need to change that at all. What we are going to change is margin. So I am going to deselect Same for all and for the top margin and the bottom margin, I am going to type in 0. I don't want any additional margin there. However, for the right and left, I'm going to choose auto.
Now here's what that's going to do. Basically it's going to say hey, other than the 930 pixels that I need for my width, anything left over I want you to automatically split between the right and the left. So it will calculate the remaining value. It will put half of it on the left, half of it on the right. That's going to result in our wrapper centering the content right in the middle of the page. Now remember, we still have that sort of messy text-align center that we placed on the body. Well here's where we reset that. So I am going to go right to the Block category and I am going to choose text-align left.
That's going to reset basically all of our text alignment so that anything within our wrapper will be left aligned. I am going to click OK and there we go. The wrapper now centers within that page, our text-align is left and we're still focused at 930 pixels wide, perfect! Now the last thing we are going to do here before we tackle our two-column layout in the next movie is address our header. So our header needs to be positioned just up and to the right of the remainder of the page and this is where our logo is going to go. So we're going to use absolute positioning to do this.
Now if you remember from the Absolute Positioning movie, were we to use absolute positioning on the header right now, we wouldn't achieve our desired result. The reason for that is because the wrapper div tag doesn't have a position attribute, so it'd use the body tag to determine where it should appear in our browser window. Well we need to change that. So let's go back to our wrapper one more time. We're going to go down to Positioning, and we are going to choose position relative. Now I know plenty of people who just do this automatically. Anytime they have a container or a wrapper div tag, regardless of whether they are at that time planning on doing any positioning inside of it, they will just go ahead and give it a position relative anyway.
The lot of times it will fix some of those Internet Explorer bugs caused by the hasLayout problem, and they also go ahead and give you the foundation of saying "anything that you position inside of me will be relative to me and not the body tag." So now we are going to go ahead and click OK and we won't really see any visual change there. Well next, let's go ahead and finish up by positioning our header. I am going to double-click the header selector and the first thing we are going to do now is go down to the Positioning category. Well, here we need to change this to position absolute. Our width and our height are fine so we don't need to change that, but we are going to be doing some offsets here.
Our top offset is going to be -25 px. Now if you remembered earlier we applied 25 pixels worth of margin to our body. So essentially what we're saying here is we want our header to move back up and align with the very top of the browser window. We're also going to give it a left offset of 35 pixels. That's going to push it 35 pixels over to the right of the edge of our wrapper div tag. Now that's really all we need to do here but while we're at it, why don't we go ahead and place our background -image inside of our header? We can certainly place an image tag in here but this is purely for visual reasons.
There is no reason for us to pass the picture of our logo to any type of screen reader or any other user agent. So let's go ahead and use a background-image here. So I am going to go to Background. I am going to delete the existing background-color and then I am going to browse for our background-image. Now I want to go in the 10_08_ images directory and find the logo.gif. Notice that it is a 192 pixels wide, 237 pixels tall. That is the exact same measurement that we gave to this div tag. So it's going to give it enough space to display the entire logo.
I am going to click OK and just as we did with the page's background-image, we're going to control how this background-image repeats. However unlike the page's background- image, we don't want any tiling at all. We only want this logo to show up once. So for background-repeat, I am going to go ahead and choose no-repeat. Now it says only show this once and don't tile it ever again. We will click OK. Well, the majority of our layout styles are now finished. We're removing the default page margins that might affect our layout, using the wrapper div tag to define the width of the page and center our content on the page, and we're using absolute positioning to style our header and place our logo visually on the page.
Next, we will need to finish our layout by creating two columns through floating and we'll tackle that in our next movie.
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.