Improve HTML structure? I am not new to html however would like to know about best practices. I need to develop a layout like this:



This is what I have proposed:

&lt;div id="body"&gt;
    &lt;div id="body-main"&gt;
        &lt;div id="body-main-upper"&gt;
            &lt;div id="body-main-upper-image"&gt;
                &lt;image&gt;&lt;/image&gt;
            &lt;/div&gt;
            &lt;div id="body-main-upper-image2"&gt;
                Text goes here
                &lt;image&gt;&lt;/image&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;div id="body-main-bottom"&gt;
            &lt;Table&gt;&lt;tr /&gt;&lt;td /&gt;&lt;/Table&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div id="sidebar"&gt;
        &lt;div id="sidebar-upper"&gt;
            &lt;image&gt;&lt;/image&gt;
        &lt;/div&gt;
        &lt;div id="sidebar-bottom"&gt;
            &lt;image&gt;&lt;/image&gt;
            &lt;div id="sidebar-bottom-table"&gt;
            &lt;/div&gt;
            Text goes here
            &lt;image&gt;&lt;/image&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


http://jsfiddle.net/gdWM5/

Can this be improved in any way?
your Table is not declared correctly in the markup.  

This:

&lt;div id="body-main-bottom"&gt;
    &lt;Table&gt;&lt;tr /&gt;&lt;td /&gt;&lt;/Table&gt;
&lt;/div&gt;


Should look like this

&lt;div id="body-main-bottom"&gt;
    &lt;table&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;/td&gt;
            &lt;td&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;
&lt;/div&gt;


your self closing tag &lt;tr /&gt; means that the row is now closed, you shouldn't have a &lt;td&gt; outside of a row, it is bad structure and won't show correctly in browsers.



HTML is not made up of &lt;div&gt;'s alone.  you should include other elements as well, even when you are only figuring out your structure.

Image tags are not &lt;image&gt;  they are &lt;img /&gt; and as long as you have everything you need inside the attributes, they are self closing tags.

from the looks of the Graphic, you may not need a table, you probably want a list instead of a table.  If I were you I would look into an unordered list (you can format how you like with CSS)



Element tags do not have Capital letters in them at all,  they are Lowercase.



More Descriptive ID names. If you have something that is going to be styled the same as something else give them class names and declare the style once.  if you have one thing that is going to be different, create a class that will style it and the surrounding items the the same and add another class to it and declare it after the other class.



In Closing

I would say that you should figure out your CSS and then post a new question as well (with the CSS)

this is not a finished structure, it looks like something you threw together in about a half an hour.  probably took you longer to draw the picture than write the HTML