Сегодня мы научимся создавать и кодировать облаков тегов, используя Фотошоп и CSS! Мы будем использовать несколько старых приемов и немного продвинутых методов CSS. На старт, внимание, марш!

Скачать
Посмотреть демо

Шаг 01: Дизайн тегов

Итак, откройте Фотошоп. И создайте новый документ размер 71px на 29px.

Ширина файла особо ничего здесь не значит… но высоту стоит запомнить.

Теперь нарисуйте прямоугольник с закругленными углами радиуса 2px. Оставьте немного пространства для тени снизу и справа.

Пришло время создать нашу форму. Мы будем использовать инструменты Add Point и Convert Point . Поиграйте с якорными точками, пока не добьетесь желаемого результата. Вот что у меня получилось:

Теперь нужно сделать небольшую дырку в нашем теге. Используйте инструмент elliptical marquee и сделайте круглое выделение, удерживая клавишу Shift.

После этого инвертируйте выделение ( Select > Inverse ) и превратите его в векторную маску, нажав на кнопку Add Layer Mask на панели слоев.

Примените следующие стили слоя:

Конечный результат должен выглядеть вот так:

В файле  PSD вы заметите, что я добавил текст. Делайте то же самое, если хотите посмотреть, как будет выглядеть ваш будущий тег.

Заметка: вы можете сами перевернуть теги в Фотошопе, но я покажу вам, как это сделать с помощью CSS, в кодовой части.

Шаг 02: Обрезание

Итак, у нас есть готовый дизайн тегов, но как мы будем использовать его на нашей веб страничке? Начнем мы с того, что разрежем тег на три кусочка:

  • Левый кусок
  • Центральный градиент
  • Правый кусок

Сохраните все эти файлы в формате PNG в папке “images”.

Теперь нужно создать базовый макет. В будущем мы попробуем минимализировать наш код.

Вот базовый шаблон для каждого тега:

</pre>
<div class="tag tag-left">
<div class="left"></div>
<div class="center"><a href="#"> Дизайн </a></div>
<div class="right"></div>
</div>
<pre>    
Давайте быстренько посмотрим, что мы написали. У нас есть три тега DAV.
  • Left DIV (для левого тега)
  • Center DIV (для текста и градиента)
  • Right DIV (для правого тека)
Вы можете скопировать этот блок кода несколько раз, чтобы посмотреть, как будут выглядеть теги. Теперь пришло время для CSS.

Шаг 03: Базовый CSS

Мы начнем писать код CSS, назначая правила для каждого DIV. Я покажу вам сначала код, а потом объясню что к чему.

    .tag {

    font-size: 11pt;

    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.4);

    float: left;  /* Делает так, чтобы каждая часть тега была рядом с другой */

    margin: 5px;

    }

    .tag .center{

    background: url("images/gradient.png") repeat-x scroll left top transparent;

    float: left;

    height: 29px;  /* Та же самая, что и высота изображения */

    width: auto;

    padding: 0px 6px;  /* Дает тексту немного пространства */

    }

    .tag .center a{

    vertical-align: middle; /* Важно для того, чтобы текст идеально смотрелся */

    line-height: 21pt; /* Важно для того, чтобы текст идеально смотрелся */

    color: #0f2d39;

    text-decoration: none;

    }

    
Этот блок кода настраивает элемент, который будет управлять нашим тегом; заметьте, что здесь мы используем базовые правила, простое выравнивание и расстояние между каждым тегом. Два последних тега устанавливают фоновый градиент и пространство между тегами. На данный момент у вас должно получиться что-то вроде этого:    Теперь давайте добавим немного стиля для правой и левой сторон.

    .tag-left .left{

    background: url("images/tagleft_left.png") no-repeat scroll left top transparent;

    display: block;

    float: left;

    height: 29px;  /* Та же самая, что и высота изображения */

    width: 15px;  /* Та же самая, что и ширина изображения */

    }

    .tag-left .right{

    background: url("images/tagleft_right.png") no-repeat scroll right top transparent;

    display: block;

    float: left;

    height: 29px;  /* Та же самая, что и высота изображения */

    width: 4px;  /* Та же самая, что и ширина изображения */

    }

    
Этот блок кода управляет следующими вещами:
  • Фоновые изображения.
  • Определяет высоту и ширину левой и правой сторон тега. Размеры должны совпадать с размерами изображения.
  • Выравнивание по левой стороне.
Теперь ваши теги почти закончены:    Но что если мы хотим, чтобы один тег смотрел в другую сторону? Вот теперь пора применить селекторы “tag-left” и “tag-right”. Теперь нам остается добавить несколько корректировок в CSS, чтобы сделать перевернутый тег:

    .tag-right .left{

    background: url("images/tagright_left.png") no-repeat scroll left top transparent;

    display: block;

    float: left;

    height: 29px;  /* Та же самая, что и высота изображения */

    width: 4px;  /* Та же самая, что и ширина изображения */

    }

    .tag-right .right{

    background: url("images/tagright_right.png") no-repeat scroll right top transparent;

    display: block;

    float: left;

    height: 29px;  /* Та же самая, что и высота изображения */

    width: 16px;  /* Та же самая, что и ширина изображения */

    }

    
Вот что у нас получится:    Все! Честно говоря, почти все. В следующем шаге я покажу немного более сложные приемы CSS для более красивого эффекта.  Заметка Googly Fonts:  я думаю вы заметили, что я использую шрифт  Droid Sans  . Очень легко применить какой-либо шрифт, просто зайдите на сайт  Google Шрифты  , выберите любой шрифт и вставьте его код в CSS. Что мне нравится в таких шрифтах, так это то, что к ним можно с легкостью применить  стили CSS, например тени или обводку.

