Разноцветные ленточки в углах страницы с помощью 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, добавьте прозрачности, окантуйте рамкой наконец, в общем всё что угодно, лишь бы в радость))). Исходники в полном вашем распоряжении, скачивайте и вперёд — творить, творить…
Буду всем благодарен, если поделитесь ссылкой на запись в своих соц-сетях:
ЗдОрово! Наверное так можно и блок в сообщении оформить: цитату, код, важную инфу?
Спасибо за отзыв.
Любой блок, цитату или важную информацию, с помощью CSS, можно оформить как угодно, в том числе и навесить такие ленточки)))
Здравствуйте.Скопировал код css и поставил в редактор css сайта-всё содержимое отображается в верху сайта.Как исправить ошибку??
Здравствуйте, Виталий. Я так понял, у вас ленточки остаются скрытыми содержимым сайта. Чтобы ленты отображались поверх основного содержимого, достаточно в селектор
.corner-ribbon
прописать свойствоz-index: 10000;
Ну и конечно же не забыть прописать в html, в разделе
<body>
определённыйdiv
с классом соответствующим цвету и расположению ленты.Для примера проделал всё это в firefox через инструменты разработчика, получилась следующая картина: Тынц
Благодарсвую добрейший из добрейших.Ленточка появилась в углу странички.Как её прописать в блоке текст? Это значение отвечает за место размещения position:?Строго не судите наивного чайника.
Для начала пропишите в
#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
.Надеюсь всё у вас получится Тынц ))).
Очень доходчиво и понятно об’ьясняете.Взгляните пж.sofmach.com/monitor_f_platyat.html” rel=”nofollow”>Надобно было-бы ленточку ближе к углу.Как прописать?И ещё раз спасибо.)))
По вашей ссылке не увидел лент, смещайте ближе к углу изменяя значение
left: -50px;
, для начала, исходя из внесённых вами изменений, выставьте -35px примерно.Всё получилось!!! Красивая ленточка в уголке блока заняла своё место. Спасибо огромнейшее за помощь, которой Вы занимаетесь. Побольше-бы таких людей и мир станет лучше)))))
Очень рад за вас) Только я, всё же представлял ленту немного в другом месте
Доброго времени суток!
Очень классные ленточки…) Вопрос такой, а точнее сразу два. Первый вопрос это как поставить ссылку на саму ленточку? Чтобы при нажатие не на текст, а на саму ленточку перебрасывало на нужную страницу.
И второй вопрос как поставить ссылку теперь уже на сам текст таким образом чтобы не менялся цвет текста, потому как если просто обёртываешь текст ссылкой то меняется цвет текста?!
В первом случае замените div на тег ссылки. Во втором слово обнесите ссылкой и работайте с css