Recently I was maintaining a project were the original developer did everything using lists to present data in rows and columns like a table.
So to present something like this:
<table> <tr> <th >Cosher </th> <td>To treat with special fondness.</td> </tr> <tr> <th style='padding-right:12px;'>Flamboyant </th> <td>strikingly bold or brilliant; showy: flamboyant colors.</td> </tr> </table> <br />
they were using a ul like this:
<ul> <li>Cosher <span>To treat with special fondness.</span></li> <li>Flamboyant<span>strikingly bold or brilliant; showy: flamboyant colors.</span></li> </ul>
And then styling the list using CSS to make it look like a table.
This is a little less markup than a normal table but what for? It seems to me like the ‘no tables’ mantra taken to the extreme. This is perfectly appropriate content for a table. And using a table makes better sense because:
- Developer looking at the code will immediately know what the intention is
- The code is easier to maintain because you don’t have to fight with the css to make something look like a table when it is not
- The display is consistent in any browser
- People disabling CSS will still see a table
So please use tables when appropriate, don’t hate them.