Home → Верстка →

Кроссбраузерная прозрачность фона

Опубликовано в чт, 07/31/2014 - 12:56

Часто приходится сталкиваться в верстке, с полупрозрачными однотонными цветами в фоне блоков. Реализовать можно с помощью указания свойству background-color цветовой схемы с поддержкой альфа-канала - rgba, но это решение подходит только для современных браузеров с поддержкой CSS3. Можно, конечно, сделать фон с помощью полупрозрачного PNG файла, но зачем нам лишний запрос? Мы можем избежать лишнего запроса на картинку, закодировав графический файл в формат base64.

Для реализации этого метода потребуется:

  • графический редактор (например, Photoshop)
  • текстовый редактор (например Notepad++)
  • немного терпения

Поехали

Смоделируем ситуацию, есть блок, необходимо сделать полупрозрачный изумрудный фон - #30d5c7 (формат HEX) или 48, 213, 199 (формат RGB) прозрачность 50%. Пишем в style.css:

  1. #block{
  2. width: 600px;
  3. height: 600px;
  4. background-color: rgba(48, 213, 199, 0.5); // значения альфа канала 1 - это 100%, 0 - это 0, у нас 0.5 - это 50%
  5. }

Для современных браузеров описали полупрозрачность. Реализуем кроссбраузерность.

Открываем фотошоп, размер документа 1px на 1px, фон прозрачный
1.jpg
заливаем изумрудным цветом #30d5c7
2.jpg
выставляем прозрачность на 50%
3.jpg
сохраняем как PNG файл.
4.jpg

Файл готов, теперь декодируем его в формат base64. Для этого можно найти в сети онлайн конверторы в base64, или воспользоваться текстовым редактором Notepad++

Открываем редактор
5.jpg
Открываем в редакторе сохраненный нами ранее файл PNG (можно просто перетащить файл в окно редактора)
6.jpg
Выделяем ctrl+a, переводим в base64
7.jpg
Получившийся код вставляем в наш css файл
8.jpg

  1. #block{
  2. width: 600px;
  3. height: 600px;
  4. background-color: rgba(48, 213, 199, 0.5);
  5. background: url("data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAATSURBVHjaYjC4enwKAAAA//8DAAVmAmF7r6gSAAAAAElFTkSuQmCC");
  6. }

Не забываем "сказать" браузеру, что мы используем кодированную картинку, для этого перед самим кодом изображения указываем - data:image/gif;base64,

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

Возможно есть другие методы, пишите о них в комментах.

rgba
css3
png
base64
Photoshop
Notepad++

Menu

  • Главная
  • О блоге

Category

Drupal
(15)
Php
(4)
Верстка
(2)
Разное
(2)
lakshtori.ru (Лакштори,luckshtory) - бренд мошенников
© by Conocube / Блогу - 3969 дней