Dobrovoi Master
сделано с душой
В состоянии постоянного подключения...

Разноцветные ленточки в углах страницы с помощью CSS3

Предлагаю на рассмотрение, готовый набор правил CSS, для создания и последующего размещения в разных углах страницы, разноцветных ленточек, сформированных исключительно средствами CSS3, без использования дополнительных файлов изображений. Для чего вообще нужны эти ? Прежде всего, для акцентирования внимания пользователей на какой-либо важной информации, предельно сжатой и лаконичной.

Разноцветные ленточки в углу страницы

HTML

Для формирования ленточек, используем блочный элемент div и определим классы для дальнейшей работы со стилями в CSS. Классы corner-ribbon и sticky будут общими для всех лент, цвет и позиционирование, будут определяться отдельными классами. В наборе правил 4 варианта расположения лент, по разным углам страницы и 10 вариантов цветовой заливки.
Приведу пример расположения ленточек сразу во всех углах веб-страницы:

1
2
3
4
<div class="corner-ribbon top-left sticky red shadow">Ваш Текст!</div>
<div class="corner-ribbon top-right sticky blue">Ваш Текст!</div>
<div class="corner-ribbon bottom-left sticky orange">Ваш Текст!</div>
<div class="corner-ribbon bottom-right sticky green shadow">Ваш Текст!</div>

CSS

