Keep in mind I’m not an HTML expert. I’m actually going through the learning curve of moving a PostNuke site and an MD-Pro site to Xaraya, and Xaraya’s all about XHTML and CSS conformity. So… I’m going through some of the pains myself, and what I’m saying shouldn’t be regarded as coming from an expert!
That said, tables are “supposed” to be used for displaying tabular data. I see nothing wrong with a 1x1 table cell, which is what you used. It’s a convenient container, and it exhibits the exact behavior that you want.
As for semantic reasons for being “bad,” is because it requires <table><tablebody><tr><td> to display anything. That’s three superfluous tags, each of which much also be closed (okay, no one really uses <tablebody>). The rest of the tags are useless, and therefore “shouldn’t” be there.
My feeling about when people complain about tables for layout is for something like this: my page. It’s table within table within table. The entire layout is table driven! Tables nested in tables. That’s the “evil” that the “experts” talk about. It’s also one of the sites I’m moving to Xaraya and doing away with the tables.
Another problem with my site in particular are the table images (the things that give me pretty borders). They should be in the CSS, not in the HTML content. I’ve already worked that out, thanks mostly to the link I provided in my previous post. CSS3 will solve this issue, but for the time being I still have to use non-semantic DIV’s to accomplish the same thing. What I mean is that instead of saying something like <div class="myborderedtable> I’m using non-semantic markup similar to using a table (but not! a table!) to achieve purely a visual effect, like this: <div class="container><div><div></div></div><div>content</div> etc. The extra DIV’s don’t do anything, and looking at my HTML without reference to the stylesheet, you’d think I’m crazy. Why are they there: for the sole purpose of making my layout work. So I’m violating the principle of not having layout stuff in my HTML.
Given the overall state of things, I see nothing wrong with your tables, and my own stuff is necessarily a hack until CSS3 saves us all.