@wolfcry911 thank you that really is fantastic. Addressing a few things in your post. First about “semantic”. I guess I think of semantic as “style free” which is almost certainly an error in my thinking. I really like what you did with the HTML, it is much cleaner. I would however argue that if you think of a
div as just a means of naming “stuff”, and the class names attached to the div are descriptive (or meaningful, or consistent, or all three) enough, that it qualifies as a certain type of semantic. Maybe not the way the term is used by others, but what I was mostly trying to achieve was a markup of the functional bits, and letting the CSS worry about rendering them and placing them.
Second, the layout. The pen I originally wrote was something I hacked up in CodePen to illustrate my intent, not the actual application. I find when I am trying to understand a concept, rather than trying to just solve a specific application bug, that it helps to frame things in a different context because it tends to eliminate assumptions. The actual application that this will be used on is a forum. The data along the top would be: topic name -> reply count -> name of last person who posted, and the second row would be the date the topic was created and by whom, and on the right (under the last person who posted) the date on which they did so. So in the actual application the layout makes sense (to my eyes at any rate).
Of course it is my hope that if I produce good enough HTML that I can give the HTML and my initial CSS design to an actual designer (which I am not, I am a C programmer) and have them make it look pretty. The thing that spits out the HTML is written in C so a real designer is probably not going to want to fiddle with that, and will just use CSS (although of course if they tell me that the HTML I am producing is hampering design I can of course change the app to emit different HTML).
Thank you very much for taking the time to respond, I appreciate it and you have given me things to think about.