CSS and the End of Tables
In the bad old days of the web, the only way to create even
slightly complex layouts was to use tables. Some sites featured
silly numbers of tables, one inside the other, to create
relatively simple-looking effects. With CSS, though, tables can
finally be replaced.
What's So Bad About Tables?
If you've ever worked with a site that uses tables, you'll know
just how difficult it can be. Your HTML becomes a mess of
confusing rows and columns, with no clear markers of which parts
of the page do what. If you want to redesign the site, you're
forced to try to extract your content from the HTML and start
building the tables all over again. With tables, building web
pages felt a lot like building a house of cards.
What's CSS?
CSS stands for Cascading Style Sheets. CSS lets you apply
styling information to specific parts of your HTML, identified
by tag name, or by IDs and classes you specify. This is done
using CSS selectors.
CSS Selectors
The first thing you need to know about CSS is the basics of how
selectors work. There are lots of esoteric and mostly useless
selectors, but the basics aren't too hard to grasp.
CSS relies on your tags having classes and IDs - the only real
difference between an ID and a class is that an ID refers to one
tag and one only, while a class can refer to more than one.
If you just have the name of a tag on its own, then your CSS
rules will affect all of those tags. If you use a tag's name
followed by a dot and the name of a class, then you'll affect
all of those tags with that class. Using a tag, a hash and an ID
name will affect only the tag with that ID. Using the hash and
ID alone will work on any tag with that ID, while using a dot
and class name along works on any tag with that class. So:
p - all paragraphs p.thing - all paragraphs in the 'thing' class
p#thing - the paragraph with the ID 'thing' .thing - all tags in
the 'thing' class #thing - the tag with the ID 'thing'
To add rules to each one of these selectors, you just put curly
brackets ({}) after it, and then put the rules in that space -
that's all you need to do to create CSS.
Useful CSS Rules
CSS rules look like this:
rule-name: setting;
Here are some of the most useful rule names and the different
settings that can be applied to them.
background-color. Lets you set a page's background colour using
HTML colours (they look like this: #123456).
color. Sets colours for text.
font-family. Lets you set fonts for your text - you can add more
than one font name, separated by commas, in case your first
choice is not available.
font-size. You can set the font size in px or em - it's better
to use em, as these measurements are relative rather than
absolute.
width and height. Lets you specify the width and height of
things. You can use px or percentages.
margin. The amount of space around the edges of some content.
You can add -left, -right, -top and -bottom to margin to specify
these margins individually.
padding. Works the same way as margin, but is for the space
between the edges of the tag's box and its content, instead of
the space between the tag's box and other boxes.
border. Puts borders around boxes. Takes three settings (width,
type and colour), so you have to put spaces between them, like
this: border: 1px solid black;
text-align. Lets you align text on the left or right, or in the
centre ('center').
text-decoration. Controls some text effects - mainly used to
stop links from being underlined, like this: a {
text-decoration: none; }
float. Tells content to float over other content, instead of
starting underneath it on a new line. This is the tag most often
used to simulate the kind of effects that you get with tables -
floating a div and setting the main content area's margin to its
width is one of the easiest ways to create a sidebar, for
example.