Comments 94
Для поддержки полупрозрачности (альфаканалов) .PNG пользуюсь следующим методом:
Работает для ие6, фф и оперы
<img src="images/name.png" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/name.png);" alt="" />
Работает для ие6, фф и оперы
+2
Ну вот, а теперь со вторым и третьим решением можно просто <img src="images/name.png">
0
Да ты что?! Правда?.. А вышеописаные способы по твоему используют черную магию, а не DirectX?
-3
а если много картинок png???
не интересно писать для каждой!
не интересно писать для каждой!
+2
ФФ и опера поддерживают png. Для них не нужно хаков. Зато они не поддерживают специфически некрософтовых технологий типа directx или activex.
0
огромное спасибо из будущего, понадобилось решение для одной-единственной картинки на сайте, а весь интернет забит ультрамегауниверсальноглобальными способами.
0
спасибо, пригодится.
0
непонятно, зачем эмулирование псевдо класса :hover для IE7? она и так научился это понимать.
-1
имхо, проще в индивидуальных случаях писать обходные пути, чем использовать такие "навороченные" методы. Пока есть .gif, прозрачность .png не сильно требуется. А (почти) все эффекты можно сделать и на ссылках (или дополнительно вгружать выставление своих обработчиков на window.onload).
-10
вот уж дудки. при современной графике, палитра GIF далеко не всегда позволяет добиться приемлимого результата
+2
супер, сразу и минусовать.
Если вам какие-то навыки не позволяют использовать .gif вместо .png, либо вы хотите "супер картинки" для пользователей, то пожалуйста.
Я говорю с позиций наибольшей совместимости и простоты разработки.
Если вам какие-то навыки не позволяют использовать .gif вместо .png, либо вы хотите "супер картинки" для пользователей, то пожалуйста.
Я говорю с позиций наибольшей совместимости и простоты разработки.
0
бывают задачи, когда требуется разместить изображение фотографического качества, но с полупрозрачностью. Сделаете это гифом?
Кстати, гиф умеет ПОЛУпрозрачность?
Кстати, гиф умеет ПОЛУпрозрачность?
0
нет, гиф не держит альфаканалы
0
значит мой склероз меня не подводит. Гиф умеет отображать полностью прозрачным один цвет. А в свете "новых" тенденций в дизайне это ну никак не катит.
0
Вот бы все помирились и стали правильно SVG показывать. А там через CSS3 Любую прозрачность, скрипты и вектор.
+1
и наступило бы вселенское счастье :)
0
Просто от «Браузерных Войн» страдают в основном верстальщики, а следовательно и пользователи. Если б все нормально приняли SVG страницы уже давно можно было бы верстать как картинку. Это был бы прорыв в дизайне.А так тянут одеяло каждый на себя. Печально.
+1
обычно изображение фотографического качества размещают на сервере и дают на него ссылку, ибо это несколько (десятков) мегабайт. Если вам нужно просто красивую картинку в броузере вывести в определенных случаях, и это неудобно делать через .jpg, то да, тут не поспорю. Но, имхо, таких случаев единицы, и ради них как-то извращаться. Брр... лучше юзать хаки подобно описанным чуть ниже.
Статья, как я понял, посвящена массовому использованию .png в вебе. Имхо, она не настолько актуальна, как хочется некоторым комментирующим пользователям.
Статья, как я понял, посвящена массовому использованию .png в вебе. Имхо, она не настолько актуальна, как хочется некоторым комментирующим пользователям.
0
Альфа-канал очень нужен.
Точно вам говорю.
Точно вам говорю.
+1
да я согласен, но изыски на эту тему отношу к области фантастики: по типу хаков для min-width и прочих "перелестей" IE.
Спасибо плюсанувшему
Спасибо плюсанувшему
-2
Изыски даже вредны. Если их не применять, обладатели ИЕ6 быстрее осознают инвалидность своего браузера. :)
+1
далеко не все способны осознать инвалидность браузера. До сих пор встречаются люди, которые неимоверно удивляются, когда узнают, что ИЕ - не единственный браузер.
Нужна пропаганда по типу сарафанного радио.
А вообще, конечно да. С распространением ИЕ7 лично я во многих проектах полностью откажусь от использования большинства ие-хаков. А сейчас уже отказываюсь от некритичных. Ну что поделать, если охота красиво, а браузер так не умеет?
Нужна пропаганда по типу сарафанного радио.
А вообще, конечно да. С распространением ИЕ7 лично я во многих проектах полностью откажусь от использования большинства ие-хаков. А сейчас уже отказываюсь от некритичных. Ну что поделать, если охота красиво, а браузер так не умеет?
0
Кхм... Тут вот год почти прошел... Теперь Вы не считаете это «изыском», надеюсь? :)
0
я считаю это грубым хаком, но уже по совершенно другой причине: есть более изящное решение (представленное в рунете впервые Павлом Корниловым), которое обходится без .htc и проч.
подробнее
http://webo.in/articles/habrahabr/10-css…
т.е. точка зрения поменялась на противоположную 2 раза :)
подробнее
http://webo.in/articles/habrahabr/10-css…
т.е. точка зрения поменялась на противоположную 2 раза :)
0
Вы это дизайнерам объясните. У них полет фантазии, градиенты, тени и закругленные уголки. На фоне других градиентов и теней. Вот и приходится выкручиваться.
+3
ну, кстати, дизайнерам иногда надо объяснять. Их если не осаживать, зачастую напрочь забывают о том, что такое веб.
+2
Кстати, во многих случаях удается выкрутиться даже без PNG. Apple раньше это гениально делала на своем сайте, когда PNG еще не было.
0
например как? У меня не всегда получается.
0
Ну у них просто всегда было известно, на каком фоне располагается изображение. Они сливали обтравленную картинку с фоном нужного цвета/текстуры и гнали это просто JPEG-ом. Но результат был с виду явно отличающийся от иллюстраций на других сайтах - картинка визуально полупрозрачная, «не квадратная». При нынешней моде в дизайне у них так уже не получается, PNG уже необходим. Кстати, IE PNG Fix htc разработан на основе эппловских изысканий на эту тему.
0
В фотошопе есть замечательная возможность при сохранении gif указать параметр matte — предполагаемый фон, на котором будет лежать изображение. При этом полупрозрачные области автоматически окрашиваются в этот цвет, и получается очень даже ничего, даже если совпадение с фоном не 100%-е.
0
Верно, у гифа только палитра узковата для некоторых применений, но в целом я так часто делаю. А еще вот тема: http://www.artlebedev.ru/tools/technogre…
0
между прочим, я не минусовал вас
0
gif проприетарный формат
0
Де-юре - да, а де-факто... IMNSHO формат, описание которого лежит на W3C можно спокойно пользовать - как бы он там ни числился: GIF89a Specification
0
Небольшое уточнение: Срок действия последнего патента на GIF (а точнее - на алгоритм сжатия LZW, использующийся в GIF) истёк 11 августа 2006 года. Формат больше не проприетарен.
+1
Ха, такая прозрачность как в gif отлично работает в png в любом експлорере, проблемы только с альфа-каналом.
Пример прозрачного png без дополнительных стараний: http://designformasters.info/stuff/creat… (смотреть в IE6)
Пример прозрачного png без дополнительных стараний: http://designformasters.info/stuff/creat… (смотреть в IE6)
0
Что-то у меня в IE6 никакая прозрачность в .png не работала. Рисовал вместо прозрачных пикселов фон и всё.
0
А что еще ему рисовать вместо прозрачных пикселей?
Подложил, под изображение текст посмотрите еще раз.
Подложил, под изображение текст посмотрите еще раз.
0
Да нет, я имею ввиду что "такая прозрачность как в gif отлично работает в png в любом експлорере" неверное утверждение. У меня в 6-м не работает, а рисует всё время какой-нибудь серенький фон независимо от фона под картинкой. Это всё без хаков, просто .png с прозрачным фоном.
0
извиняюсь забыл залить, сейчас готово
0
Вы привели беспредельное враньё в качестве аргумента, 8-битные png IE и так кушает, только толку от них в данном контексте никакого - полупрозрачности в них не бывает!!!
0
А какое отношение прозрачность имеет к полупрозрачности, которую собственно и фиксит альфалоадер?
0
А еще png8 жмет графику процентов на 20% лучше чем gif (а иногда в 4 раза лучше, но это редко), хотя для совсем маленьких изображений (10х10 пикселей и меньше) gif все-таки лучше.
И еще: Креативное использование полупрозрачных PNG в веб-дизайне
И еще: Креативное использование полупрозрачных PNG в веб-дизайне
0
Это все давно известно и невсеобъемлюще. В частности, использовать behavior/htc для фикса альфа-канала некорректно и для больших проектов невозможно (тут подробно описано почему и приводится альтернативный метод: http://tigir.com/alpha_png.htm).
Всех «убогих» пользователей убогого IE надо не поддерживать, а топить в прорубе.
Всех «убогих» пользователей убогого IE надо не поддерживать, а топить в прорубе.
0
спасибо. Все проблемы насущные. Будем пробовать и разбираться.
0
Вообще-то gif умеет ТруКолор: http://phil.ipal.org/tc217.gif
А полупрозрачность реализовывать какими-то кривыми средствами ради совместимости с кривыми браузерами == поддерживать эти самые кривые браузеры.
Но, как говорится, "Хозяин - Барин". И заказчику не донесёшь свои идеалогические стремления, так что не следует пренебрегать поддержкой IE, а то и без средств к существованию можно остаться.
--
P.S.: Еслиб PNG умел анимироваться или в браузерах (хотяб FF) была нормальная поддержка MNG я б от GIF'а отказался б полностью.
А полупрозрачность реализовывать какими-то кривыми средствами ради совместимости с кривыми браузерами == поддерживать эти самые кривые браузеры.
Но, как говорится, "Хозяин - Барин". И заказчику не донесёшь свои идеалогические стремления, так что не следует пренебрегать поддержкой IE, а то и без средств к существованию можно остаться.
--
P.S.: Еслиб PNG умел анимироваться или в браузерах (хотяб FF) была нормальная поддержка MNG я б от GIF'а отказался б полностью.
+2
Это как вообще сделано?
0
Реализовывать полупрозрачность ради совместимости с кривыми браузерами == уважать пользователей и не забывать, для кого сайты делаются.
Не для сообщества маздаененавистников или прочих холиварщиков.
Не для сообщества маздаененавистников или прочих холиварщиков.
+1
Было бы интересно, если бы кто-нибудь сделал список багов и хаков не для IE 6, (у которого они изучены вдоль и поперек), а для IE 7 - у него болячек не меньше.
0
Для "накидывания" полупрозрачности, можно воспользоваться конструкцией CSS expression.
В код страницы включить:
А в тег элемента, к которому нужно подключить обработчик (IMG и любой элемент в котором PNG-картинка сделана фоном), прописать
В код страницы включить:
<script language="javascript">
function PNG(element)
{
if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
{
var src;
if (element.tagName=='IMG')
{
if (/\.png$/.test(element.src))
{
src = element.src;
element.src = "images/1x1.gif";
}
}
else
{
src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
if (src)
{
src = src[1];
element.runtimeStyle.backgroundImage="none";
}
}
if (src) element.runtimeStyle.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
}
}
function horton() {
document.location = "/content/Presscenter/news/news22";
}
function peshi() {
document.location = "/content/Presscenter/news/5072007_action";
}
function esppban() {
document.location = "/content/ESPP";
}
</script>
<style type="text/css">
.png { filter:expression(PNG(this)) }
</style>
А в тег элемента, к которому нужно подключить обработчик (IMG и любой элемент в котором PNG-картинка сделана фоном), прописать
class="png"
.0
Сегодня как раз возился с PNG. Статья как раз в десятку, хотя добить проблему так и не удалось — IE6 не воспринимал (юзал filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=bzz.png)).
0
вот пример работающиъ альфа-каналов. реализовано в логотипе и меню
+1
В страницы, но обязательно после META content-type пишем:
<!--[if lt IE 7]> <script src="/ie7/ie7-standard-p.js" type="text/javascript"> </script> <![endif]-->
А если я использую исключительно XHTML 1.1, и meta content-type у меня нет и в помине?
0
только что опробован третий способ.
Детально ещё не изучалось, но min-width работает (min-height почему-то нет).
На этом же проекте png в фоне будет проверено.
Детально ещё не изучалось, но min-width работает (min-height почему-то нет).
На этом же проекте png в фоне будет проверено.
0
Стоить заметить, что при использовании png-изображения в качестве фона, не будет работать не только повторение изображения (background-repeat) но и выравнивание этого фона по правому краю.
+1
C IE7 от Dean Edwards работал достаточно продолжительное время и наткнулся на одну особенность: на сайтах даже с небольшим количеством абсолютно-позиционированных divов он начинает достаточно сильно тормозить, при этом такое ощущение, что торможение экспоненциально возрастает с увеличением числа этих самых divов. Второй момент - по каким-то причинам в таких условиях он не успевает обработать все элементы страницы (IE прерывает долгоиграющие скрипты? циклические зависимости в позиционировании? - мне так установить и не удалось) и layout расползается совершенно произвольным образом (кажлый раз по разному), при этом изменение размеров окна часто исправляет ситуацию.
В конечном итоге я отказался от решения Dean Edwards и стал использовать (а) IE conditional comments, (б) где возможно gifы, (в) где невозможно - png с требуемым цветом фона только для IE в conditional comments, (г) позиционирование с использованием CSS expressions (опять же включенное только для IE6).
В конечном итоге я отказался от решения Dean Edwards и стал использовать (а) IE conditional comments, (б) где возможно gifы, (в) где невозможно - png с требуемым цветом фона только для IE в conditional comments, (г) позиционирование с использованием CSS expressions (опять же включенное только для IE6).
0
А как сделать чтобы была полупрозрачность если доктайп такой:
"
"
никто не знает?
"
"
никто не знает?
0
порезали)) ещё раз
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
0
Sign up to leave a comment.
3 лекарства для Ослика