Web design, unfortunately, isn’t like most other forms of graphic design. For magazine and book projects, software like InDesign lets you place text and images anywhere you want—and even rotate and overlap them. But web designers are stuck with the basic technology of HTML, which wants to flow from the top of the window to the bottom, in one long column. To place elements around the page and create multiple columns of content, you need to resort to some fancy footwork.
For much of the Web’s short life, designers have used the HTML <table> tag to control the position of elements on a page—to create columns, sidebars, banners, and so on. Unfortunately, since the <table> tag was intended to display information in a spreadsheet-like format, bending it to a web designer’s will often resulted in complex HTML that downloaded slowly, displayed sluggishly, and was very difficult to modify.
Now that CSS-friendly web browsers like Internet Explorer, Firefox, Safari, and Opera rule the Web, designers can safely rely on a much better (though often frustrating) method: Cascading Style Sheets. That’s right; not only is CSS great for formatting text, navigation bars, images, and other bits of a web page, it also has all the tools needed to create sophisticated designs, like the ones shown in Figure 9-1.
CSS provides two ways to lay out a web page—absolute positioning and floats. Absolute positioning lets you position an element anywhere on a page with pixel-level accuracy—or ...