Привет, меня зовут Стивен.
В этом эпизоде мы попробуем использовать только HTML и CSS для достижения основного эффекта карусели.Конечно, будут некоторые недостающие функции, такие как невозможность автоматического прыжка, но давайте посмотрим, чего мы можем добиться с помощью CSS.
Видеоверсия этого урока находится по адресувоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооДобро пожаловать три подряд внимание!
часть HTML
Откройте редактор CodePen, сначала создайте структуру HTML, я буду использовать карусель<ul>
делать, присоединяться<ul>
метка, классslides
. добавить три<li>
метка, классslide
, триslide
Заполните 1, 2 и 3 соответственно.
Разделы CSS
Затем перейдите в раздел CSS и добавьтеbody
Селектор, который центрирует содержимое страницы, можно добавить, добавивdisplay: flex
,justify-content
а такжеalign-items
установить какcenter
,min-height
установить как100vh
достигать.
тогда присоединяйтесьul.slides
селектор, чтобы установить стиль контейнера карусели,position
установить какrelative
, ширина установлена на600px
, высота установлена на280px
. Затем отмените свойства исходного списка,list-style
установить какnone
.margin
а такжеpadding
установить как0
, а затем добавьте светло-серый фон, чтобы было легче увидеть его размер.
воссоединитьсяli.slide
, задать стиль одиночной карусели,margin
а такжеpadding
установить как0
, ширина и высота наследуют размер родительского контейнера, установленного наinherit
,Потомposition
установить какabsolute
.
top
а такжеleft
установить как0
, теперь вы можете видеть, что эти три числа перекрываются.
Добавьте три селектора, чтобы установить цвета фона трех каруселей соответственно..slide:nth-of-type(1)
,2
а также3
, установите первыйslide
Цвет фона желтый#F2E205
, второй оранжево-красный#F25C05
, третий синий#495F8C
.
Снова отрегулируйте их положение.Вторая картинка справа от первой.В настройках второй картинки добавьтеleft: 100%
,добавьте в настройках третью картинкуleft: 200%
, и теперь вы можете видеть, что три изображения расположены рядом по горизонтали.
назад.slide
Настройки стиля селектора, добавитьdisplay: flex
,justify-content
а такжеalign-items
установить какcenter
, затем увеличьте шрифт и установите цвет,font-family
установить какHelvetica
, установлен размер текста120px
, установлен белый цвет.
опять такиslides
селектор присоединитьсяoverflow: hidden
Вы можете скрыть выделенные вторую и третью карусели.
Реализовать карусельное переключение
Теперь, когда стиль задан, следующим шагом будет добавление кнопки для переключения изображения карусели. Может использоваться с элементами формыradio
Кнопки доступны с помощью селекторов CSS.
Вернемся к части HTML, в<li>
добавить три перед меткойradio
кнопка, определяемая отдельноid
дляcontrol-1
,control-2
а такжеcontrol-3
, мы пройдем<label>
сослаться на него. Затем определить тот жеname
, чтобы их можно было сгруппировать в один и тот же набор кнопок, первыйradio
плюс кнопкаchecked
, он выбран по умолчанию.
В настоящее времяradio
Кнопка закрыта тремя карусельными изображениями, временно добавленными в CSS.input[type="radio"]
селектор, наборposition: relative
а такжеz-index: 100
это будет видноradio
кнопку, чтобы мы могли понять следующую часть.
Под тремя каруселями добавьте<div>
, классcontrols-visible
, добавив три<label>
Этикетка,<label>
изfor
свойство, указанное какradio
Кнопкаid
, соответственноcontrol-1
,control-2
а такжеcontrol-3
.
Затем мы поместим эти три<label>
Настройте стиль точки с помощью CSS и добавьте его в часть CSS..controls-visible
а также.controls-visible label
Селектор, сначала установите стиль контейнера, установитеposition: absolute
, ширина100%
,настраиватьbottom
Снизу12px
,Потомtext-align
установить какcenter
.
опять такиlabel
настройки стиля, добавитьdisplay: inline-block
, ширина и высота установлены на10px
, цвет фона установлен на белый, а закругленные углы установлены на50%
, он становится кругом. потомmargin
установить и опустить0
,о3px
и, наконец, добавьте белую рамкуborder: 2px solid #fff
.
Теперь попробуйте нажать триlabel
, убедитесь, что ими можно управлять в соответствии сradio
кнопка:
Тогда нужно решить две проблемы:
- Во-первых, настроить нажатый
label
стиль, отображается как выбранный - Второй - переключить карту карусели
Всего этого можно добиться с помощью селекторов CSS.
Давайте сначала посмотрим на структуру HTML, триradio
Кнопка находится сверху, этот порядок очень важен, поэтому мы хотимradio
написано на нем,label
Напишите это внизу, а затем контролируйте верхradio
, потому что можно пройтиradio:checked
судить об избранныхradio
кнопку, а затем через~
Тильда находит элемент после него на том же уровне.
И из-за CSSВы можете найти элементы в том же слое только после этого, а не элементы в том же слое до,такradio
Кнопка написана сверху.
присоединиться первым.slides input[type="radio"]:nth-of-type(1):checked
, судя по тому, когда первыйradio
кнопка выбрана, присоединиться~
тильда, найдя его на том же уровне,.controls-visible
внутриlabel:nth-of-type(1)
Выберите первыйlabel
,настраиватьbackground-color
Он темно-серый. Теперь вы можете увидеть первый щелчокlabel
отображается как выбранный стиль:
Затем скопируйте этот параметр и установите второй и третийlabel
,такlabel
Настройка стиля завершена.
Наконец, установите эффект переключения изображений карусели, добавьте.slides input[type="radio"]:nth-of-type(1):checked
,~
тильда.slide
. Это означает, что при выборе первогоradio
После кнопки следующие три.slide
стиль. Поскольку мы уже поставили триslide
Расположен горизонтально, поэтому нужно только адаптироватьradio
кнопка, поместите триslide
Просто переместитесь на определенное расстояние влево.
- когда первый
radio
кнопка,transform
установить какtranslatex(0%)
. - когда выбран второй
radio
кнопка,transform
установить какtranslatex(-100%)
, то есть удвоить ширину влево, и можно отобразить вторую карусель. - когда третий
radio
кнопка,translatex()
установить как-200%
,Это оно.
затем обратно в.slide
Селектор, добавление настроек анимированного переходаtransition: .5s transform ease-in-out
, и воляradio
кнопкаdisplay
установить какnone
скрыть.
Давайте посмотрим на завершенный эффект этого случая
Что ж, это карусель, сделанная на чистом CSS. Вы обнаружите, что в ней нет кнопок для прыжка влево и вправо. Эта часть оставлена для вас, чтобы попробовать. Принцип и следующие триlabel
Подход аналогичен.
Ответ здесь, вы можете обратиться к:код спрей.IO/стивен класс/боюсь...
Что касается того, почему нет функции автоматического прыжка, здесь следует использовать JavaScript, хотя с использованием@keyframes
Можно выполнять прыжки на время, но нельзя совмещать с ручными прыжками. Если вы найдете другие способы сделать это, пожалуйста, оставьте сообщение для обмена.
Все вышесказанное касается реализации эффекта карусели с помощью CSS.
Исходный код для этого случая находится накод спрей.IO/стивен класс/боюсь...
Ваша поддержка-моя мотивация, пожалуйста, обратите вниманиеМинимальный класс CodingStartup, давайте работать вместе!
- Станция Б:space.bilibili.com/451368848
- YouTube: YouTube.com/кодирование начало…
- Самородки:Талант /user/249773…