Não entendi porque colocar "heigth: 100%" em html, body e header, faz a imagem aparecer. Poderiam me explicar? Ao meu ver, os três já estariam em 100% por default, e mesmo se não estivesse, não entendi porque a imagem aparece com o tamanho certinho da pagina.
html, body{
height: 100%;
}
header {
background-image: url(../img/castelo.jpg);
height: 100%;
}