Używam metody tworzenia dwuwarstwowego efektu paralaksy, aby obraz tła przewijał się wolniej niż reszta zawartości witryny. Dla jasności obraz obejmuje całą stronę, a zawartość znajduje się na wierzchu.CSS Parallax Obraz w tle Biała przestrzeń w IE
Moja witryna jest podzielona na dwa główne elementy: div
(i kontener div
) - jeden dla obrazu tła, a drugi dla zawartości strony. Poniżej znajduje się kod, którego używałem dla różnych elementów 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);
}
Bez margin-bottom
i overflow
właściwości dodany element tła div
by skończyć posiadające pionowe białe miejsca z lewej strony na raz została ona ustawiona na wysokości wystarczająco wysoki, aby pokryć wszystkie treści dla strony.
Po dodaniu marginesu ujemnego problem został naprawiony w przeglądarce Chrome i nieco w Firefoksie *, a zwiększyłem wysokość i margines ujemny elementu div
, aby uzyskać znacznie więcej, niż wymagało to sprawdzenie, czy działałoby na innej stronie długości.
IE 11 wciąż ma tam białą przestrzeń. Zwykle właściwość background-size: cover;
usuwa wszelkie białe znaki, ale nie działa to z efektem paralaksy.
Czy znasz jakieś sposoby na usunięcie białej przestrzeni, która zadziałałaby dla IE9 + i innych popularnych przeglądarek, czy też mam pecha?
Oto JSFiddle z prawie dokładnie tym samym kodem co strona, którą tworzę.
* Firefox nie ma spacji, ale margines ujemny nie działa poprawnie dla wszystkich długości stron. W przypadku krótszych stron można przewinąć drogę do końca zawartości strony. Mógłbym to naprawić, zmieniając wysokość i margines dla każdej strony, ale globalne rozwiązanie byłoby mile widziane, jeśli to możliwe.
dlaczego używasz 'height: 100%' zamiast 'height: 100vh' jak wspomniany artykuł? –
@ LeandroRuel, ponieważ wartości procentowe są lepiej obsługiwane i wydawały się mieć ten sam efekt, zdecydowałem się użyć ich zamiast jednostek vh. Właśnie testowałem zmianę jednostek na vh, ale nie naprawiłem problemu w IE 11. –
tak, ale jeśli ustawisz z procentami, musisz ustawić 'html, body' jako' height: 100% 'too , do elementu osiągnąć 100% jego wzrostu. lub możesz owijać elementy elementem nadrzędnym używając stałej wysokości –