Мы должны дать overflow:hidden тем отделение, для которого мы не даем высоту?
#Container {width:900px;margin:0 auto}
для #header
который имеет другие элементы, внутри затем должен я давать overflow:hidden
кому: #header
или я должен дать зафиксированную высоту #header
.
Каково различие между обоими?
#header {}
#footer {}
Нет, не нужно.
Это правило используется в качестве обходного пути, чтобы позволить контейнеру принимать всю высоту своих дочерних элементов, когда они перемещаются. Поэтому, если вы не плаваете внутри него элементы, правило не имеет значения, так как не будет переполнения, потому что высота не указана.
См. здесь для получения дополнительной информации о том, почему вы должны использовать overflow: hidden
.