IE6 PNG-прозрачность CSS хак не работает - PullRequest
2 голосов
/ 25 мая 2010

Я огляделся и решил использовать CSS-подход, а не полагаться на JS ... Я думаю, что корпоративные пользователи, застрявшие в IE6, могут также отключить JS ИТ-отделами.

Итак, в моем HTML у меня есть:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>My Page</title>
<link rel="stylesheet" type="text/css" href="default.css" />
<!--[if IE 6]><link rel="stylesheet" type="text/css" href="ie6.css"><![endif]-->
</head>

<body>
    <img src="media/logo.png"/>
</body>

Тогда мой ie6.css состоит просто из:

img
{
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);
}

Однако ничего из этого не имеет никакого значения, нет прозрачности. Я закомментировал все остальное на странице, так что буквально это все равно и не повезло. Я удалил таблицу стилей default.css и до сих пор без разницы.

EDIT : Теперь я получил его, используя метод .htc, загружая этот файл в условный тестовый блок IE6. Оказалось, что проблема, с которой я столкнулся, заключалась в том, что Windows 7 «заблокировала» файл (я даже не знаю, что это значит), и это заблокировало IE для загрузки / использования.

Ответы [ 4 ]

3 голосов
/ 25 мая 2010

Если я не ошибаюсь, вы должны использовать

progid:DXImageTransform.Microsoft.AlphaImageLoader(src='yourimage.png')

для каждого изображения, вы не можете заставить его работать только для всех изображений.

1 голос
/ 26 мая 2010

На странице HTML у вас есть путь к изображению относительно файла HTML (media/logo.png) в default.css у вас есть запись с behavior: url(iepngfix.htc); (путь к iepngfix.htc относительно файла HTML ) и в ie6.css у вас есть запись с filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/logo.png', sizingMethod='scale'); с путем к изображению относительно файла CSS. И, по крайней мере, вам нужно изменить путь в iepngfix.htc (IEPNGFix.blankImg = 'media/blank.gif';)

Вы должны иметь следующую структуру папок:

  • HTML-файл
  • iepngfix.htc
  • ie6.css
  • default.css
  • / СМИ / logo.png
  • / СМИ / blank.gif
1 голос
/ 25 мая 2010

Я использую решение следующей страницы: IE PNG поддержка
После сетевой демонстрации онлайн-демонстрации шаг за шагом ваши pngs будут прозрачными и в IE.

0 голосов
/ 25 мая 2010

Вы, вероятно, хотели бы взглянуть на http://www.dillerdesign.com/experiment/DD_belatedPNG/

Это также позволяет вам использовать png с альфа-каналом со свойством CSS background-position, что обычно невозможно при использовании AlphaImageLoader.

...