Hey Joseph,
A lot of email clients don't render embedded CSS, only inline. I would think a <div> and a <table> tag would be 100% by default, so maybe that is why those are working. I'll assume you are using media queries for you responsive design. When i need to add a class or an id, there are a couple of methods, but keep in mind, they will only work on clients that don't truncate the embedded CSS. When I need to add a class or an id, here is what I do:
In your embedded (not inline) CSS:
<style type="text/css">
body[yahoo] #full-table{width:100% !important;}
</style>
In your body tag:
<body yahoo="fix">
there are other solutions that just look like this:
*[id=full-table]{width:100% !important;}
or
*[id]#full-table{width:100% !important;}
But my last recollection of this was that they didn't offer as much functionality for tags not within the id or class realm.
Hope that helps!