Прямо в коде css, прописал комментарии к селекторам, так сказать, для лучшего понимания, что куда и зачем. Подробно остановлюсь лишь на некоторых моментах.
Класс corner-ribbon общий для всех лент, в нём формируем макет, определяем абсолютное позиционирование, параметры шрифта и задаём значения трансформации под определённым углом( в примере это 45°). В классе sticky, который присутствует в каждой ленте, мы определим фиксированное позиционирование (приклеем) position: fixed;, а сторону к которой прилепим наши ленточки определяем в отдельных классах: top-left для верхнего левого угла, top-right для правого угла сверху, bottom-left и bottom-right для нижних углов соответственно.
Остаётся дело за малым, разукрасить ленточки в разные цвета. Здесь всё зависит от вашей фантазии, выбор цвета заливки и стиль ни чем не ограничен, в примере же я прописал 10 самых распространённых оттенков для фона лент, каждому цвету соответствует свой класс, white, black, grey и так далее…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* общие стили для лент */
.corner-ribbon{
  width: 200px;
  background: #e43;
  position: absolute;
  top: 25px;
  left: -50px;
  text-align: center;
  line-height: 50px;
  letter-spacing: 1px;
  color: #f0f0f0;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
/* фиксируем ленточки */
.corner-ribbon.sticky{
  position: fixed; 
}
/* легкая тень */
.corner-ribbon.shadow{
  box-shadow: 0 0 3px rgba(0,0,0,.3);
}
/* позиции лент */
.corner-ribbon.top-left{ /* верхний угол слева */
  top: 25px;
  left: -50px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
.corner-ribbon.top-right{ /* верхний угол справа */
  top: 25px;
  right: -50px;
  left: auto;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
}
.corner-ribbon.bottom-left{ /* нижний угол слева */
  top: auto;
  bottom: 25px;
  left: -50px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
}
.corner-ribbon.bottom-right{ /* нижний угол справа */
  top: auto;
  right: -50px;
  bottom: 25px;
  left: auto;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
/* выбор цвета лент */
.corner-ribbon.white{background: #f0f0f0; color: #555;}
.corner-ribbon.black{background: #333;}
.corner-ribbon.grey{background: #999;}
.corner-ribbon.blue{background: #39d;}
.corner-ribbon.green{background: #2c7;}
.corner-ribbon.turquoise{background: #1b9;}
.corner-ribbon.purple{background: #95b;}
.corner-ribbon.red{background: #e43;}
.corner-ribbon.orange{background: #e82;}
.corner-ribbon.yellow{background: #ec0;}

Форму, цвет и расположение лент на странице, вы можете выбрать любые, поэкспериментируйте с параметрами, сделайте например, фон ленточек c градиентной заливкой, используя свойства linear-gradient или radial-gradient, добавьте прозрачности, окантуйте рамкой наконец, в общем всё что угодно, лишь бы в радость))). Исходники в полном вашем распоряжении, скачивайте и вперёд — творить, творить…

С Уважением, Андрей .

Буду всем благодарен, если поделитесь ссылкой на запись в своих соц-сетях:

Всего комментариев: 12

  • Галина: 2 ноября, 2014 в 23:26

    ЗдОрово! Наверное так можно и блок в сообщении оформить: цитату, код, важную инфу?

    Ответить
    • driver: 3 ноября, 2014 в 02:36

      Спасибо за отзыв.
      Любой блок, цитату или важную информацию, с помощью CSS, можно оформить как угодно, в том числе и навесить такие ленточки)))

      Ответить
  • Виталий: 5 марта, 2015 в 10:06

    Здравствуйте.Скопировал код css и поставил в редактор css сайта-всё содержимое отображается в верху сайта.Как исправить ошибку??

    Ответить
    • driver: 5 марта, 2015 в 17:29

      Здравствуйте, Виталий. Я так понял, у вас ленточки остаются скрытыми содержимым сайта. Чтобы ленты отображались поверх основного содержимого, достаточно в селектор .corner-ribbon прописать свойство z-index: 10000;
      Ну и конечно же не забыть прописать в html, в разделе <body> определённый div с классом соответствующим цвету и расположению ленты.
      Для примера проделал всё это в firefox через инструменты разработчика, получилась следующая картина: Тынц

      Ответить
  • Виталий: 6 марта, 2015 в 01:20

    Благодарсвую добрейший из добрейших.Ленточка появилась в углу странички.Как её прописать в блоке текст? Это значение отвечает за место размещения position:?Строго не судите наивного чайника.

    Ответить
    • driver: 6 марта, 2015 в 06:08

      Для начала пропишите в #ugolkrug два свойства position: relative; и overflow: hidden; затем найдите класс .corner-ribbon.sticky и выставьте абсолютное позиционирование position: absolute;, а из класса .corner-ribbon исключите ненужное свойство position: static;, если и понадобится то только фиксированное позиционирование position: fixed;, как в случае размещения в углу страницы, а не в отдельно взятом блоке.
      И совсем уж не понятно, зачем вы в параграф <p></p> после текстового блока, поместили код стилей для лент, они у вас прописаны в файле style.css.
      PS: Ширину ленты можете при желании отрегулировать меняя значение в свойстве line-height: 50px;, найдёте в классе .corner-ribbon.
      Надеюсь всё у вас получится Тынц ))).

      Ответить
  • Виталий: 6 марта, 2015 в 14:21

    Очень доходчиво и понятно об’ьясняете.Взгляните пж.sofmach.com/monitor_f_platyat.html” rel=”nofollow”>Надобно было-бы ленточку ближе к углу.Как прописать?И ещё раз спасибо.)))

    Ответить
    • driver: 6 марта, 2015 в 22:49

      По вашей ссылке не увидел лент, смещайте ближе к углу изменяя значение left: -50px;, для начала, исходя из внесённых вами изменений, выставьте -35px примерно.

      Ответить
  • Виталий: 7 марта, 2015 в 01:43

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

    Ответить
    • driver: 7 марта, 2015 в 01:48

      Очень рад за вас) Только я, всё же представлял ленту немного в другом месте

      Ответить
  • Александр: 16 ноября, 2016 в 18:27

    Доброго времени суток!
    Очень классные ленточки…) Вопрос такой, а точнее сразу два. Первый вопрос это как поставить ссылку на саму ленточку? Чтобы при нажатие не на текст, а на саму ленточку перебрасывало на нужную страницу.
    И второй вопрос как поставить ссылку теперь уже на сам текст таким образом чтобы не менялся цвет текста, потому как если просто обёртываешь текст ссылкой то меняется цвет текста?!

    Ответить
    • driver: 26 ноября, 2016 в 23:51

      В первом случае замените div на тег ссылки. Во втором слово обнесите ссылкой и работайте с css

      Ответить

Оставить комментарий

Ваш email не будет опубликован.

Вы можете использовать следующие HTML тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>