Take a look beneath the surface
![]() | |||||||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||||
![]() | This could really be done much more simply. | ![]() | ![]() | Guess how much markup there is in this little table? 13.7k. There are 17 rows and 9 columns in this thing. And did I mention all of the spacer GIFs? | ![]() | ||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ||||||||
![]() | |||||||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||||
![]() | There are way too many table cells and spacers in here. | ![]() | ![]() | And all of the dotted borders are done with a background attribute on table cells, which won't validate.
| ![]() | ||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ||||||||
![]() | |||||||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||||
![]() | This could all be done with 8 table cells and 4 CSS rules. | ![]() | ![]() | Seriously. 8 cells and 4 CSS rules, that’s all it takes.
| ![]() | ||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ||||||||
![]() | |||||||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||||
![]() | You need a rule for <table>, one for <td>, one for <ul> and one for <li>. | ![]() | ![]() | That’s it. Once you have those you're golden.
| ![]() | ||||||||
![]() | ![]() | ![]() | ![]() | ![]() | |||||||||
![]() |
The code that shows the table structure:
table{ margin:3px; padding:2px; border:solid 2px blue }
td{ padding:2px; border-style: solid; border-width: 1px; border-color:gray gray silver silver }