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

Имеется макет сайта в формате PSD. В нем есть несколько фоновых слоев - один основной, второй для контентной части. Для наглядности приведу примеры обоих слоев:

Два фоновых слоя макета в Photoshop

Если с получением основного фона нет каких-либо проблем - достаточно выделить его и сохранить отдельным изображением (сохранять придется целиком, так как у него нет повторяющихся частей). То со вторым фоном будут некоторые трудности (по крайней мере, у меня).

Выделяем фон контентной части. Видим, что из себя он представляет фоновую заливку. Градиент при ее создании не использовался. Из эффектов имеются только внутренняя тень и внешняя тень, которые мы отключим. Обе тени легко воссоздать с помощью стилевых правил CSS:

Эффекты контентного фона в Photoshop

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

Фоновый слой контентной части в Photoshop

Внимательно смотрим на скриншот и видим. Что мы видим? Слой с заливкой однотонной, в которой градиент не применяется. Вырезать кусок изображения, чтобы использовать его в качестве фонового изображения контентной части нет смысла. Более правильным решением будет использовать цвет изображения через свойство background.

Однако, даже “на глаз” видно, что фон имеет прозрачность, которую мы также должны передать через стилевые правила CSS.

Как же узнать значение прозрачности слоя? Не скрою, для меня до данного момента это было загадкой. Но все решилось очень просто. Открываем свойства слоя Shape13 двойным щелчком на нем. В появившемся окне свойств видим такую картину:

Свойства фоновой заливки в Photoshop

Смотрим в подраздел “Дополнительные параметры” в правой части. В этом подразделе находим параметр (самый верхний) “Непрозрачность заливки”. И видим значение этого параметра - 45%. Это и есть прозрачность фоновой заливки контентной части.

Теперь осталось написать CSS-правила для этого слоя:

.content {
  background:#2b2e28;
  background:rgba(43, 46, 40, .45);
}

В первом правиле background: #2b2e28 мы обошлись значением цвета в формате HEX, который не поддерживает передачу полупрозрачности. Это сделано для браузеров, которые не могут передать полупрозрачность фонового слоя и вообще не понимают такого свойства, как полупрозрачность.

Во втором случае background: rgba(43, 46, 40, .45) цвет задан через значение rgba, где a - это альфа-канал. Второе правило было создано для современных браузеров, которые “понимают”, что такое полупрозрачность и могут ее передать через соответствующие CSS-правила.

Значение альфа-канала, как мы узнали в Photoshop, равно 45%. Поэтому в правилах CSS значение 45% прописываем так - .45. Значение каналов rgb также узнаем в Photoshop (в том же окне, в котором мы брали значение HEX) и прописываем в соответствии с синтаксисом - 43, 46, 40.

На этом все.


При нарезке макета часто возникает ситуация, когда необходимо вырезать изображение с прозрачным фоном. После того, как изображение вырезано и вставлено в новый документ для обработки, очень желательно подогнать размеры картинки так, чтобы она занимала минимальное место.

Вот тут на помощь и приходит инструмент “Trim” в Photoshop. С помощью него производится обрезка изображения на основе выбранного фильтра. В результате картинка получиться меньшего размера и только с полезным содержимым. Чтобы было понятнее, давайте разберем на примере.

Имеется некий макет, из которого необходимо вырезать логотип (очень частая операция). Первым делом, находим и определяем слои, из которых состоит логотип. Затем объединяем их в один слой и выделяем логотип на макете с помощью инструмента “Выделение”:

Выделенный логотип на шаблоне

Копируем его и вставляем в новый документ. На изображении хорошо видно, что выделение было произведено “на глаз” - имеют большие зазоры между границей выделения (штриховая линия) и границами самого изображения.

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

Затем переходим в меню “Image - Trim”:

Trim Options

В окне настроек устанавливаем радиокнопку в положение “Transparent Pixels”. В этом случае обрезка изображения будет производиться на основе поиска прозрачных пикселей, окружающих само изображение. Нажимаем ОК и получаем результат:

Trim Ready

То есть, Photoshop нашел все прозрачные пиксели, окружающие изображение, и удалил их так, чтобы не нарушить саму картинку. Границы изображения сузились и оказались точно подогнаными под границы самой картинки. Теперь ее можно сохранить и применять при последующей верстке.

На этом все.


Часто при верстке psd-макета приходится сталкиваться с ситуацией, когда дизайнер применяет полупрозрачность в слое.

Сегодня это достаточно стандартный прием, так как средства CSS позволяют легко передать в коде полупрозрачность любого цвета. Осуществляется это с помощью свойства rgba, где последняя буква а обозначает альфа-канал. Благодаря этому альфа-каналу и передается полупрозрачность.

Хорошо, с этим разобрались - легко можно передать в помощью CSS прозрачность. Но вот при верстке psd-макета как узнать, какое значение прозрачности задал дизайнер. Оказывается, все достаточно просто и не нужно лезть куда-то вглубь, в свойства.

