This solution separate header, footer and body. The has a great flexibility because the content will expand to accomodate the size of content. Also, this solution has more html code and most of the time, they are just for header and footer background images. Also, you can't have gradient background because the body is tiled.