U moderních stránek je často potřeba zobrazit obsah tak, aby vyplnil celé okno prohlížeče (např. kvůli pozadí, vycentrování horizontálně i vertikálně apod.). Většina designérů a programátorů většinou zkusí jako první krok CSS:
body { width: 100%; height: 100%; }
A když to nepřinese požadovaný efekt, tak přejdou k Javascriptu a velikost okna počítají dynamicky.
K tak drastickým řešením ale není důvod a stejného efektu lze dosáhnout i pomocí CSS, jen je potřeba vědět, co nastavit:
html, body { width: 100%; height: 100%; }
Stačí kromě BODY nastavit styl i na HTML, které každou stránku obklopuje, a jako zázrakem se celá stránka roztáhne. Pak již můžete nastavit pozadí automaticky zvětšené a centrované na okno prohlížeče:
body { background: url('/images/page-bg.png') no-repeat scroll center center transparent; background-size: contain; }
Nebo oblíbený obsah ve sloupci uprostřed stránky:
body { max-width: 1024px; margin: 1em auto; }
Nebo patičku stránky zobrazenou vždy u dolního okraje okna (i když je obsah stránky menší):
body { /* zamezí překrytí obsahu patičkou */ margin-bottom: 1EM; } #footer { position: absolute; bottom: 0; left: 0; right: 0; width: 100%; /* nebo auto */ height: 1EM; }
Pozor na to, že pokud byste chtěli do BODY nastavit padding pro odsazení, bude problém s nastavením šířky (a výšky) na 100%. Ve výchozím nastavení se totiž padding nepočítá do šířky prvku a tak by jeho výsledná šířka byla { 100% + levý padding + pravý padding }.
Aby prohlížeč správně vypočetl 100% šířku, je potřeba změnit jeho výpočet na border-box:
body { width: 100%; height: 100%; padding: 1em; /* odsazení od okrajů */ box-sizing: border-box; /* započítej padding do width a height */ }