|
|
|
|
|
|
Всякое |
Устранение бага с прозрачностью формата PNG в Internet Explorer (IE 5.5 и IE 6)Пока накидаю кучу ссылок найденных в сети по этому поводу, потом надо до конца разобраться. Тест альфа-прозрачности вашего браузера http://www.libpng.org/pub/png/pngs-img.html Просто статьи о формате PNG: Как увидеть PNG с прозрачностью в Internet ExplorerНа сайте Microsoft (http://support.microsoft.com/kb/294714) описан следующий способ показа PNG-файлов с прозрачностью: <DIV STYLE="height:ВЫСОТАpx; width:ШИРИНАpx; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( src='image.png', sizingMethod='scale');"></DIV> Спасибо за костыли, дядя Билли. Это работает только в IE; Opera и Firefox покажут пустой блок. Фиксация бага с помощью HTC-файла с Javascript написанным Эриком Арвидссоном (Erik Arvidsson): http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html)
img { Теперь все наши PNG-изображения при просмотре в IE будут загружаться через фильтр. Кроме того скрипт позволяет устанавливать фильтр при замене изображения через Javascript. Есть и баг. При отсутствии у исходного PNG-файла атрибутов width и height загружаемый вместо него blank.gif естественно устанавливает размеры области в 1px и наше изображение исчезает. function propertyChanged() { Функция fixImage()
function fixImage() { Теперь исправленный файл позволяет не задавать ширину и высоту изображения, а определяет их "на лету" устаналивая нужные значения для области работы фильтра. Причем это поведение сохраняется и при замене изображения JavaScript'ом. Чтобы пофиксить баг в Drupal (собственно, ради этого мною все и затевалось) добавляем в CSS-файл темы стиль:
img { В файле патча pngbehavior.htc находим строку
var blankSrc = "blank.gif"; Правим ее на
var blankSrc = "/themes/mytheme/blank.gif"; Файлы pngbehavior.htc и blank.gif копируем в папку темы mytheme. Обратите внимание, что название папки должно совпадать с той темой, которую используете вы. Окончательное решение проблемы И собственно есть тотальное решение проблемы (http://jquery.andreaseberhard.de/pngFix/) PNG Fix для Drupal (http://drupal.org/project/pngfix) Фоновые изображенияОбстоятельная статья Цыгырлаша Игоря на тему PNG-прозрачности. http://www.tigir.com/alpha_png.htm селектор { filter:expression(fixPNG(this)); } Далее к документу присоединяется JS-файл, содержащий эту функцию. Функция проверяет изображение у нас или фоновая картинка и если это формат PNG, то соответствующим образом загружает его через фильтр. Исчо сцылочкиhttp://msdn2.microsoft.com/en-us/library/ms532969.aspx http://designcollector.ru/png http://www.pzone.ru/docs/web/graphics/png.html А то на собственных проектах такие косяки. :) |
|
Direqtor Home Page by ASIADATA. |
|
Отправить комментарий