[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Серый фон в IE
DmitryOpalev
Как убрать серый фон в прозрачности png картинок в IE старых версиях???



Спустя 28 минут, 34 секунды (17.10.2010 - 16:54) phz написал(а):
Чтобы полноценно пользоваться всеми прелестями альфа-канала, используемого в png для всевозможных эффектов, нужно всего-лишь заменить серый фон, который ставит IE на прозрачный. Сделать это можно простым скриптом, подставляющим вместо этого фона пустой прозрачный gif.

1. Сохраняем нижний код в файл pngbehavior.htc. Размещаем скрипт pngbehavior.htc для примера в директории /src/. Меняем путь до прозрачного gif`а (var blankSrc = "/im/blank.gif";):


<public:component>
<
public:attach event="onpropertychange" onevent="propertyChanged()" />
<
script>

var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
var realSrc;
var blankSrc = "blank.gif";

if (supported) fixImage();

function propertyChanged() {
if (!supported) return;

var pName = event.propertyName;
if (pName != "src") return;
// if not set to blank
if ( ! new RegExp(blankSrc).test(src))
fixImage();
};

function fixImage() {
// get src
var src = element.src;

// check for real change
if (src == realSrc) {
element.src = blankSrc;
return;
}

if ( ! new RegExp(blankSrc).test(src)) {
// backup old src
realSrc = src;
}

// test for png
if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
// set blank image
element.src = blankSrc;
// set filter
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
src + "',sizingMethod='scale')";
}
else {
// remove filter
element.runtimeStyle.filter = "";
}
}


</script>
</
public:component>


2. В CSS пишем:

img, div {behavior: url(/src/pngbehavior.htc);}


3. В HTML пишем (Размеры обязательны, иначе IE сожмет изображение в точку.):

<img src="image.png" alt="" width="250" height="150"/>



http://dillerdesign.com/experiment/DD_belatedPNG/#license

Лично я пользуюсь:

<!--[if IE 6]>
<script type="text/javascript" src="http://mstihi.dp.ua/skins/js/ie6pngfix.js"></script>
<script type="text/javascript">
DD_belatedPNG.fix('img, ul, ol, li, div, p, a, h1, h2, h3, h4, h5, h6, input, span');
</script>
<![endif]-->

и всё классно работает. Скачай http://mstihi.dp.ua/skins/js/ie6pngfix.js и пользуйся

Спустя 2 минуты, 22 секунды (17.10.2010 - 16:56) arvitaly написал(а):
Если картинок несколько (немного), лучше прописать им каждой в отдельности

Спустя 14 минут, 53 секунды (17.10.2010 - 17:11) DmitryOpalev написал(а):
Ну, а если она одна, но появляется семь раз, то можно как arvitaly???

Спустя 11 минут, 15 секунд (17.10.2010 - 17:22) Invis1ble написал(а):
интересная тема, я вот только недавно обнаружил, что у png есть так сказать прозрачность. А это токо у png может быть?

Спустя 45 минут, 33 секунды (17.10.2010 - 18:08) DmitryOpalev написал(а):
Вроде да.... Да, да-да!

Спустя 3 часа, 21 минута, 25 секунд (17.10.2010 - 21:29) arvitaly написал(а):
Цитата
интересная тема, я вот только недавно обнаружил, что у png есть так сказать прозрачность. А это токо у png может быть?

У гиф есть прозрачность но нет % прозрачности

А прописывать для каждой лучше потому что при подходе выше каждая картинка будет обрабатываться этим скриптом

Спустя 1 час, 36 минут, 46 секунд (17.10.2010 - 23:06) Invis1ble написал(а):
arvitaly
спасибо за разъяснение про прозрачность

Спустя 15 минут, 40 секунд (17.10.2010 - 23:22) kirik написал(а):
Городушки.. Если требования к IE6 - использовать gif. Если таких требований нет - забить на IE6.


_____________
Курс валют
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.