PNG в IE6 — Еще одно решение

Дата: 30.04.2010
Категории: HTML и CSS Дизайн

Как известно Internet Explorer 6 неправильно отображают файлы формата PNG 24bit. Фон изображения будет отображаться серым. PNG с альфа-каналами позволяет значительно улучшить внешний вид сайта. Проблема конечно же решаема. Пару решений я описывал в аналогичной статье — PNG в IE 6.

Представленные решения неплохие, но есть несколько недостатков, среди которых невозможность «замостить» маленькое изображение.

Решается проблема следующим образом:

1. Скачиваем js, который и будет фиксить эту проблему. Либо отсюда. Распаковываем архив и кидаем в папку с дизайном.

2. В теге <head> документа указываем путь к скачанному скрипту:

<script src="DD_belatedPNG.js"></script>

3. Пишем нужный стиль для элемента (либо в CSS, либо в теге <head> документа, как в примере):

<style type="text/css">
  .alpha
  {
    width:100%;
    height:600px;
    background:url('file.png');
  }
</style>

4. Пишем блок и указываем написанный стиль.

<div class="alpha"></div>

Теперь, нужно указать, чтобы данный стиль был обработан скриптом, и проблема с отображением исправилась.

5. Прописываем в <head>:

<script>
  DD_belatedPNG.fix('.alpha');
</script>

Тем самым, указываем, что данный стиль должен быть обработан скриптом.

Чтобы скрипт выполнялся только в IE 6, советую советую оградить код в 2 и 5 пунктах таким образом:

<!--[if IE 6]>
  Тут ограждаемый код
<![endif]-->

Полный код страницы

Скачать

<!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">
<head>
  <title>PNG</title>

  <!--[if IE 6]>
  <script src="DD_belatedPNG.js"></script>

  <script>
    DD_belatedPNG.fix('.alpha');
  </script>
  <![endif]-->

  <style type="text/css">
    .alpha
    {
      width:100%;
      height:600px;
      background:url('file.png');
    }
  </style>

</head>

<body>
  <div class="alpha"></div>
</body>
</html>

Совет

Можно вместо

<script>
   DD_belatedPNG.fix('.alpha');
</script>

указать так:

<script>
  DD_belatedPNG.fix('*');
</script>

Тем самым, будет применяться скрипт ко всем стилям.

Коментарии:

  1. 17.01.2012 в 15:23

    Спасибо большое! Отличный скрипт.