Table Tutor - Lesson 4

Let's get rid of `CELLPADDING` and `CELLSPACING` and go back to our simple little table.

    <TABLE BORDER=3>

    <TR>
    <TD>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

A cool feature of the newer browsers is the ability to specify background colors for a table cell, row or the whole table. You use `BGCOLOR` just like you would in the `<BODY>` tag.

    <TABLE BORDER=3 BGCOLOR="#FFCC66">

    <TR>
    <TD>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

    <TABLE BORDER=3>

    <TR BGCOLOR="#FF9999">
    <TD>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR BGCOLOR="#99CCCC">
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

    <TABLE BORDER=3>

    <TR BGCOLOR="#FFCCFF">
    <TD>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD BGCOLOR="#FF0000">Larry</TD>
    <TD>Curly</TD>
    <TD BGCOLOR="#3366FF">Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

Here's a handy chart I use to choose background colors. There are also 2 charts in HTML format, one with 216 colors and another with 1536 colors. You can also use
Color Picker for playing around with colors.

One more thing about these table background colors... a `<TD>` bgcolor will override a `<TR>` bgcolor and a `<TR>` bgcolor will override a `<TABLE>` bgcolor. Not that this needs further explanation but I'm kind of having fun with this so here's an example:

    <TABLE BORDER=3 BGCOLOR="#FF6633">

    <TR BGCOLOR="#009900">
    <TD BGCOLOR="#9999FF">Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

Let me take a minute to esplain something. A browser has to interpret the instructions you give it the best way it can. If something has not been specified one way or another, most browsers will try to come up with an attractive solution. The best thing you can do as an author is to specify as much as you can, especially those things that are important for your page to look right. It is also important to view your work through those browsers that people actually use. Since most people use Netscape or Internet Explorer, that is a good start. You may also want to have a copy of a couple other less popular browsers to be sure that you look right to them too.

Another consideration is screen resolution. I work on a 640x480 screen. Many people use 800x600 and many have theirs set to 1024x768 or even 1600x1200. This simple difference has the potential to seriously mess with your page design. There is a little Win95 utility that I use called QuickRes that can change your screen resolution back and forth with the click of a button. It's not a bad idea to view your pages through other resolutions.

Now we will play with `COLSPAN` (Column Span) and `ROWSPAN` (Row Span maybe??). Let's suppose Ed beats the crap out of Tom and throws him out of the table. Just doing that, this is what we have.

    <TABLE BORDER=3>

    <TR>
    <TD>Ed</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Rick
Larry | Curly | Moe

It just left an empty spot and Rick slid over to fill the void.

If we want Ed to actually take possession of Tom's cell and make the area part of his own, we have to use the `COLSPAN` attribute like so...

    <TABLE BORDER=3>

    <TR>
    <TD COLSPAN=2>Ed</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Rick
Larry | Curly | Moe

To emphasize the point I made earlier, about the browser trying to find an attractive solution, let's make Ed span two columns but we'll put Tom back in. We will deliberately introduce a discrepancy just to see how the browser handles it.

    <TABLE BORDER=3>

    <TR>
    <TD COLSPAN=2>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

The point is 1) The browser is very forgiving in that it does the best it can with what you give it. 2) It is very important to specify what is important and make sure there are no discrepancies or you may end up with a surprise. And 3) there's very little you do with html will crash the other person's browser no matter how badly you may have messed it up, so don't worry about that.

OK... let's take Tom back out (the poor sap).

    <TABLE BORDER=3>

    <TR>
    <TD COLSPAN=2>Ed</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Rick
Larry | Curly | Moe

Rick gets scared and he leaves. Ed takes over Rick's cell too, and just cause he's that way, he stands right in the middle of the cell.

    <TABLE BORDER=3>

    <TR>
    <TD COLSPAN=3 ALIGN="center">Ed</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed
Larry | Curly | Moe

All other html coding, by the way, can be used in a cell. We'll make Ed bold as an example.

    <TABLE BORDER=3>

    <TR>
    <TD COLSPAN=3 ALIGN="center"><B>Ed</B></TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed
Larry | Curly | Moe

We'll make him a link to my homepage.

    <TABLE BORDER=3>

    <TR>
    <TD COLSPAN=3 ALIGN="center"><A HREF="http://junior.apk.net/~jbarta/">Ed</A></TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed
Larry | Curly | Moe

Now get rid of all that stuff, bring back Tom and Rick and we'll dive into `<ROWSPAN>`.

    <TABLE BORDER=3>

    <TR>
    <TD>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Larry</TD>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Larry | Curly | Moe

As you may have guessed, `<ROWSPAN>` is just like `<COLSPAN>` 'cept y'all span rows instead of columns. (Not exactly brain surgery... is it?)

If we remove Larry and let Ed take over his cell, this is the result.

    <TABLE BORDER=3>

    <TR>
    <TD ROWSPAN=2>Ed</TD>
    <TD>Tom</TD>
    <TD>Rick</TD>
    </TR>

    <TR>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom | Rick
Curly | Moe

And of course, these attributes can also be used in combination.

    <TABLE BORDER=3>

    <TR>
    <TD ROWSPAN=2>Ed</TD>
    <TD COLSPAN=2>Tom</TD>
    </TR>

    <TR>
    <TD>Curly</TD>
    <TD>Moe</TD>
    </TR>

    </TABLE>

Ed | Tom
Curly | Moe

`<--BACK` `NEXT-->`

General Table of Contents | Lessons Intro - 1 - 2 - 3 - 4 - 5 - 6 - 7 | Quick Reference | Barebones HTML Guide
PROFESSIONAL WEB DESIGN