Допустим, есть пример psd-макета, в котором есть слои с полупрозрачностью:

Макет с полупрозрачностью в Photoshop

Видим, что на нем есть два участка, где художник применил полупрозрачность. Верхняя часть, где будет располагаться шапка будущего сайта; нижняя часть, в которой будет находиться подвал сайта. С цветом можно определиться сразу, “на глаз” - это черный цвет #000.

Если вдруг не уверены с правильностью определения цвета, то можно продублировать нужный слой в отдельный документ и ткнуть в него “пипеткой”:

Цвет продублированного слоя в Photoshop

Почему нужно обязательно дублировать слой? А вы попробуйте “ткнуть” пипеткой в интересующий слой на самом макете. Вы никогда не получите одного и того же цвета, и ни разу - черного. Так и должно быть, так как наш слой полупрозрачный, сквозь который проступает еще один слой - с фоновой картинкой. Поэтому лучше продублировать слой и там уже проверять цвет заливки.

Но вернемся к вопросу, ради которого и затевалась эта небольшая статья. Наверное, внимательные читатели уже ответили для себя на него, посмотрев на первую картинку. Последовательность действий в этом случае стандартная - открываем палитру слоев в Photoshop. Выбираем инструмент “Move Tool” (V) и ткнем мышью на нужном слое.

Если Photoshop настроен правильно, то искомый слой автоматически выделиться в палитре (как на рисунке). Переводим взгляд в верхний правый угол палитры и видим там небольшое окошко с названием “Opacity”.

Это как раз то, что нам нужно. В этом окошке показывается полупрозрачность, с которой дизайнер нарисовал этот слой. В моем случае она равна 90%. Это значение и нужно использовать при создании CSS-кода.

Например, так:

background-color: rgba(0,0,0, 0.9);

На этом все.


При создании макетов в Photoshop дизайнеры очень любят использовать скругление углов для самых различных блоков.

Причем, они любили это делать всегда, с самых незапамятных времен. Спору нет, блоки с такими углами смотрятся гораздо приятнее, что положительным образом сказывается на самом дизайне сайта.

Но вот верстальщику в данной ситуации не совсем легко. Как передать в коде такое скругление углов? Раньше, до появления CSS3, выходили из положения трудоемким и кропотливым способом - вырезали из изображения скругленные углы и всталяли их в код к качестве фоновых изображений.

Но вот появился CSS3 и дело значительно облегчилось, так как в этой спецификации есть свойство, специально созданное для отрисовки круглых углов у блоков. Оно называется border-radius.

На момент своего появления поддержка браузерами осуществлялась с помощью браузерных префиксов, таких как -webkit, -moz, -o и так далее. Но на сегодняшний день, насколько я знаю, от использования подобных префиксов можно уже отказаться.

Но речь в данной статье не об этом. Точнее, не о том, как создать скругленный угол в CSS3. А о том, как померить этот угол на psd-макете. Допустим, у нас есть присланный дизайнером макет сайта:

PSD-макет сайта в Photoshop

Видно, что художник постарался от души - скруглений хоть отбавляй. Ну, ничего сложного для верстальщика здесь нет. Блоки со скругленными углами - достаточно узнать радиус скругления этих углов, которые нарисовал дизайнер, и прописать для них свойство border-radius: 20px, к примеру.

А вот как его узнать? Не звонить же дизайнеру с вопросом - какой радиус ты заложил в макете?

Скажу, что сразу ответ на этот вопрос я не получил. По привычке отправился на форум forum.htmlbook.ru, но конкретного ничего не вынес оттуда. После поисков в Инете все-же решение было найдено. И оно оказалось очень простым.

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

Две касательные точки скругления в Photoshop

Проведем в качестве вспомогательных линий две направляющие - вертикальную и горизонтальную. На рисунке они отображены тонкими синими линиями. Нам они будут необходимы для того, чтобы получить точку их пересечения. Затем выберем в панели инструментов Photoshop прямоугольное выделение (Rectangular Marqee).

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

Можно выполнить построение другим способом. Начать выделение из одной точки (касательной) и закончить в другой, то есть, как бы по диагонали. Результат будет тот же самый, но не нужно создавать направляющие:

Прямоугольное выделение на макете в Photoshop

Теперь откроем панель “Инфо”, и взглянем на размеры построенного квадрата. Длины сторон и будут радиусом скругления для данного блока на макете:

Размер построенного выделения в Photoshop

Не верите? Это точно - любая из сторон построенного квадрата будет радиусом данного скругления! Чтобы еще немного разъяснить, я нарисовал в AutoCAD круг с радиусом 41мм, а затем построил квадрат с длинной стороны 41мм так, чтобы вписать его правый верхний угол в центр созданного круга. На рисунке хорошо видно, что любая из его сторон является радиусом круга, в который он вписан:

