<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

CSS-эффект при наведении на меню

CSS-эффект при наведении на меню

На чистом CSS можно создавать интересные и оригинальные "спецэффекты", один из которых мы сейчас подробно разберем. У нас есть список пунктов меню с ссылками внутри. Наверняка пользователь будет с ним взаимодействовать - наводить курсор мыши на отдельные элементы и переходить по ссылкам.

Сделаем HTML-разметку: создадим секцию в качестве обертки для списка. Для создания эффекта добавим ко всем ссылкам data*-атрибуты. В data-text продублируем названия ссылок, позже они нам понадобятся.

<section>
    <ul>
        <li><a href="#" data-text="Home">Home</a></li>
        <li><a href="#" data-text="About">About</a></li>
        <li><a href="#" data-text="Services">Services</a></li>
        <li><a href="#" data-text="Contact">Contact</a></li>
    </ul>
</section>

CSS-эффект при наведении на меню.

Импортируем с Google Fonts жирный шрифт Poppins. Секцию-обертку сделаем флексовым контейнером, чтобы можно было к нему применить свойства, отвечающие за центрирование содержимого секции. У списков уберем черные маркеры и красиво оформим сами пункты меню.

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800;900&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}

body {
    background: #262626;
}

section {
    position: relative;
    width: 100%;
    height: 100vh;
    display: flex; /* flex-контейнер */
    justify-content: center; /* по горизонтали */
    align-items: center; /* по вертикали */
}

ul li {
    list-style: none; /* убрать маркеры */
}

ul li a {
    display: block; /* отображать как блочный элемент */
    text-decoration: none; /* без подчеркивания */
    text-align: center;
    font-size: 4em;
    color: #fff;
    font-weight: 700;
    text-transform: uppercase; /* заглавные буквы */
}


CSS-эффект при наведении на меню.

Приступим к самому эффекту. Что должно произойти? Мы хотим, чтобы при наведении курсора на ссылку, по центру экрана появлялся тот же самый текст, но более крупный и другого цвета.

ul li a:before {
    content: attr(data-text); /* передача в функцию значения data-атрибутов */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    line-height: 100vh;
    z-index: -1; /* поставить значения data-атрибутов назад меню */
    text-align: center;
    font-size: 3em;
    color: #a28fe5;
    opacity: 0; /* скрыть значения data-атрибутов */
    transition: 0.5s; /* плавная смена состояний */
}

ul li:hover a:before {
    opacity: 1;
}

Вот то, что должно получиться.


CSS-эффект при наведении на меню.

Где происходит магия?

Раскрываем фокус. В свойстве content у псевдоэлемента before, мы прописываем функцию attr(), в которую передаем значения data-text из HTML-разметки. Сейчас все слова наложились друг на друга.


CSS-эффект при наведении на меню.

Скрываем наш псевдоэлемент с помощью opacity.

ul li a:before {
    opacity: 0;
}

А при наведении на текст, меняем значение opacity.

ul li:hover a:before {
    opacity: 1;
}

Посмотрите пример на CodePen

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.