Использование спрайтов. CSS спрайты: основные техники и полезные инструменты

Использование CSS-спрайтов на сайте позволяет повысить производительность и грамотно организовать элементы интерфейса.

Sprite Sheet - это одно большое изображение мелких графических элементов сайта, например иконок или кнопок. И благодаря CSS можно отображать каждый элемент отдельно.

Применение на практике

Главным преимуществом использования спрайтов является однократная загрузка сервером сразу всех элементов в одном файле. некоторые могут подумать, что подгрузка маленьких, мало весящих картинок позволяет увеличить производительность сайта, но это не так - случае отдельных изображений увеличивается количество HTTP-запросов. Также, при использование единого спрайта позволяет уменьшить вес графики. Пример спрайта на сайте webdesign tuts :

Пример кода для использования спрайтов на странице (демонстрация):

Также спрайты часто используют для создания простого и кроссбраузерного hover-эффекта (демонстрация):

До или после?

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

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

Организация элементов дизайна

При подготовке файла со спрайтами стоит максимально уплотнить изображения, а если они одинакового размера (например иконки) - создать сетку, благодаря которой упростится использование спрайтов на сайте:

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

Полезные инструменты

- отличный фреймворк, который умеет создавать спрайты из папки с изображениями. Также использует Sass.

Инструмент, позволяющий создавать файлы со спрайтами простым добавлением строчки кода в Sass-файлы.

Букмарклет, который умеет генерировать и просматривать использованные на сайте спрайты.

Вот как выглядит рабочий слой букмарклета.

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

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

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

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

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

Как приготовить сахарный сироп?

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

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

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

Спрайт за 10 минут

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

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

В итоге получится замечательный напиток, полностью идентичный покупному спрайту. А уйдет на его приготовление всего десять минут, не считая времени, за которое жидкость должна настояться.

Продвинутый способ, как сделать домашний спрайт

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

  • простая вода;
  • ароматизатор "Спрайт";
  • лимонная кислота;
  • двуокись углерода.

Что касается последнего "ингредиента", он есть далеко не у всех. Диоксид углерода используется на фабриках и заводах при массовом приготовлении газированных напитков. Однако у многих поваров-экспериментаторов среди запасов на кухне найдется и этот элемент.

Домашние напитки на основе спрайта

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

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

Мохито

В статье приведено несколько рецептов, как сделать спрайт в домашних условиях, но с мохито все еще проще! Этот коктейль только кажется сложным.

Как правило, для создания собственного коктейля требуются следующие ингредиенты:

  • тростниковый сахар;
  • содовая;
  • лайм или лимон;
  • мята;
  • ром (в крайнем случае водка);
  • кубики льда.

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

"Собирать" мохито нужно таким образом:

  • разрезать лайм пополам, из одной половинки выдавить сок;
  • мелко нарезать мяту, добавить в стакан к лайму;
  • наполнить стакан кубиками льда;
  • оставшееся пространство в стакане залить содовой;
  • добавить 30 мл белого рома.

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

Малиновый лимонад

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

Для коктейля "Малиновый лимонад" потребуются:

  • малина;
  • малиновый сироп;
  • лимон;
  • спрайт;
  • мята;
  • лайм.

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

Апельсиновый лимонад

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

Для самостоятельного приготовления апельсинового лимонада понадобятся такие продукты:

  • 3 средних апельсина;
  • 2 лимона;
  • молотый корень имбиря (чайная ложка);
  • 150 грамм сахара;
  • 1 л спрайта;
  • 1,5 литра простой воды.

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

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

Для начала краткое вступление. При загрузке странице браузерам допускается только 2 запроса к серверу (у современных браузеров это число увеличилось до 6). Каждый элемент сайта будь то файл с таблицей стилей, файлы javascript, картинки являются независимыми загрузками, которые требуют отдельного запрос на сервер.

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

Еще давным-давно (2003-2004) было предложено решение этой ситуации с главной целью ускорить загрузку сайта с помощью уменьшения количества запросов к серверу. Это технология получила название "Спрайты".

