Site icon Vavik96

CSS лента с треугольниками по краям

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

В этой статье вы узнаете, как сделать css ленту без использования изображений и при минимуме HTML разметки.

Зачем понадобились CSS ленты?

На самом деле для ваших лент вы можете использовать изображения. Но, используя CSS для создания лент, вы получаете следующие преимущества:

demo

Структура CSS ленты

Изначально, скажем, у вас есть блок с отступом 20px (padding:20px).

Теперь давайте добавим элемент, который станет нашей лентой. Для этого нам потребуется всего один элемент, например h1.

Не забывайте, что у тега-родителя присутствует 20px отступ. Чтобы создать ленту, необходимо вывести заголовок за пределы правой и левой стороны блока родителя.

CSS

h1
{
  margin: 0 -30px; /* top:0, right:-30px, bottom:0, left:-30px */
}


Добавим углы, для этого создадим css-треугольники с помощью псевдоэлементов.

Псевдоэлементы-селекторы :before и :after сгенерируют для нас углы (позиционируем относительно нижней стороны заголовка: bottom: -10px;). Углы (треугольники) мы создадим при помощи границ (border). Просто, где необходимо, назначьте толщину и цвет соответствующих границ.

CSS

    h1{
  text-align: center;
  position: relative;
  color: #fff;
  margin: 0 -30px 30px -30px;
  padding: 10px 0;
  text-shadow: 0 1px rgba(0,0,0,.8);
  background: #5c5c5c;
  background-image: -moz-linear-gradient(rgba(255,255,255,.3), rgba(255,255,255,0));
  background-image: -webkit-linear-gradient(rgba(255,255,255,.3), rgba(255,255,255,0));
  background-image: -o-linear-gradient(rgba(255,255,255,.3), rgba(255,255,255,0));
  background-image: -ms-linear-gradient(rgba(255,255,255,.3), rgba(255,255,255,0));
  background-image:  linear-gradient(rgba(255,255,255,.3), rgba(255,255,255,0));
  -moz-box-shadow: 0 2px 0 rgba(0,0,0,.3);
  -webkit-box-shadow: 0 2px 0 rgba(0,0,0,.3);
  box-shadow: 0 2px 0 rgba(0,0,0,.3);
    }

    h1:before, h1:after
    {
  content: '';
  position: absolute;
  border-style: solid;
  border-color: transparent;
  bottom: -10px;
    }

    h1:before
    {
  border-width: 0 10px 10px 0;
  border-right-color: #222;
  left: 0;
    }

    h1:after
    {
  border-width: 0 0 10px 10px;
  border-left-color: #222;
  right: 0;
    }

 

Используя данный CSS, вы получите что-то похожее на:

demo

Поддержка браузеров

Браузеры IE6 и IE7 не поддерживают псевдоэлементы :before и :after, однако, если вам потребуются эти браузеры, замените псевдоэлементы на обычный HTML элемент, например span.

IE8, IE9, IE10, Firefox, Opera, Chrome и Safari отобразят ленту. Однако есть небольшие отличия, который возникают из-за неполной поддержки браузерами CSS3.
Источник

Exit mobile version