Uso il metodo Keith Clark's CSS-only per creare un effetto di parallasse a due livelli in modo che l'immagine di sfondo scorra a una velocità inferiore rispetto al resto del contenuto del sito. Per essere chiari, l'immagine copre l'intera pagina e il contenuto si trova sopra di esso.Immagine di sfondo parallasse CSS Spazio bianco in IE
Il mio sito è diviso in due elementi principali div
(e un contenitore div
) - uno per l'immagine di sfondo e l'altro per il contenuto della pagina. Di seguito è riportato il codice che stavo usando per i diversi elementi div
.
.container {
height: 100%;
overflow-x: hidden;
overflow-y: auto;
perspective: 1px;
position: absolute;
left: 0;
right: 0;
}
.background {
background-image: url(images/background.jpg);
background-size: cover;
position: absolute;
/* margin-bottom: -200em;
overflow: hidden; */
height: 200em;
left: 0;
right: 0;
transform: translateZ(-2px) scale(3);
}
.page-content {
transform: translateZ(0);
}
Senza le proprietà margin-bottom
e overflow
aggiunto, l'elemento di sfondo div
finirebbe con l'avere uno spazio bianco verticale rimasto una volta che è stata impostata ad un'altezza sufficiente a coprire tutti i contenuti della pagina.
Dopo aver aggiunto il margine negativo, il problema è stato risolto in Chrome e un po 'in Firefox *, e ho aumentato l'altezza e il margine negativo dell'elemento div
per essere molto più di quanto necessario per garantire che funzionasse per pagina diversa lunghezze.
IE 11 ha comunque lo spazio bianco lì. Normalmente la proprietà background-size: cover;
rimuove qualsiasi spazio bianco, ma questo non funziona con l'effetto di parallasse.
Sai qualche modo per rimuovere lo spazio bianco che avrebbe funzionato per IE9 + e altri browser principali, o sono sfortunato?
Ecco uno JSFiddle con praticamente lo stesso codice del sito che sto creando.
* Firefox non ha uno spazio bianco, ma il margine negativo non funziona correttamente per tutte le lunghezze di pagina. Per le pagine più corte è possibile scorrere il modo in cui è passata la fine del contenuto della pagina. Potrei rimediare modificando l'altezza e il margine per ogni pagina, ma una soluzione globale sarebbe apprezzata se possibile.
perché stai usando altezza: 100% 'invece di altezza: 100vh come l'articolo menzionato? –
@LeandroRuel, poiché le percentuali sono meglio supportate e sembravano avere lo stesso effetto, ho deciso di usarle al posto delle unità vh. Ho appena provato a cambiare le unità su vh in questo momento, ma non ha risolto il problema in IE 11. –
sì, ma, se si imposta con percentuali, è necessario impostare 'html, body' come' height: 100% 'troppo , l'elemento raggiunge il 100% della sua altezza. oppure puoi avvolgere gli elementi con un elemento genitore usando un'altezza fissa –