- Simplifying the CSS Selectors
- Creating the Header
- Paragraphs, Headings, and Lists
- Creating the Horizontal Navigation Bar
- Laying Out the Main Content Area
- Getting to the Bottom of It-Styling the Footer
- Putting on the Final Touches
Getting to the Bottom of It—Styling the Footer
We're very close to being done. But we need to get rid of the gray background in the footer so that the footer will use the background color from the page's body element.
We also still have the issue of the two 10px stripes of color between the main area and the footer to contend with. But that's fairly easy—and image-free! Just as in the header, all we need is a couple of borders.
- Click into the footer on the page. Delete the gray background from the #footer selector using your method of choice.
- Place a #2d2d70 10px solid border on the top of the footer.
Set the left padding to 40px (like the left column) and the right padding to 30px (like the right column). Remove the top and bottom padding.
This will ensure that our alignment matches the upper areas. Since the padding of the #footer p element already has a 10px top and bottom margin, we'll leave the top and bottom padding zeroed here.
Using shorthand, the code looks like this:
#footer { padding: 0 30px 0 40px; border-top: 10px solid #2d2d70; }
Now, remember our three columns are placed in a single div called outer_wrap. We'll use that div to place what appears to be the topmost border of the footer. However, it will actually be the bottom border of the outer_wrap div.
In the outer_wrap div, place a #36357d 10px solid bottom border on the bottom of the div.
This gives us the following code:
#outer_wrap { background: #403e8a url(images/main_back.jpg) repeat-x; border-bottom: 10px solid #36357d; }
We're really making progress—and with no images! We need to create a little bit of breathing room at the bottom of the main content area. If we place the bottom padding on our outer_wrap, it would push the inner_wrap up, and the faux column it contains won't appear to go all the way to the bottom any more (the background color of the outer_wrap would show in the space). Instead, we'll place it on the inner_wrap itself.
Select #inner_wrap on the tag selector. Place 20px of padding at the bottom.
#inner_wrap { background: url(images/liquid_left.gif) repeat-y 20% 0px; padding-bottom: 20px; }
Floating Left and Right
With the stripes created, let's turn our attention to the content within the footer itself. We have a copyright and an unordered list of links. One is on the right side and the other is on the left. It's not uncommon to want to align elements both left and right. There are several ways to accomplish this—from absolute positioning to floating one or more elements.
For our footer, it seems simplest to float the unordered list and leave the p element on the left. Let's put the XHTML code into our page first. Because a floated element must precede the element you want it to sit next to, place the ul before the p element in the source order.
Add the following code to the footer (removing the holder p element there now):
<ul> <li><a href="#">Home</a></li> <li><a href="#">Site Map</a></li> <li><a href="#">Contact Us</a></li> </ul> <p>Copyright 2005-2009 Pleasantville Regional Chamber. All rights reserved</p>
Let's quickly look at the CSS code beginning with the footer's p element. We previously created a global element selector for the p element. It is controlling the color and font-family for all p elements on the page. The footer is the only area where the p elements differ. They're not white, nor are they Arial, so we must override those properties with this more specific selector—#footer p.
Select the #footer p rule and give it the color value of #5C5A99. Select the Font-family that begins with Georgia, just like our headings. We'll also give this p element a width of 59% so that it only covers a little more than half the page—even if the text size on the page is a good deal larger than we designed for.
#footer p { margin: 0; padding: 10px 0; width: 59%; color: #5c5a99; font-family: Georgia, "Times New Roman", Times, serif; }
We'll turn our attention now to the unordered list. Since we've built two menus already, it should be pretty simple for you to create this one. We'll structure it like the top horizontal navigation, but style the links as in the vertical menu.
- Since we globally zeroed the list defaults, we'll start by creating a descendant selector (#footer ul) and floating the list right.
In the Properties pane of the CSS Styles panel, give the new rule a max-width of 39%.
Notice that the 59% width added with the 39% max-width gives us 98%. Staying below a full 100% width assures us that our p and ul elements will stay on the same line if the page is viewed with a larger text size.
#footer ul { float: right; max-width: 39%; }
Float the list items themselves to the left by creating a #footer li selector.
#footer li { float: left; }
Since we didn't give our ul a width, and it is floated, it has "shrink wrapped" its content and thus we can float our li to the left, keeping the links in the order we desire.
- Create a selector for the links - #footer li a. Set them to display: block (to keep them clickable for the full width), and style them with the light blue color (#5c5a99) and 10px padding all the way around. Remove the underlines.
Finally, create a grouped selector to set the hover/active/focus color to #FF9F00.
#footer li a { display: block; padding: 10px; color: #5c5a99; text-decoration: none; } #footer li a:hover, #footer li a:active, #footer li a:focus { color: #FF9F00; }
Figure 4.42 With the footer complete, we're down to some simple styling.