Is it useful to add whole code in #container, #Wrapper in every CSS layout?
It would not be needed in every layout unless every layout was the same, and then only if they require a wrapper/container.
Can't we make layout without this extra div ?
Yes, you can sometimes dispense with the extra wrapper div.
What are pros and cons to use this extra div?
It totally depends on your layout. Often with a fixed width centered design, a wrapper makes the most sense. You can also style the body
tag, but then overlays and other elements might look different or not totally fill the screen depending on their implementation.
Is it good practice?
Yes, but only if the layout requires it.
Is it useful for any type of design/layout?
It is normally useful when you need to do a fixed width, centered layout. Not sure of other uses where it is helpful.
Is it semantically correct?
Not really as the body
is really a perfectly good container
or wrapper
so adding another one is redundant. However, it is a necessary evil in many designs depending on browser support needed or the layout that is needed. Go ahead and use it without concern if it makes sense for your project and layout.