
Эта серия упражнений посвящена свойству `transition-property`. Вы будете практиковаться в указании свойств CSS, для которых должен применяться плавный переход при изменении их значений. Задания начинаются с указания одного свойства и постепенно усложняются до использования нескольких свойств, ключевого слова `all` и значения `none`. Вам будет предоставлен готовый HTML и CSS с пропусками, которые нужно заполнить, чтобы достичь желаемого визуального эффекта при взаимодействии с элементами (например, при наведении курсора).
- Модуль 1: Основы CSS
- Селекторы элементов.
- Селекторы классов и идентификаторов.
- Цвет текста и фона.
- Размеры и единицы измерения в CSS.
- Семейство шрифта и базовые свойства текста.
- Стилизация текста (жирный, курсив, подчеркивание).
- Выравнивание и интервалы текста.
- Комбинированные селекторы.
- Псевдоклассы для ссылок.
- Приоритеты стилей и каскадность.
- Наследование в CSS.
- Модуль 2: Блочная модель и позиционирование
- Блочная модель CSS (box model).
- Внутренние отступы (padding).
- Внешние отступы (margin).
- Границы элементов (border).
- Сокращенная запись свойств границ.
- Радиус скругления углов (border-radius).
- Свойство display и его значения.
- Блочные элементы (display: block).
- Строчные элементы (display: inline).
- Строчно-блочные элементы (display: inline-block).
- Скрытие элементов (display: none, visibility: hidden).
- Статичное позиционирование (position: static).
- Относительное позиционирование (position: relative).
- Абсолютное позиционирование (position: absolute).
- Фиксированное позиционирование (position: fixed).
- Липкое позиционирование (position: sticky).
- Свойство z-index и порядок наложения элементов.
- Свойство float и его применение.
- Свойство clear для обтекания.
- Центрирование элементов различными способами.
- Модуль 3: Селекторы CSS продвинутый уровень
- Групповые селекторы.
- Селекторы потомков (descendant selectors).
- Дочерние селекторы (child selectors).
- Соседние селекторы (adjacent sibling selectors).
- Общие сиблинги (general sibling selectors).
- Селекторы атрибутов: точное совпадение.
- Селекторы атрибутов: частичное совпадение.
- Псевдоклассы состояний (:hover, :active, :focus, :visited).
- Псевдоклассы для форм (:checked, :disabled, :required).
- Структурные псевдоклассы (:first-child, :last-child).
- Псевдоклассы :nth-child() и :nth-of-type().
- Псевдоклассы :not() и :empty.
- Псевдоэлементы ::before и ::after.
- Псевдоэлементы ::first-letter и ::first-line.
- Псевдоэлемент ::selection.
- Псевдоэлемент ::placeholder.
- Комбинирование псевдоклассов и псевдоэлементов.
- Создание декоративных элементов с помощью псевдоэлементов.
- Модуль 4: Работа с фоном и визуальными эффектами
- Фоновый цвет (background-color).
- Фоновое изображение (background-image).
- Повторение фона (background-repeat).
- Позиционирование фона (background-position).
- Размер фона (background-size).
- Фиксация фона (background-attachment).
- Сокращенная запись свойств фона.
- Множественные фоновые изображения.
- Линейные градиенты (linear-gradient).
- Радиальные градиенты (radial-gradient).
- Конические градиенты (conic-gradient).
- Тень блока (box-shadow).
- Тень текста (text-shadow).
- Прозрачность (opacity).
- Фильтры (filter: blur, grayscale, etc.).
- Режимы смешивания (mix-blend-mode, background-blend-mode).
- Маски с mask-image.
- Формы с clip-path.
- Модуль 5: Типографика продвинутый уровень
- Межстрочное расстояние (line-height).
- Интервалы между буквами (letter-spacing).
- Интервалы между словами (word-spacing).
- Трансформация текста (text-transform).
- Декорирование текста (text-decoration).
- Перенос слов (word-break, overflow-wrap).
- Управление пробелами (white-space).
- Многоколоночный текст (columns).
- Обрезка текста (text-overflow, ellipsis).
- Вертикальное выравнивание текста (vertical-align).
- Направление текста (direction, writing-mode).
- Веб-шрифты и @font-face.
- Модуль 6: Flexbox
- Введение в Flexbox.
- Включение Flexbox (display: flex).
- Flex-контейнер и flex-direction.
- Выравнивание с justify-content.
- Выравнивание с align-items.
- Выравнивание с align-content.
- Свойство align-self для отдельных элементов.
- Свойство flex-wrap.
- Свойство flex-flow (сокращение для direction и wrap).
- Свойство flex-grow.
- Свойство flex-shrink.
- Свойство flex-basis.
- Сокращенное свойство flex.
- Порядок элементов с order.
- Сложные макеты на Flexbox.
- Вложенные flex-контейнеры.
- Создание адаптивной навигационной панели с Flexbox.
- Модуль 7: CSS Grid Layout
- Введение в Grid Layout.
- Включение Grid Layout (display: grid).
- Создание сетки: grid-template-columns.
- Создание сетки: grid-template-rows.
- Единица измерения fr.
- Функция repeat().
- Промежутки с gap, row-gap, column-gap.
- Размещение элементов: grid-column.
- Размещение элементов: grid-row.
- Сокращенная запись grid-area.
- Именованные линии и области.
- Свойство grid-template-areas.
- Автоматическое размещение элементов.
- Автоматические треки (grid-auto-rows, grid-auto-columns).
- Управление потоком элементов (grid-auto-flow).
- Выравнивание в Grid: justify-items и align-items.
- Выравнивание в Grid: justify-content и align-content.
- Выравнивание отдельного элемента (justify-self, align-self).
- Сложные макеты на Grid.
- Комбинирование Grid и Flexbox.
- Модуль 8: Трансформации и переходы
- Трансформации: translate.
- Трансформации: scale.
- Трансформации: rotate.
- Трансформации: skew.
- Комбинирование трансформаций.
- Точка трансформации с transform-origin.
- 3D-трансформации и перспектива.
- Переходы с transition-property.
- Длительность перехода с transition-duration.
- Функции плавности с transition-timing-function.
- Задержка с transition-delay.
- Сокращенное свойство transition.
- Переходы для нескольких свойств.
- Создание интерактивных элементов с переходами.
- Производительность трансформаций и переходов.
- Модуль 9: Анимации
- Создание keyframes.
- Свойство animation-name.
- Свойство animation-duration.
- Свойство animation-timing-function.
- Свойство animation-delay.
- Свойство animation-iteration-count.
- Свойство animation-direction.
- Свойство animation-fill-mode.
- Свойство animation-play-state.
- Сокращенное свойство animation.
- Множественные анимации.
- Создание сложных анимаций.
- Анимации с использованием переменных.
- Оптимизация производительности анимаций.
- Анимации и доступность.
- Модуль 10: Адаптивный дизайн
- Относительные единицы измерения (%, em, rem).
- Единицы vh и vw.
- Медиа-запросы: основы.
- Медиа-запросы: max-width и min-width.
- Медиа-запросы: ориентация устройства.
- Медиа-запросы: типы устройств и медиа-функции.
- Mobile-first подход.
- Адаптивные изображения.
- Элемент picture и атрибуты srcset/sizes.
- Адаптивная типографика.
- Адаптивная навигация.
- Адаптивные таблицы.
- Адаптивные формы.
- Отзывчивые медиа (видео, iframe).
- Тестирование адаптивности.
- Модуль 11: Формы и CSS
- Базовая стилизация input и button.
- Стилизация textarea.
- Стилизация состояний форм (:focus, :valid, :invalid).
- Стилизация placeholder.
- Кастомизация radio и checkbox с помощью CSS.
- Стилизация select и option.
- Создание кастомных выпадающих списков.
- Стилизация range input.
- Стилизация file input.
- Валидация форм и стилизация сообщений об ошибках.
- Модуль 12: Современные возможности CSS
- Переменные CSS (Custom Properties).
- Область видимости переменных.
- Функция calc().
- Свойство object-fit для изображений.
- Свойство object-position.
- Scroll Snap.
- Контейнерные запросы (Container Queries).
- Подсеточные элементы (Subgrid).
- Логические свойства (logical properties).
- CSS Houdini (введение).
- Feature Queries (@supports).
- Новые селекторы CSS (is(), where(), has()).
- Модуль 13: Практические проекты
- Создание адаптивной навигационной панели.
- Создание карточек товаров.
- Создание слайдера изображений на CSS.
- Создание табов.
- Создание дропдаун-меню.
- Создание галереи изображений с фильтрами.
- Создание анимированных иконок.
- Создание адаптивного лендинга.
- Создание тёмной темы с CSS-переменными.
- Создание анимированных кнопок.
- Создание анимированных форм.
- Создание сетки изображений с hover-эффектами.
- Создание адаптивного футера.
- Создание макета блога на CSS Grid.
- Создание адаптивного дашборда.
- Создание интерактивной формы с анимациями.
- Создание CSS-арта.
Плавное изменение цвета фона
Сделайте так, чтобы при наведении курсора на синий квадрат его цвет плавно изменялся на красный. Длительность перехода уже задана, вам нужно указать только свойство, которое должно анимироваться.
.box {
width: 100px;
height: 100px;
background-color: blue;
/* Укажите свойство для перехода */
transition-property: input1;
transition-duration: 0.5s;
}
.box:hover {
background-color: red;
}
<div class="box"></div>
Плавное изменение ширины
Заставьте зеленый прямоугольник плавно увеличивать свою ширину при наведении курсора. Остальные свойства (например, цвет фона) не должны иметь плавного перехода. Укажите только одно свойство для `transition-property`.
.resizable-box {
width: 150px;
height: 80px;
background-color: green;
/* Укажите свойство для плавного изменения */
transition-property: input1;
transition-duration: 0.4s;
}
.resizable-box:hover {
width: 250px;
background-color: darkgreen; /* Это изменение не должно быть плавным */
}
<div class="resizable-box"></div>
Переход для нескольких свойств
Сделайте так, чтобы при наведении на элемент одновременно плавно изменялись его ширина и цвет фона. Укажите оба свойства через запятую в `transition-property`.
.multi-transition {
width: 120px;
height: 120px;
background-color: orange;
border-radius: 5px;
/* Укажите свойства для перехода через запятую */
transition-property: input1;
transition-duration: 0.6s;
}
.multi-transition:hover {
width: 200px;
background-color: darkorange;
border-radius: 50%; /* Это свойство не должно анимироваться */
}
<div class="multi-transition"></div>
Использование 'all' для всех свойств
Примените плавный переход ко всем изменяемым свойствам элемента при наведении. Используйте для этого специальное ключевое слово в `transition-property`.
.all-transition {
width: 100px;
height: 100px;
background-color: purple;
opacity: 1;
transform: rotate(0deg);
/* Примените переход ко всем свойствам */
transition-property: input1;
transition-duration: 0.7s;
}
.all-transition:hover {
width: 150px;
background-color: mediumpurple;
opacity: 0.7;
transform: rotate(45deg);
}
<div class="all-transition"></div>
Плавное появление тени
Добавьте плавный переход для свойства `box-shadow` при наведении на карточку. Другие свойства меняться не будут.
.card {
padding: 20px;
border: 1px solid #ccc;
background-color: white;
box-shadow: none;
/* Укажите свойство для анимации тени */
transition-property: input1;
transition-duration: 0.3s;
}
.card:hover {
box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);
}
<div class="card">
Наведите на меня
</div>
Анимация прозрачности изображения
Сделайте так, чтобы изображение становилось полупрозрачным при наведении курсора. Переход должен быть плавным. Используйте `transition-property` для указания нужного свойства.
.image-fade {
width: 200px; /* Ширина ограничена для iframe */
height: auto;
opacity: 1;
display: block;
/* Укажите свойство для анимации прозрачности */
transition-property: input1;
transition-duration: 0.5s;
}
.image-fade:hover {
opacity: 0.6;
}
<img src="https://naytikurs.ru/img/7.png" alt="Example Image" class="image-fade">
Отключение перехода с 'none'
Изначально для элемента задан переход для всех свойств (`all`). Ваша задача — сделать так, чтобы при наведении курсора переход не срабатывал, и изменения происходили мгновенно. Используйте для этого специальное значение `transition-property` в состоянии `:hover`.
.no-transition-on-hover {
width: 100px;
height: 100px;
background-color: teal;
border-radius: 0;
/* Изначально переход для всех свойств */
transition-property: all;
transition-duration: 1s;
}
.no-transition-on-hover:hover {
background-color: cyan;
border-radius: 50%;
/* Отключите переход при наведении */
transition-property: input1;
}
<div class="no-transition-on-hover"></div>
Переход для трансформации и границы
Заставьте элемент плавно поворачиваться и изменять стиль границы при наведении курсора. Укажите оба свойства (`transform` и `border`) в `transition-property`.
.transform-border {
width: 100px;
height: 100px;
background-color: lightcoral;
border: 5px solid black;
margin: 30px;
transform: rotate(0deg);
/* Укажите свойства transform и border для перехода */
transition-property: input1;
transition-duration: 0.5s;
}
.transform-border:hover {
transform: rotate(180deg);
border: 10px dashed red;
}
<div class="transform-border"></div>