Just wanted to point out that tables are not block elements, they're table elements. So applying display: block; to a <table> could have unexpected reprecussions (though I haven't tried this myself, so I don't know for sure).
Explorer doesn't support the "table" display value. So you might want to wrap each table in a <div>, if you go the display property route.
The difference between the display property and the visibility property, you'll soon see is that the display: none; declaration makes the element as though it doesn't exist at all, whereas the visibility: hidden; declaration causes the space that element would occupy to remain open, only the element is invisible.
Mail_IMAP: A PHP/C-Client/PEAR solution for webmail
Author: Beginning CSS: Cascading Style Sheets For Web Design