Эффект 3D ленты для заголовка
Возможности CSS3 позволяют избегать использования изображений для достижения некоторых эффектов на сайте. В этой статье мы также подкрепим данное утверждение очередным фактом.
Думаю с эффектом представленным на картинке выше, вам приходилось встечаться на просторах интернета. Ранее его реализовывали при помощи нарезки изображений, а сегодня мы реализуем данный пример используя только CSS и HTML.

Шаг 1. HTML структура
<div class="module">
<div class="module-title">
<h3><span>Заголовок модуля</span></h3>
<div class="triangle-l"></div>
<div class="triangle-r"></div>
</div>
<div class="module-body">
<p>Здесь будет текст, картинка, список, меню или что-то в этом роде<p/>
</div>
</div>
Структура довольно проста, дивы с классами triangle-l и triangle-r, буду использованы для создания тех саых треугольничков, чтобы добиться 3D эффекта глубины.
Шаг 2. Добавление стилей
Зададим нашему модулю ширину, отцентрируем его, зададим фон и цвет текста, а также сделаем внутренний отступ сверху, чтобы сдвинуть наш заголовок.
.module {
margin: 0 auto;
padding-top: 20px;
background: #eeeeee;
color: #333;
width: 250px;
}
Заголовку дадим 100% ширину и установим свойство padding: 10px 15px; чтобы он вылазил за рамки модуля. Стилизуем тег h3 и p:
.module-title {
position: relative;
width: 100%;
padding: 10px 15px;
background: #0077e8;
}
.module-title h3{
text-align: center;
margin: 0;
color: #fff;
/*shadow*/
text-shadow: 0px 1px 0px #000;
}
.module-body {padding: 0 10px 10px;}
Сдвиним наш заголовок влево на -15px и напишем стили для triangle-l и triangle-r:
.module-title {
...
margin: 0 0 0 -15px;
}
.triangle-l {
border-color: transparent transparent transparent #036;
border-style: solid;
border-width: 15px;
width: 0; height: 0;
line-height: 0;
}
.triangle-r {
border-color: transparent #036 transparent transparent;
border-style: solid;
border-width: 15px;
width: 0; height: 0;
line-height: 0;
}
Несложно заметить, что наши треугольники как-то недоработаны 🙂
Дадим им абсолютное позиционирование и позиции по краям заголовка, также объеденим общие свойства у классов triangle-l и triangle-r:
.triangle-l, .triangle-r {
position: absolute;
bottom: -15px; right: -15px;
z-index: -1;
border-color: transparent transparent transparent #036;
border-style: solid;
border-width: 15px;
width: 0; height: 0;
line-height: 0;
}
.triangle-r {
bottom: -15px; left: -15px;
border-color: transparent #036 transparent transparent;
}
Шаг 3. CSS3 стили
Раз шаг называется CSS3 стили, то будем полностью верны названию 🙂
Избавимся от дивов triangle-l и triangle-r и воспользуемся псевдо-элементами ::after и ::before
HTML стал таким:
<div class="module">
<div class="module-title">
<h3><span>Заголовок модуля</span></h3>
</div>
<div class="module-body">
<p>Здесь будет текст, картинка, список, меню или что-то в этом роде<p/>
</div>
</div>
а CSS код стал таким:
.module {
margin: 0 auto;
padding-top: 20px;
background: #eeeeee;
color: #333;
width: 250px;
}
.module-title {
position: relative;
width: 100%;
padding: 10px 15px;
margin: 0 0 0 -15px;
background: #0077e8;
}
.module-title h3{
text-align: center;
margin: 0;
color: #fff;
/*shadow*/
text-shadow: 0px 1px 0px #000;
}
.module-body {padding: 0 10px 10px;}
.module-title::after, .module-title::before {
content: '';
position: absolute;
bottom: -15px; right: -15px;
z-index: -1;
border-color: transparent transparent transparent #036;
border-style: solid;
border-width: 15px;
width: 0; height: 0;
line-height: 0;
}
.module-title::before {
bottom: -15px; left: -15px;
border-color: transparent #036 transparent transparent;
}
Добавим немного теней и градиентной заливки:
.module {
margin: 0 auto;
padding-top: 20px;
background: #eeeeee;
color: #fff;
width: 250px;
/*border radius*/
-webkit-border-radius: 2px;
border-radius: 2px;
/*shadow*/
-moz-box-shadow: 0px 3px 10px #000000;
-webkit-box-shadow: 0px 3px 10px #000000;
box-shadow: 0px 3px 10px #000000;
/*gradient*/
background: #a90329;
background: -moz-linear-gradient(top, #a90329 0%, #8f0222 44%, #6d0019 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a90329), color-stop(44%,#8f0222), color-stop(100%,#6d0019));
background: -webkit-linear-gradient(top, #a90329 0%,#8f0222 44%,#6d0019 100%);
background: -o-linear-gradient(top, #a90329 0%,#8f0222 44%,#6d0019 100%);
background: -ms-linear-gradient(top, #a90329 0%,#8f0222 44%,#6d0019 100%);
background: linear-gradient(to bottom, #a90329 0%,#8f0222 44%,#6d0019 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a90329', endColorstr='#6d0019',GradientType=0 );
}
.module-title {
position: relative;
width: 100%;
padding: 10px 15px;
margin: 0 0 0 -15px;
background: #0077e8;
/*shadow*/
-moz-box-shadow: 0px 1px 3px #000000;
-webkit-box-shadow: 0px 1px 3px #000000;
box-shadow: 0px 1px 3px #000000;
/*gradient*/
background: #7abcff;
background: -moz-linear-gradient(top, #7abcff 0%, #60abf8 44%, #4096ee 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7abcff), color-stop(44%,#60abf8), color-stop(100%,#4096ee));
background: -webkit-linear-gradient(top, #7abcff 0%,#60abf8 44%,#4096ee 100%);
background: -o-linear-gradient(top, #7abcff 0%,#60abf8 44%,#4096ee 100%);
background: -ms-linear-gradient(top, #7abcff 0%,#60abf8 44%,#4096ee 100%);
background: linear-gradient(to bottom, #7abcff 0%,#60abf8 44%,#4096ee 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7abcff', endColorstr='#4096ee',GradientType=0 );
}








Добрый день, на локальной версии сайта (сайт без CMS) все работает без нареканий.
Выгрузил сайт на хостинг и Опа… Ленты нет. Запускаю локальный index.html все на месте. LoL )) В чем может быть проблема?
я постараюсь сделать рабочий демо-пример и тогда вам отпишусь
Вы знаете я поправил демо-пример, точнее сделал его доступным 🙂
Код работает. В вашем случае проверьте какие стили наследуются элементами 3D ленты, возможно в коде(стилях) CMS используются те же имена классов и перекрываются свойства.
Или киньте ссылку я посмотрю 😉