Bunun için body'e 100% genişlik ve 100% yükseklik vermen gerek.
body{width:100%;height:100%;margin:0px auto;border:1px solid;}

Burada body'e çerçeve verdik. Buna padding ayarlayıp çerçeve içinde kalan herşeyi ortaya doğru sıkıştırman gerekecek.

body{width:100%;height:100%;margin:0px auto;border:1px solid;
padding: Xpx Xpx Xpx Xpx;
}

Ortalamak istediğin div in boyutları belliyse, body padding lerini yüzdelik olarak verip hep ortada kalmasını sağlarsın.

Birde vertical-align:middle seçeneği var ama o sadece inline elementlerde çalışır. Senin ortalayacağın div de ne var ne yok bilemediğim için onu kendin araştır bul.
Ama ona da örnek vereyim.

.ortalanacakdiv{display:inline-block; height:30%;width:40%;vertical-align:middle;}
.body{width:100%;height:100%;margin:0px auto;border:1px solid;
padding: 30% 20% 30% 20%;}

Ama olmadı deme. Senin içerikle burdaki örnek aynı değil. Olayın mantığını anlasaydın üst tarafta verilen örnekler de çözerdi sorununu.

Ek Olarak:



Ek Olarak:

Ek Olarak:


dikey ortala




example world..