Схематичное изображение круга и квадрата в Photoshop

При построении квадрата выделения на psd-макете бывает, что невозможно точно попасть так, чтобы стороны квадрата совпали с направляющими guideline. Для себя нашел такой выход. Ну, не попал, так не попал.

Строю квадрат дальше. Когда он построен и мышь отпущена, я просто перемещаю выделение в нужное место с помощью клавиш-стрелок на клавиатуре. А дальше - все как и прежде. Смотрю на панель “Инфо” и получаю точный радиус скругления:

Смещение выделения в нужное место в Photoshop

Как видно, все оказалось очень просто. Теперь, зная точное значение радиуса скругления, можно создать шаблон сайта, максимально соответсвующий psd-макету.

P.S.

На рисунке с изображением круга и квадрата, созданных в AutoCAD, имеется неточность. В выноске указано, что построен прямоугольник, хотя на самом деле это конечно же квадрат.

Почему на psd-макете радиус скругления равен 40px, а в AutoCAD - 41px? Да просто промахнулся, когда рисовал круг. Сути дела это ведь не меняет, только еще нагляднее показывает верность подхода.

На этом все.


При верстке из psd-макета можно столкнуться с такой ситуацией. Имеется какое-либо изображение, для кот> орого в Photoshop создана обводка. Внешне это напоминает простую рамку для изображения. Но только внешне обводка похожа на рамку. На самом деле она накладывается на изображение поверх него.

У нас стоит задача преобразовать изображение с обводкой из psd-макета в html-код, используя при этом стилевые правила, где это допустимо. Само изображение преобразовать с помощью стилей невозможно - это картинка. А вот создать рамку (в данном случае это обводка) в помощью правил будет легко выполнить.

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

Изображение с обводкой в Photoshop

Слои, отвечающие за изображение и обводку в Photoshop

На панели слоев видим два слоя - “Layer 16” и “Shape 14 copy”. Именно они выполняют прорисовку картинки футболиста. На слое “Shape 14 copy” также видим эффекты, применяемые к этому слою.

Если внимательно присмотреться к эффектам, то увидим надписи “Эффекты - Выполнить обводку”. Это как раз обводка, от которой нам необходимо избавиться, чтобы вырезать только саму фотографию.

Отлючаем эффект обводки. Для этого щелкаем мыщью на “глазике” “Эффекты” на слое “Shape 14 copy”. “Глазик” “потухает”, то есть эффект отключен. Смотрим на фотографию и видим, что обводка пропала:

Слой с отключенным эффектом обводки в Photoshop

Outline Fragment Disabled

Теперь осталось вырезать изображение. Воспользуемся инструментом Photoshop под названием “Crop”.

Выбираем его и вырезаем изображение. Затем сохраняем его для “Web и устройств” в формате .jpg (наилучший вариант для фотографий).

Однако, нам еще необходимо узнать точные размеры и цвет обводки. Для этого опять воспользуемся слоями в Photoshop. Точнее - выберем слой “Shape 14 copy’ и откроем его свойства. В списке эффектов выбираем “Обводка” и смотрим на правую часть, где представлены параметры, с помощью которых она выполнена:

Свойства обводки в Photoshop

Нам потребуются только два из них. Это толщина линии обводки “Размер” и цвет линии обводки “Цвет”. Также проверяем, что прозрачность (альфа-канал) для цвета обводки не используется, так как стоит “Непрозр.” равная 100%.

Обводка выполнена сплошным цветом, так как на это указывает значение “Режим наложения: Нормальный”. Цвет обводки должен быть белым, но уточняем этот факт.

Щелкаем на окошке “Цвет”:

Цвет обводки в Photoshop

Так все и есть - цвет равен #fff. Все готово для написания стилей CSS:

img.football {
	border:2px solid #fff;
}

Outline Fragment Result

В результате получил иззображение с обводкой. Однако, в случае исполнения через стилевые правила CSS это будет не обводка, а чистая рамка. Размер изображения равен 62px х 59px. Добавляем к нему рамку размером 2px. Получаем реальный размер картинки на сайте 64px x 61px.

Средствами CSS на данный момент невозможно выполнить обводку, как на макете в Photoshop. Поэтому, если размер изображения критичен для шаблона, лучшим вариантом будет вырезание картинки вместе с обводкой.

P.S.

Может быть так, что на самом слое в панели слоев эффект обводки не будет отображен:

Отсутствие эффектов на слое в Photoshop

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

Данное высказывание является несколько неточным. Эффекты слоя никуда не пропадают - они просто скрыты. Более подробное описание, как развернуть или скрыть отображение эффектов слоя в Photoshop можно почитать в статье “Photoshop - скрытие и отображение эффектов слоя в палитре слоев”

На этом все.