Шаг 04: Продвинутый CSS

Любой, кто когда-либо занимался кодированием, скажет, что всегда есть способ, сократить код. Этим мы сейчас и займемся. Начнем с того, что посмотрим, что было плохого в нашем коде.
  • Слишком много шаблонов! Мы не должны использовать четыре разных DIV элемента.
  • Слишком много CSS! Конечно, такой код работает, но его можно уменьшить.
  • Трудно корректировать! Большое количество шаблонов означает, что такой код не будеть работать во многих CMS, например WordPress

Старый CSS


    /* Стиль тегов */

    .tag {

    font-size: 11pt;

    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.4);

    float: left;  /* Делает так, чтобы каждая часть тега была рядом с другой */

    margin: 5px;

    }

    .tag .center{

    background: url("images/gradient.png") repeat-x scroll left top transparent;

    float: left;

    height: 29px;  /* Та же самая, что и высота изображения */

    width: auto;

    padding: 0px 6px;  /* Дает тексту немного пространства */

    }

    .tag .center a{

    vertical-align: middle; /* Важно для того, чтобы текст идеально смотрелся */

    line-height: 21pt; /* Важно для того, чтобы текст идеально смотрелся */

    color: #0f2d39;

    text-decoration: none;

    }

    /* Правила левых тегов */

    .tag-left .left{

    background: url("images/tagleft_left.png") no-repeat scroll left top transparent;

    display: block;

    float: left;

    height: 29px;  /*  Та же самая, что и высота изображения */

    width: 15px;  /* Та же самая, что и ширина изображения */

    }

    .tag-left .right{

    background: url("images/tagleft_right.png") no-repeat scroll right top transparent;

    display: block;

    float: left;

    height: 29px;  /*  Та же самая, что и высота изображения */

    width: 4px;  /* Та же самая, что и ширина изображения */

    }

    /* Правила правых тегов */

    .tag-right .left{

    background: url("images/tagright_left.png") no-repeat scroll left top transparent;

    display: block;

    float: left;

    height: 29px;  /*  Та же самая, что и высота изображения */

    width: 4px;  /* Та же самая, что и ширина изображения */

    }

    .tag-right .right{

    background: url("images/tagright_right.png") no-repeat scroll right top transparent;

    display: block;

    float: left;

    height: 29px;  /*  Та же самая, что и высота изображения */

    width: 15px;  /* Та же самая, что и ширина изображения */

    }

    

Новый CSS


    /* Стиль тегов */

    .tag {

    float: left;

    margin: 5px;

    height: 29px; /* Та же самая, что и высота изображения */

    width: auto;

    }

    .tag a{

    background: url("images/gradient.png") repeat-x scroll left top transparent;

    float: left;

    height: 29px;

    padding: 5px 6px;

    color: #0F2D39;

    font-size: 11pt;

    text-decoration: none;

    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.4);

    }

    .tag:before{

    content: '';

    background: url("images/tagleft_left.png") no-repeat scroll 0 0 transparent;

    display: block;

    float: left;

    height: 29px; /* Та же самая, что и высота изображения */

    width: 15px; /* Та же самая, что и ширина изображения */

    }

    .tag:after{

    content: '';

    background: url("images/tagleft_right.png") no-repeat scroll 0 0 transparent;

    display: block;

    float: right;

    height: 29px; /* Та же самая, что и высота изображения */

    width: 4px; /* Та же самая, что и ширина изображения */

    }

    /* Стиль перевернутых тегов */

    .tag.flip:before{

    content: '';

    background: url("images/tagright_left.png") no-repeat scroll left top transparent;

    display: block;

    float: left;

    height: 29px; /* Та же самая, что и высота изображения */

    width: 4px; /* Та же самая, что и ширина изображения */

    }

    .tag.flip:after{

    content: '';

    background: url("images/tagright_right.png") no-repeat scroll right top transparent;

    display: block;

    float: right;

    height: 29px; /* Та же самая, что и высота изображения */

    width: 15px; /* Та же самая, что и ширина изображения */

    }

    
В чем отличия? Для начала мы исключили элементы для правой и левой стороны в каждом DIV. Вот, сравните:

Старый HTML шаблон

</pre>
<div class="tag tag-left">
<div class="left"></div>
<div class="center"><a href="#"> Дизайн </a></div>
<div class="right"></div>
</div>
<pre>    

Новый HTML шаблон

    <span class="tag">
 <a href="#"> Дизайн </a>
 </span>
    
Используя селекторы  :before  и  :after  , мы добились того, что наш код стал чище, и кроме того он работает во всех современных браузерах.

Бонусный Шаг 01: Добавляем перекрытие курсором

Для того, чтобы добавить эффект перекрытия курсором, нужно применить несколько правил для селектора  :hover  и для  :before  и  :after  . Кстати:
    .tag:hover:before{}
    
Теперь вы можете добавить собственные настройки того, что будет во время перекрытия курсором. Вы можете сделать все, что угодно: поменять цвет текста, прозрачность и даже фоновые изображения:
    .tag a:hover{
    background: url("images/gradient_hover.png") repeat-x scroll left top transparent;
    }

    .tag:hover:before{
    background: url("images/tagleft_left_hover.png") no-repeat scroll 0 0 transparent;
    }

    .tag:hover:after{
    background: url("images/tagleft_right_hover.png") no-repeat scroll 0 0 transparent;
    }

    .tag.flip:hover:before{
    background: url("images/tagright_left_hover.png") no-repeat scroll left top transparent;
    }

    .tag.flip:hover:after{
    background: url("images/tagright_right_hover.png") no-repeat scroll right top transparent;
    }
    
Спасибо за внимание! Я жду ваши советы и вопросы в комментариях!