Используем формат png как фоновый рисунок

Опубликовано: 3 июля, 2008 | Рубрика: Кодинг | Тэги: , , | 9 Комментариев »

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

Во-первых:

Ни скрипты ни популярный метод, использующий фильтр AlphaImageLoader не позволит вам делать фон повторяющимся (background-repeat: repeat}. Единственное, что он может, помимо простого отображения (crop), растянуть фон, для этого указывается атрибут scale, причём направление растягивания задавать невозможно. Фон растягивается на ширину и высоту всего блока, которому указан фон. Понятное дело, что при таком методе картинка деформируется.

Во-вторых:

Используете ли вы скрипт или фильтр для корректного отображения полупрозрачных png в Internet Explorer 6, убедитесь что в блоке с фоновым изображением работают ссылки и элементы формы. Скорее всего, они будут неактивными: ссылки не кликаются, в поле ввода или textarea невозможно что-либо ввести. Исправляется это легко, просто укажите для неактивных элементов относительное позиционирование (position:relative).

В-третьих:

Не пытайтесь никогда задавать позиционируемому блоку фоновый полупрозрачный png, будь то абсолютное (absolute) или относительное (relative) позиционирование. В этом случае неактивные ссылки и элементы формы не удастся разблокировать даже вышеуказанным способом. Причина такого поведения мне не ясна. Просто примите к сведению: в позиционируемый блок добавьте дополнительный блок, для которого и применяйте фоновое изображение.

И последнее:

На сегодняшний день мне неизвестен ни один метод, позволяющий не только корректно отобразить полупрозрачное фоновое изображение png в Internet Explorer 6, но и позиционировать его (background-position).

Такой способ существует, успешно применяю его в проектах, над которыми работаю.

чушьничего интересногомогло быть лучшеочень интересноотлично!
Может вам будет также интересно:

9 Комментариев на “Используем формат png как фоновый рисунок”

  1. 1 bra1n  (18 октября, 2008 в 12:52) :

    Спасибо, оч помог второй пункт.

  2. 2 Dirtydream  (21 октября, 2008 в 09:43) :

    Жаль что нельзя использовать повторяющийся фон((( спасиб за пункт 2

  3. 3 zest  (22 июля, 2009 в 14:22) :

    рекомендации помогли, благодарю!

  4. 4 skamper  (30 сентября, 2009 в 16:57) :

    PNG? Ыыыы…. Opacity есть? Есть!… Можно и что-то другое в фон засунуть…

  5. 5 Роман  (1 октября, 2009 в 12:26) :

    skamper, а при чём здесь opacity? Мы о разных вещах вообще говорим. Opacity задаёт прозрачность элементу страницы. Я же говорю об использовании графики в png в качестве фонового изображения.

  6. 6 Григорий  (12 декабря, 2009 в 10:45) :

    спасибо. дельные советы)

  7. 7 alexpts  (16 декабря, 2009 в 19:35) :

    После лечения прозрачности картинок, указанных в CSS есть пробьлемы с псеводоклассом :hover у “вылеченных” элементов, если у них указаны отступы (padding).

  8. 8 Роман  (16 декабря, 2009 в 21:11) :

    alexpts, какого рода проблемы? и наглядный пример, пожалуйста.

  9. 9 alexpts  (23 декабря, 2009 в 09:19) :

    ммм… сейчас примера нет, как будет обязательно скину. Думаю придется с этим еще снова столкнуться.


Есть мнение? Высказывайтесь!