Что такое спрайты CSS

Спрайт CSS - технология объединения небольших картинок в одну. При помощи сдвигов через CSS достигается вырезание нужной части картинки

Например, вместо 10 картинок грузится одна, но побольше. При грамотном распределение это ускоряет работу сайта. Однако здесь главное не переусердствовать. Не всегда объединение картинок дает преимущество в загрузке сайта.

Пример спрайта CSS

Рассмотрим небольшой пример реализации спрайта CSS. Допустим, мы сделали следующую картинку из трех отдельно взятых стрелочек.

Чтобы обратится к нужной стрелке в CSS надо прописать

Вот как это выглядит на странице:

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


Чтобы вырезать значок RSS мы должны написать следующие отступы

background-position : -90px -40px ;


В примере мы подняли изображение на 40 пикселей вверх и на 90 влево.

Плюсы использования спрайтов

  • Сокращение количества обращений к серверу
  • Если используются динамическое изменение картинки (например, при наведении в элементе меню), то картинка уже будет находится в кэше и поэтому не будет запаздывания на загрузку в нужный момент
  • Если фон объединяемых изображений схож, это еще и уменьшить суммарный "вес" изображений

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

Существует множество методов по оптимизации веб-страниц. Какие-то из них работают, какие-то уже нет. Тем не менее есть некоторые методы, обязательные для исполнения на любом сайте и блоге. Об одном из них я и хотел с вами поговорить.

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

Немного истории

В далеком-далеком прошлом, когда в квартирах пиликали модемы, а скорость соединения не превышала 5 Кбит/сек., люди корпели над нелегкой задачей, как заставить сайты загружаться быстрее и при этом не платить баснословные суммы за входящий трафик. Думали они, значит, думали, и придумали компоновать изображения, используемые на странице в спрайты.

И понеслось…

Объединяем изображения в спрайт

И так, как мы ранее выяснили, спрайт – это несколько изображений, скомпонованных в одно целое на прозрачном фоне, доступ к которым осуществляется при помощи CSS свойства background-position . Но пожалуйста, не перепутайте его с коллажем. Спрайт ≠ коллаж.

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

Допустим, мы располагаем PSD файлом вот с такой распрекрасной кнопкой в 3х состояниях.

Что делает среднестатистический блоггер-верстальщик-самоучка? Он вырезает кнопку в каждом состоянии и сохраняет ее в отдельных файлах. То есть, одна кнопка занимает у этого славного человека 3 картинки. А если вы напряжетесь, то вспомните, что каждая картинка на сайте, это дополнительный HTTP запрос, который нагружает сервер и ваш блог работает все медленнее и медленнее и медленнее и медленнее и медленнее и медленнее и медленнее…

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

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

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

Верстка спрайтов

Верстка CSS спрайтов ничем не отличается от верстки обычных картинок, за исключением одного НО. Вам нужно знать не только точный размер того изображения, которое вы хотите отобразить, но и его координаты. К примеру, весь спрайт у нас занимает 330 px в ширину и 150 px в высоту.

Но нам нужно отобразить только кнопку, которая занимает 227 px в ширину и 41 px в высоту, точно указав ее координаты. Если вы не располагаете хорошим html редактором - могу .

Создаем файл index.html и прописываем в него необходимые строки кода, доктайп и все такое.

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

После тега body создаем контейнер div с классом button – это и будет наша кнопка.

На этом наш html заканчивается и теперь необходимо прописать для кнопки CSS стили.

Код ниже показывает, что сначала мы объявляем класс button . Затем при помощи свойств height и width задаем размеры нашей кнопки. Свойство background позволяет выбрать файл, который мы будем использовать в качестве спрайта, а background-position задать координаты, требующейся нам картинки в этом спрайте. Все просто.

Button { height:41px; width:227px; background:url(img/sprite.png); background-position:0px -12px;}

Давайте подробнее разберемся со свойством background-position .

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

