Сам пользуюсь третьим вариантом, у всех методов свои недостатки, с htc файлом и с широкоизвестным javascriptом(который 4й вариант, не помню, чей это метод правда) намного более глючные вещи, чем 3-й метод.
p.s.: Скажите, может человечество что то уже придумало для использования PNG с 8-битным альфа каналом в качестве повторяющегося фона?
уже да!
сам так делаю: filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png', sizingMethod=scale)
Hf,jnftn только при повторении фона в одном направлении: или repeat-x или repeat-y
в общем, у меня свой стиль вёрстки таков, что вся подобная графика пихается в бэкграунд (да, в коде страницы у меня исключительно функциональные изображения-ссылки, где PNG явно избыточен). А посему - для всех нормальных браузеров обычное свойство background-image, а для MSIE 6 версии - условный комментарий с AlphaImageLoader и background-image: none.
При использовании progid:DXImageTransform.Microsoft.AlphaImageLoader бывает, что в IE6 у текста, лежащего внутри элемента с таким background'ом, пропадает сглаживание.
последний сайт писал, там было шесть png на главной. главная со вторым способом грузилась секунды три, при этом пока все png не скачаются, они отображаются с серой подложкой. первый способ работает моментом и подложки нет.
Толком и не пользовался. В основном там, где мне нужны были полупрозрачности делал дырявый gif (стирал отдельные пиксели). Пример — myltik.ru, главное меню, правый кусочек ползающий.
Я редактирую готовый рисунок PNG с прозрачностью в Gimp'e: меняю режим на индексированный с параметрами по умолчанию и сохраняю рисунок с опцией "Сохранять значение цвета прозрачных точек". В IE и других браузерах отображается одинаковая картинка с прозрачностью. В фотошопе так и не получилось сохранить с индексированным цветом =(
Только что проверил в IE 6.0 - всё идеально!!! Жаль, что вручную нужно править png. Вот если бы кто подсказал утилиту, которая делает то же самое... Пойду поищу в GIMP'е средства автоматизации :-)
Да, вот и недостаток нашелся. Получается, многое для IE через костыли =), вот бы посчитать их количество. Тогда GIF, а если нужно качество и многобитная прозрачность, то придется ломать голову этими костылями.
Использую gif сравнительно редко, так как сжимает png намного лучше. Полупрозрачность же для IE6 и ниже не использую, так как все методы её показа основаны на одном — фильтрах Direct X, что приводит к скачиванию картинки при каждом отображении, минуя кэш.
Да интересный момент... чаще всего мне приходилось в png делать тени, градиенты.. это просто полоска... так что если уж и не кэшируется то хоть весит не много.
Behavior в CSS, png.htc и blank.gif
Javascript от уважвемого Tigir (function fixPNG(element))
Javascript с использованием window.attachEvent("onload", correctPNG)
Всё это безбожно тормозит... по крайней мере на непростой странице...
рекомендую не леницца и использовать 1 вариант
Как вы боретесь с PNG при верстке?