Объявление
Уважаемые читатели, друзья, подписчики. В связи с участившимся и, порядком надоевшим спамом в комментариях от всяких анонимах(будь они не ладны), я вынуждена включить модерацию комментариев на некоторое время. Очень надеюсь на ваше понимание.

Анимированная пунктирная рамка CSS

Привет, всем. Как создать анимированную рамку для текста или картинки, используя только CSS. Рамки всегда являются украшением элементов веб - страницы и давайте посмотрим, как просто можно задать им анимацию.

анимированная рамка

Будем использовать свойства outline и box-shadow. Вместе они создадут эффект двухцветного пунктира.

Я приведу вам несколько примеров, но сотворить можно совершенно уникальный вариант. Чтобы просмотреть каждый из них, скопируйте любой из кодов и вставьте в этот редактор для просмотра.



Просто создаётся обычная пунктирная рамка CSS вокруг текста. Стиль рамки задается с помощью трех свойств: стиль, цвет и ширина. Как - то так

.ramka{
    outline: 6px dashed yellow;
    box-shadow: 0 0 0 6px #EA3556;
 
 }


Для outline нужно будет задать width, type и color. Для box-shadow нужно задать значение, которое должно быть таким же, как width и color для outline.

Создаём анимацию и добавляем его к общему коду.

@keyframes animateBorder {
  to {
    outline-color: #EA3556;
    box-shadow: 0 0 0 6px yellow;
  }
}

Сейчас несколько готовых вариантов анимации пунктирной рамки с кодами. Всё наглядно можно посмотреть на тестовом блоге по ссылке выше.

Вариант 1.  

<div class="animation-examples one">
Здесь ваш текст
  </div>

<style>
.animation-examples {
  width: 600px;
  height: 120px;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  font-size: 30px;
  font-weight: bold;
  font-family: cambria;
}

.animation-examples.one {
  color: #69D2E7;
  outline: 10px dashed #E0E4CC;
  box-shadow: 0 0 0 10px #69D2E7;
  animation: 1s animateBorderone ease infinite;
}

@keyframes animateBorderone {
  to {
    outline-color: #69D2E7;
    box-shadow: 0 0 0 10px #E0E4CC;
  }
}</style>


Вариант 2. Заменим свойство dashed на double, ширину рамки и тени.

<div class="animation-examples two">
Здесь ваш текст<br />
<br /></div>
<style>

.animation-examples {
  width: 600px;
  height: 120px;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  font-size: 30px;
  font-weight: bold;
  font-family: cambria;
}

.animation-examples.two {
  color: #FA2A00;
  outline:12px double #F2D694;
  box-shadow: 0 0 0 8px #FA2A00;
  animation: 2s animateBorderTwo ease infinite;
}

@keyframes animateBorderTwo {
  to {
    outline-color: #FA2A00;
    box-shadow: 0 0 0 8px #F2D694;
  }
}</style>


Вариант 3. Можно сделать фон внутри блока или даже задать linear-gradient

<div class="animation-examples three">
Ваш текст</div>
<style>.animation-examples.three {
  color: #BEF202;
  background: linear-gradient(to bottom, #BEF202 50%, #1B676B 50%);
  background-size: auto 2px;
  outline: 10px dashed #BEF202;
  box-shadow: 0 0 0 10px #1B676B;
  animation: 1s animateBorderThree ease infinite;
}

@keyframes animateBorderThree {
  to {
    outline-color: #1B676B;
    box-shadow: 0 0 0 10px #BEF202;
  }
}

#animation-examples{
  margin: 20px 10px;
}
</style>


Во всех вариантах цвет самого контура задаётся с помощью outline-color (outline: 6px dashed yellow;). А цвет тени в другом варианте box-shadow: 0 0 0 8px #FA2A00; При подборе цвета воспользуйтесь этой таблицей.

Вариант 4. Для изображений.

<div class="animation-photos one">
<img src="http://www.vashsad.ua/downloads/image/9832/Euphorbia4.jpg" alt="" />
  <br />
<br /></div>
<style>
.animation-photos {
  width: 400px;
  height: 280px;

}

.animation-photos.one {
  color: #69D2E7;
  outline: 10px dashed #CCCC00;
  box-shadow: 0 0 0 10px #FFFF00;
  animation: 1s animateBorderone ease infinite;
}

@keyframes animateBorderone {
  to {
    outline-color: #FFFF00;
    box-shadow: 0 0 0 10px #CCCC00;
  }
}</style>


Адрес картинки отмечен синим цветом. Ширина и высота изображения в примере  width: 400px; и  height: 280px;

В примерах был использован стиль рамки dashed. А вот во втором попробовала сделать double. Если есть желание поиграться ниже приведена таблица стилей.

стили рамки

Это более простое решение, чем использование CSS-градиентов для анимации рамки.

Идею подчерпнула здесь.
Сегодня у меня всё. Спасибо за внимание и до встречи.

Здесь вы можете оформить подписку на новые шпаргалки

Введите Ваш email


3 комментария:

  1. Виктория, очень интересно! Спасибо! Что только ты не придумаешь!!!

    ОтветитьУдалить
    Ответы
    1. Ирина, пожалуйста. ты любишь рамочки у картинок. Эти коды легкие.

      Удалить
  2. занимательно, спасибо

    ОтветитьУдалить

ВСЕГДА РАДА УСЛЫШАТЬ ВАШЕ МНЕНИЕ!
Ели у вас возникла необходимость опубликовать код в комментарии, то воспользуйтесь encoder HTML