Button:hover {background-position:0px -56px;} .button:active {background-position:0px -98px;}

Как известно, а если нет то уже да, каждая кнопка имеет несколько состояний.

  1. Normal – нормальное или обычное состояние
  2. Hover – состояние кнопки при наведении курсора
  3. Active – состояние кнопки во врем нажатия

Этими свойствами мы и воспользовались.

Если лень вручную делать спрайты и вообще заморачиваться с фотошопом, вам поможет замечательный бесплатный сервис: spritepad.wearekiss.com . Просто закидываете в рабочую область необходимые картинки и он составит для вас спрайт.

В заключении

CSS спрайты - очень важный этап на пути ускорения работы сайта. Отнеситесь к нему с должным уважением и старайтесь использовать повсеместно.

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

Что такое CSS спрайты?

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

Я где-то видел статистику (не вспомню, где, поэтому ссылочку не дам) — от 5 до 40% времени составляет собственно страницы, все остальное — обработка запросов сервером. Логично предположить, если уменьшится количество запросов — скорость загрузки вырастет пропорционально.

Давайте чуть подробнее рассмотрим плюсы и минусы использования спрайтов:

Плюсы использования спрайтов:

Минусы это технологии:

  • при верстке необходимо указывать не только картинку, но и позицию фрагмента, что не совсем удобно и привычно.
  • увеличение нагрузки на сервер. Большая картинка занимает больше оперативной памяти, учитывая «пустышки» между фрагментами.
  • для изменения одной иконки придется ковырять весь файл, что не слишком удобно. Хотя, может оно и к лучшему

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

Генераторы спрайтов — онлайн сервисы, которые, в принципе, работают по одной схеме. Вы загружаете свой набор картинок, выбираете формат спрайта и система создает картинку и CSS разметку для этого файла.

Где создать спрайты?

Наверное, самый старый инструмент для создания CSS спрайтов. Отличительная черта — есть русский вариант интерфейса, это удобно. Хорошо настраивается, причем не только создание картинки, но и код CSS. В целом — отличный генератор, рекомендую. Кстати, кроме этого, сервис умеет генерировать фавиконы и рассчитывать права доступа для Unix систем.

CSS Sprites Generator

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

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

Sass - это метаязык на основе CSS, предназначенный для увеличения уровня абстракции CSS кода и упрощения файлов каскадных таблиц стилей.

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

Неплохой генератор, присутствует все, что нужно для создания. Единственный минус — каждую картинку придется загружать отдельно, нельзя загрузить кучей. В остальном — ничего примечательного, крепкий середнячок.

Сервис написан на HTML5, работает только в Chrome и Firefox, но развитие таких сервисов радует. Веб не стоит на месте и это хорошо Очень простой, минимум настроек. Но, если вы хотите быстрое и простое решение — этот генератор подойдет на 100%

Генератор спрайтов для настоящих джедаев Установите программу, укажите путь к CSS файлу со старой версткой и этот сервис все сделает за вас. У него куча возможностей — рекомендую почитать документацию на официальном сайте.

Практически полный аналог Спрайтбокса, тоже используется только для получения кода CSS, с той разницей, что здесь выбор границы элемента осуществляется не вручную, а автоматически, точность отработки заметно выше. Работает только в Хроме и Firefox

Отличный сервис, который работает так — заходите на готовую, сверстанную как обычно, страницу. Жмете на иконку сервиса (предварительно ее нужно установить букмарклетом) и все — сервис собирает все изображения с этой страницы и генерирует спрайт с кодом. Очень удобно, есть настройки, что конкретно необходимо собрать в кучу. В общем — неплохой сервис.

Очень простой, но понятный и удобный генератор. Перетащите картинки, который нужно объединить, расположите их как вам хочется и нажмите кнопку — спрайт и код готовы. Минус этого сервиса — работает только в Хроме и Огнелисе.

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

Надеюсь, теперь вам не страшна работа с CSS спрайтами и ваши проекты будут еще быстрее.

Поделиться: