Несколько способов создания анимации для границ в CSS:
- Изменение длины границы. 1 Для этого используются два псевдоэлемента, высота и ширина которых могут быть изменены при переходе. 1
- Анимация с помощью clip-path. 1 Элементы отсекаются, псевдоэлементы используются в качестве фона для обрезки и анимации. 1 Этот метод также поддерживает возможность закругления границ (border-radius). 1
- Использование свойства overflow. 1 С его помощью можно скрыть весь элемент, который изначально был вне контейнера, и достичь линейного ховер-эффекта. 1
- Применение border-image. 1 Для этого используются свойства border-image-slice и border-image-repeat, которые позволяют получить похожий рисунок границы. 1 Чтобы сделать его движущимся, нужно заставить паттерн двигаться, то есть получить фоновое изображение. 1
- Имитация через box-shadow. 3 В спецификации box-shadow скрыто четвёртое значение — spread-radius. 3 Если установить все остальные значения в 0px, можно создать рамку через spread-radius. 3
Выбор способа зависит от требований проекта. 3