Информационные технологииStfw.Ru 🔍

Как в браузере IE6 установить фоновую картинку с прозрачностью в формате PNG?

🕛 23.01.2009, 00:34
Браузер Internet Explorer 6 (IE6) имеет известные проблемы с отображением фонового изображения с прозрачными участками в формате PNG-24. Поэтому для этого браузера применяют атрибут filter, который не входит в спецификацию CSS, но зато прекрасно понимается IE6. 
Добавление фонового рисунка рассмотрим на примере изображения, которое содержит многоуровневую прозрачность (рис. 1).



Рис. 1. Изображение с альфа-каналом

Вывод фоновой картинки происходит с помощью атрибута background со значением url, как показано в примере 1.

Пример 1. Отображение фоновой картинки

HTML 4.01CSS 2.1IE 6IE 7Op 9.5Sa 3.1Ff 3.0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <title>Фоновая картинка</title> <style type="text/css"> BODY { background: #FFE79E url(images/warning.png) 10px 20px no-repeat; /* Параметры фона */ } .warning { padding: 10px 10px 0 270px; /* Поля вокруг текста */ } </style> </head> <body> <div class="warning"> Работа оператора ПЭВМ относится к категории работ, связанных с опасными и вредными условиями труда. В процессе труда на оператора ПЭВМ оказывают действие следующие опасные и вредные производственные факторы: физические, химические, биологические и психофизиологические. </div> </body>
</html>В данном примере к селектору BODY добавляется одновременно цвет фона и фоновое изображение, которое сдвигается несколько вправо и вниз относительно исходного положения. Чтобы рисунок не повторялся, используется значение no-repeat атрибута background. За счет включенной прозрачности рисунок можно поместить на любой фон, на качестве это никак не отразится. 

Результат примера в браузере Opera показан на рис. 2. Тот же пример в IE6 выглядит иначе (рис. 3).



Рис. 2. Фоновая картинка в браузере Opera



Рис. 3. Фоновая картинка в браузере Internet Explorer 6

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

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src="warning.png", sizingMethod="image");

Значением параметра src служит путь к графическому файлу, а sizingMethod может принимать следующие значения:

crop - кадрировать изображение по размерам области; 
image - вывести одной картинкой; 
scale - масштабировать по размерам области. 
Поскольку нам требуется только вывести рисунок, используем значение image, как показано в примере 2.

Пример 2. Стиль для IE6 

<style type="text/css"> BODY { background: #FFE79E; height: 92%; /* Высота страницы */ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src="warning.png", sizingMethod="image"); }
</style>Вначале необходимо скрыть фоновый рисунок, оставив только цвет фона. С этой задачей справляется атрибут background. В IE6 также наблюдается особенность, связанная с высотой страницы. Картинка будет показываться не целиком, а по высоте, соответствующей высоте контента. Если текста мало, то рисунок будет обрезан снизу. Чтобы этого не произошло, устанавливаем высоту страницы через атрибут height. Значение подбирается опытным путем. 

Окончательно добавляем стиль в наш HTML-код, закрывая его от других браузеров с помощью условных комментариев (пример 3).

Пример 3. Отображение фоновой картинки в IE6

HTML 4.01CSS 2.1IE 6IE 7Op 9.5Sa 3.1Ff 3.0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <title>Фоновая картинка</title> <style type="text/css"> BODY { background: #FFE79E url(images/warning.png) 10px 20px no-repeat; } .warning { padding: 10px 10px 0 270px; /* Поля вокруг текста */ } </style> </head> <body> <!-[if lte IE 6]> <style type="text/css"> BODY { height: 92%; /* Высота страницы */ background: #FFE79E; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src="images/warning.png", sizingMethod="image"); } </style> <![endif]-> <div class="warning"> Работа оператора ПЭВМ относится к категории работ, связанных с опасными и вредными условиями труда. В процессе труда на оператора ПЭВМ оказывают действие следующие опасные и вредные производственные факторы: физические, химические, биологические и психофизиологические. </div> </body>
</html>При использовании атрибута filter для IE6 примите во внимание, что с его помощью не получится выводить фоном повторяющиеся рисунки. Можно отображать только одиночные картинки без всякого повторения. 

Все рецепты HTML и CSS   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