transparent_png_in_ie_6
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| transparent_png_in_ie_6 [2007/12/24 13:54] – external edit 127.0.0.1 | transparent_png_in_ie_6 [2009/05/01 16:36] (current) – removed slonopotamus | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | [[start|На главную]] | ||
| - | ====== Универсальная поддержка полупрозрачности в MSIE6- ====== | ||
| - | **Автор: | ||
| - | **Оригинал: | ||
| - | |||
| - | MSIE6- полупрозрачные PNG не поддерживает, | ||
| - | |||
| - | Искал сегодня универсальное решение, | ||
| - | |||
| - | Нашёл [[http:// | ||
| - | |||
| - | HTML: | ||
| - | <code html> | ||
| - | <img class=" | ||
| - | </ | ||
| - | |||
| - | CSS: | ||
| - | <code css> | ||
| - | img.png { | ||
| - | background-image: | ||
| - | this.runtimeStyle.backgroundImage = " | ||
| - | this.runtimeStyle.filter = | ||
| - | " | ||
| - | this.src + "', | ||
| - | this.src = "/ | ||
| - | ); | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Вроде бы то, что надо. Но, во-первых, | ||
| - | |||
| - | Думал, пыхтел, | ||
| - | |||
| - | В итоге родилось такое решение: | ||
| - | <code html> | ||
| - | <i class=" | ||
| - | </ | ||
| - | |||
| - | HTML код чуть больше, | ||
| - | <code css> | ||
| - | * html .png | ||
| - | { | ||
| - | width: expression(this.firstChild.width); | ||
| - | filter: expression(" | ||
| - | this.firstChild.src+"', | ||
| - | |||
| - | background: expression(" | ||
| - | this.firstChild.src.replace(" | ||
| - | backgr\ound: | ||
| - | } | ||
| - | |||
| - | * html .png img | ||
| - | { | ||
| - | behavior: expression(this.style.visibility=" | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Теперь по порядку: | ||
| - | |||
| - | - Используем * html, чтобы стили применялись только в MSIE6-. | ||
| - | - Задаём width, ибо AlphaImageLoader работает только если заданы размеры блока. Причём ширину блоку задаём равной картинке, | ||
| - | - filter' | ||
| - | - Для MSIE-5.0, который не понимает AlphaImageLoader, | ||
| - | - Скидываем background для MSIE-5.5+, используя backgr\ound. | ||
| - | - А теперь скрываем оригинальную картинку. Причём скрываем её не просто через visibility: hidden, а через expression, чтобы это отработало только при включеных скриптах. | ||
| - | |||
| - | Итак, что получилось: | ||
| - | - Нормальные браузеры показывают PNG-24 as is. | ||
| - | - MSIE-5.5 и MSIE-6.0 со включеными скриптами и картинками показывают PNG-24 через AlphaImageLoader. | ||
| - | - MSIE-5.5 и MSIE-6.0 со включеными скриптами и отключеными картинками показывают PNG-24 через AlphaImageLoader, | ||
| - | - MSIE-5.5 и MSIE-6.0 с отключеными скриптами показывают картинку на сером фоне. Оно и правильно, | ||
| - | - MSIE-5.0 со включеными скриптами и картинками показывают GIF фоном. Нет полупрозрачности, | ||
| - | - MSIE-5.0 со включеными скриптами и отключеными картинками картинку не показывает. Ну, тут ничего не поделаешь. | ||
| - | - MSIE-5.0 с отключеными скриптами и включеными картинками показывает картинку на сером фоне. | ||
transparent_png_in_ie_6.1198504494.txt.gz · Last modified: 2019/06/12 16:11 (external edit)