JavaScript - популярный мальчик в веб-разработке, но если вы попробуете CSS, вы увидите, насколько он на самом деле способный.
JavaScript - превосходный инструмент для создания причудливых эффектов и функциональных возможностей в Интернете, а функциональный веб-сайт без JavaScript невообразим. Все это прекрасно, но в некоторых случаях вы захотите использовать CSS вместо JavaScript.
- Вы новичок и еще не изучили JavaScript.
- Вы являетесь мастером JavaScript и знаете, чем больше JavaScript, тем медленнее работает сайт.
- Вам просто интересно, на что способен CSS.
В этой серии статей Только CSS мы реализуем функции, которые обычно требуют JavaScript, с использованием только CSS. В этом уроке мы создадим базовую всплывающую подсказку, используя только CSS. В следующих выпусках Только CSS будут рассмотрены расширенные всплывающие подсказки, панели инструментов, модальные окна и т. Д.
Примечание. Использование препроцессора CSS, такого как SASS, может быть очень удобным, но чтобы сделать это руководство доступным для всех, я буду использовать простой CSS.
Базовая подсказка
В этой части руководства мы создадим всплывающую подсказку, которая будет содержать только строковое содержимое и ничего более. Этот вариант подходит для всплывающих подсказок с небольшой информацией или сокращений.
Для начала создайте index.html
и main.css
, затем свяжите их. В index.html
создайте div.container
, а внутри создайте тег p
с перемещаемым содержимым. В теге p
мы будем использовать настраиваемый атрибут данных с именем data-tooltip
для доступа к всплывающей подсказке из CSS.
Теперь, когда разметка завершена, мы можем приступить к реализации всплывающей подсказки с помощью CSS.
Откройте main.css
и добавьте базовый стиль к телу и контейнеру к центральному абзацу в области просмотра. Эта часть не имеет прямого отношения к учебнику.
Стиль тега p
будет состоять из двух частей: одна связана с внешним видом p
, а другая - с всплывающей подсказкой. Итак, в селекторе p
мы добавим стиль, не связанный с всплывающей подсказкой, а в селекторе [data-tooltip]
мы будем стилизовать всплывающую подсказку.
Чтобы выбрать пользовательские атрибуты в CSS, мы используем селектор [data-...]
. Мы можем выбрать теги с настраиваемым атрибутом данных всплывающей подсказки, используя [data-tooltip]
. Итак, давайте выберем его в CSS и начнем разбираться с сложной частью.
Мы создадим всплывающую подсказку с использованием псевдоэлемента ::after
и расположим его относительно его тега-предка. Следовательно, мы должны позиционировать родительского родственника.
Пришло время создать псевдоэлемент и вывести на экран содержимое, которое мы уже передали в настраиваемый атрибут.
Для этого мы должны добавить ::after
в селектор всплывающих подсказок и сделать его содержимое содержимым настраиваемого атрибута всплывающей подсказки. После этого шага мы теперь можем видеть строку, переданную в настраиваемый атрибут. Единственное, с чем мы должны иметь дело, - это стилизация псевдоэлемента ::after
, чтобы он выглядел очаровательно. Вы можете стилизовать его, как хотите, но вот мои стили для всплывающей подсказки. По умолчанию я помещаю всплывающую подсказку в конец тега p
.
Когда вы изучите приведенный выше код, вы заметите некоторые неожиданные свойства, такие как унаследованная переменная CSS и нулевая непрозрачность. Эти свойства предназначены для следующего шага руководства. Мы должны скрыть всплывающую подсказку, чтобы она не отображалась, когда пользователь не наводит курсор на тег p
; следовательно, непрозрачность всплывающей подсказки равна нулю. Мы воспользуемся псевдоклассом :hover
, чтобы восстановить исходные свойства этих свойств, и появится всплывающая подсказка.
В псевдоклассе :hover
мы устанавливаем непрозрачность на 1 и --scale
на 1. Таким образом, всплывающая подсказка отображается на экране. Причина, по которой изначально нужно уменьшить его до 0,95, заключается в том, чтобы создать эффект увеличения при наведении курсора.
Вот и все! Теперь вы создали простую всплывающую подсказку с несколькими строками CSS. Однако, если вы хотите добавить больше функциональности и гибкости к этой подсказке, вы можете продолжить со следующей части.
Улучшение функциональности всплывающей подсказки
В этой части мы попытаемся добавить некоторые полезные функции в созданную нами всплывающую подсказку, чтобы сделать ее более гибкой и практичной. Вот функции, которые мы реализуем.
- Общее время реакции для настройки времени раскрытия и выхода.
- Свойство Position для определения положения всплывающей подсказки.
После того, как эти функции будут реализованы, вы можете без промедления использовать их на своих крутых веб-сайтах и проектах.
1. Общее время реакции
Реализуя это свойство, мы показываем и скрываем всплывающую подсказку через определенное время после наведения. Это делает всплывающую подсказку более элегантной и предотвращает случайное раскрытие.
Мы создадим для этого настраиваемое свойство данных, которое называется data-reaction
, и параметры будут быстро, медленно или нет. Нет - значение по умолчанию для этого свойства. Время реакции медленного будет 250 миллисекунд, а у быстрого - 500 миллисекунд. Будет использовано свойство transition-delay
. На основе атрибута данных мы установим для переменной CSS разные значения.
Для начала добавьте --delay
переменную во всплывающую подсказку и установите для нее значение 0. После этого унаследуйте ее в ::after
от ее родителя. Убедитесь, что вы установили transition-delay
в --delay
переменную.
Теперь пора управлять им с помощью атрибута данных. Для этого процесс довольно прост. Мы выберем каждую опцию по очереди и установим переменную --delay
соответственно.
Наконец, всплывающая подсказка теперь имеет общее время реакции. Чтобы использовать его, просто передайте свойство data-reaction
родительскому тегу. Или, если хотите, вы можете указать время реакции, используя свойство style
.
2. Положение всплывающей подсказки
Другое свойство, которое расширит возможности нашей всплывающей подсказки, - это свойство position. Реализуя это, мы сможем позиционировать его с помощью простого атрибута с именем data-position
.
data-position
будет иметь 4 варианта: снизу, вверху, слева и справа. Нижний - это значение по умолчанию, и на основе значения атрибута мы размещаем его соответственно следующим образом:
Теперь, когда эта функция реализована, вы можете использовать ее, добавив атрибут data-position
к тегу.
Спасибо, ребята, что прочитали. Вы можете найти полный исходный код здесь. Надеюсь, вам понравилась статья, и теперь у вас есть некоторое представление о возможностях и мощи CSS. Мы будем создавать удивительные вещи только с помощью CSS. Если вам понравилось, не забудьте аплодировать, а если есть что добавить, оставьте комментарий.
Увидимся в следующей истории!
Для дальнейшего чтения:
Больше контента на plainenglish.io