Исходный, общий ответ:
Вы, вероятно, испытываете FOUC .
Это потому, что вы загружаете styles
для своих элементов внутри элемента <body>
, после того, как стилируемые элементы были обработаны.
Существует (как минимум) два возможных исправления:
- либо переместите загрузку правил вашего стиля в
<head>
(и используйте <link>
) - или укажите
<body>
opacity:0; transform: opacity .5s ease-out
и после загрузки стилей измените его непрозрачность на 1
.
Очевидно, что transform
и его подчиненные свойства являются необязательными.Если вы не хотите переход, вы можете также использовать свойства visibility
или display
вместо opacity
.
Кроме того, вместо нацеливания на все (<body>
), вы можете просто нацелиться на элементы, вызывающие FOUC, и любые последующие элементы в DOM, которые также могут быть затронуты.Чтобы ограничить влияние элементов стиля на их братьев и сестер, можно использовать max-height
и min-height
на них, но имейте в виду, что это необходимо сделать с учетом отзывчивости (должно работать на всех ширинах устройства).
Конкретный ответ (после добавления MCVE):
Если посмотреть дальше, это не классический случай FOUC, а псевдо-FOUC (стили меняются в JavaScript при инициализации Slick).Я обнаружил эту проблему git , предоставляющую несколько решений.
Оказывается, размещение класса slick-slide
на каждом из ваших классов <p>
и slick-slider
на родительском элементе скрывает слайды до того, как Slick станетинициализируется, таким образом устраняя псевдо-FOUC.
В качестве альтернативы, , если вы не хотите добавлять эти классы в свою разметку (и использовать существующий CSS Slick), вы можете добавить это к своему собственному CSS:
.slider p {
display: none;
}
.slider p:first-child,
.slick-initialized.slider p {
display: block;
}
... с учетом текущей разметки.