Переменные CSS - мощное средство, вы можете это знать. Вы можете использовать его для простых задач, чтобы легко хранить глобальные переменные, такие как цвета или шрифты, или включить темный режим на своем веб-сайте, просто переключив простой класс на своем теле 🤯.
После многих лет использования переменных CSS я все еще поражаюсь их мощи, и я хочу показать это вам, давайте перейдем к написанию кода с его помощью.
К сожалению, в CSS долгое время не было поддержки переменных, поэтому многие использовали препроцессоры CSS, чтобы иметь переменные, но это не настоящие переменные! Вы можете изменить их только перед компиляцией, а не во время выполнения.
Итак, давайте погрузимся в мощь переменных времени выполнения 🙌
Какая классика! Настенные часы 😅
Что, если бы я сказал вам, что это единственный JS, который вам нужен:
Я использовал препроцессор HTML, PUG, чтобы быстро создать HTML, обратите внимание на использование переменной индекса, она будет полезна в следующих шагах.
Первый этап завершен, так просто, что здесь особо нечего сказать, просто настраиваем HTML и переменные часы / минуты / секунды, давайте перейдем к CSS 🎯
Здесь начинается самое интересное, мы начинаем с часов / минут / секунд равными нулю, я устанавливаю переменную размера, которая использует функцию CSS min, поэтому часы всегда будут соответствовать экрану, потому что это size - минимальное значение между 24rem
, 75vh
75% высоты области просмотра и 75vw
75% ширины области просмотра.
Кроме того, размер шрифта зависит от переменной размера, что позволяет мне позже использовать размеры em, чтобы часы всегда сохраняли свои пропорции 👌
Добавив немного CSS, мы получим фрейм часов.
Теперь нам нужно разместить часовые метки на часах, давайте воспользуемся --index
.
Главный li
будет иметь начало в центре часов и вращение переменной --rotation
, таким образом, вместо того, чтобы всегда устанавливать преобразование для каждого дочернего элемента, мы просто устанавливаем переменную 🤷♂️
Часы имеют 12 секций, поэтому 360/12 = 30 градусов, каждый маркер будет расположен на index * 30deg
. И мы закончили с маркерами.
Теперь о указателях. Мы будем использовать ту же логику, что и основной li
для обработки переменной поворота. Часы будут умножены на 30 градусов, 360/12 = 30, минуты и секунды будут умножены на 6 градусов, 360/60 = 6.
И мы закончили, это основная идея использования переменных CSS для создания настенных часов, избегая использования Javascript, делегируя все стили CSS.
Код находится на https://codepen.io/promatik/pen/gOLWzKK.
Посмотри и возьми переменные 🙌
Это была моя первая статья, дайте мне знать, если вас интересуют другие статьи, похожие на эту, просто оставьте несколько аплодисментов 👏 ниже, и я буду публиковать новые материалы.