Il 100% e` una misura relativa.
Relativa al contenitore di quello che si sta formattando.
Quindi non ha senso usarla se il contenitore non ha la dimensione settata. E se questo ha misura % la cose e` ricorsiva.
Quindi con una struttura di questo tipo:
codice:
<body>
<div id="wrapper">
... qui il resto del sito ...
</div>
<div id="copertura">
<div id="messaggio"> ... immagine e bottoni ... </div>
</div>
</body>
il CSS dovra` avere una struttura del tipo:
codice:
html, body { /* necessario fissare le dimensioni di questi oggetti */
width: 100%;
height: 100%;
overflow: hidden; /* elimino scrollbar da questi elementi */
}
#copertura, #wrapper {
position: absolute;
top: 0; left: 0;
width: 100%;
height: 100%;
}
# wrapper {
z-index: 10;
overflow: auto; /* sposto la scrollbar in questo elemento (dato che la ho tolta dal body) */
}
#copertura {
z-index: 100; /* piu` alto di wrapper */
display: none; /* di deafult non si vede */
overflow: hidden; /* no scrollbar qui */
background: url(semitrasp_scuro.png); /* opacizza quanto sta sotto */
}
#messaggio { /* va centrato come
position: absolute;
width: 50%;
left: 25%;
height: 50%;
top: 25%;
overflow: ...; /* se serve si puo` inserire - altrimenti si puo` dimensionare piu` grande in modo che non serva mai */
}
Non mi risultano problemi con z-index, ma occorre che ci siano i posizionamenti assoluti.
Per le dimensioni vedi questo esempio grezzo