okunev2 Posted December 13, 2007 Report Share Posted December 13, 2007 Как вставить png картинку, чтобы прозрачность е? работала в ИЕ6 и 7, Опере и Мозиле? Link to comment Share on other sites More sharing options...
0 Emm Posted December 13, 2007 Report Share Posted December 13, 2007 мдя, http://www.tigir.com/alpha_png.htm Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 13, 2007 Author Report Share Posted December 13, 2007 хотел бы увидеть конкрретный пример, в инете тоже умею искать Link to comment Share on other sites More sharing options...
0 maddogrts Posted December 13, 2007 Report Share Posted December 13, 2007 а тебе не пример дали ? Link to comment Share on other sites More sharing options...
0 strix Posted December 13, 2007 Report Share Posted December 13, 2007 в инете тоже есть море именно конкретных примеров один из них - Apple Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 13, 2007 Author Report Share Posted December 13, 2007 неработает это в IE6 Link to comment Share on other sites More sharing options...
0 strix Posted December 13, 2007 Report Share Posted December 13, 2007 2okunev2 - что именно не работает? у меня отображаются, как надо. в ие6 в том числе. Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 13, 2007 Author Report Share Posted December 13, 2007 может чот я неправильно делаю, кинь свой пример, плиз! Link to comment Share on other sites More sharing options...
0 strix Posted December 13, 2007 Report Share Posted December 13, 2007 эта картинкаотображается, как надо, на той странице, что я привела выше Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 13, 2007 Author Report Share Posted December 13, 2007 <img src="images/blank.gif" border="0" width='303' height='104' style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='images/logo1.png ',sizingMethod=scale);">в ИЕ теперь работает, но в Мозиле и Опере нет Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 13, 2007 Author Report Share Posted December 13, 2007 http://artslab.info/?p=58вот простое решение Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 14, 2007 Author Report Share Posted December 14, 2007 млин, применил этот фикс для прозрачности png в ИЕ 6: /*Correctly handle PNG transparency in Win IE 5.5 & 6.http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.Use in <HEAD> with DEFER keyword wrapped in conditional comments:<!--[if lt IE 7]><script defer type="text/javascript" src="pngfix.js"></script><![endif]-->*/var arVersion = navigator.appVersion.split("MSIE")var version = parseFloat(arVersion[1])if ((version >= 5.5) && (document.body.filters)){ for(var i=0; i<document.images.length; i++) { var img = document.images[i] var imgName = img.src.toUpperCase() if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { var imgID = (img.id) ? "id='" + img.id + "' " : "" var imgClass = (img.className) ? "class='" + img.className + "' " : "" var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' " var imgStyle = "display:inline-block;" + img.style.cssText if (img.align == "left") imgStyle = "float:left;" + imgStyle if (img.align == "right") imgStyle = "float:right;" + imgStyle if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style="" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src='" + img.src + "', sizingMethod='scale');"></span>" img.outerHTML = strNewHTML i = i-1 } }}большие картинки png все гуд!но щас вставил маленькте иконки 11*9px тоже png (домашняя страница, e-mail, карта сайта), они растянулись в ИЕ непонятно как, а в Опере и Мозиле все гуд, может проблема в фиксе?вот такой косяк с маленькими png, хотя проверил всю верстку и убрал лишние стили, а то думал может поэтому тянется:Подскажите что делать? Link to comment Share on other sites More sharing options...
0 strix Posted December 14, 2007 Report Share Posted December 14, 2007 Любой фикс png имеет свои недостатки. Недостаток этого - в том, что в теге img обязательно надо указывать размеры картинки (оба). В общем, указывать размеры картинок полезно и с других точек зрения ))) Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 14, 2007 Author Report Share Posted December 14, 2007 указал, но все равно не сработало Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 14, 2007 Author Report Share Posted December 14, 2007 как быть? Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 14, 2007 Author Report Share Posted December 14, 2007 не стал мозг себе взрывать, а сделал gif и усе но все равно интересно, почему такого размера картинки, фикс этот уродует? Link to comment Share on other sites More sharing options...
0 strix Posted December 14, 2007 Report Share Posted December 14, 2007 код в студию Link to comment Share on other sites More sharing options...
0 Emm Posted December 14, 2007 Report Share Posted December 14, 2007 2 okunev2 тебе пример приведенного мною метода нужен? сходи через ie6 по сцылке ниже, там в шапке png с альфа-каналом. Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 15, 2007 Author Report Share Posted December 15, 2007 2 okunev2 тебе пример приведенного мною метода нужен? сходи через ie6 по сцылке ниже, там в шапке png с альфа-каналом.дай готовый код, я в нем быстрее разберусь! Link to comment Share on other sites More sharing options...
0 Emm Posted December 16, 2007 Report Share Posted December 16, 2007 мда... Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 16, 2007 Author Report Share Posted December 16, 2007 там каша, а не пример! Link to comment Share on other sites More sharing options...
0 Dimitry Wolotko Posted December 17, 2007 Report Share Posted December 17, 2007 okunev2, запомни - не требуй.В Лягушатник. Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 17, 2007 Author Report Share Posted December 17, 2007 Этот метод почему-то не работает, картинки долго грузятся, потом в общем висяк плохой это фиксПишут, много, в примерах, а конкретики нет, что вот строчка которая прикрепляется к тегу img, это нужно прописать в стилях, а это файл js приатачить! Link to comment Share on other sites More sharing options...
0 strix Posted December 18, 2007 Report Share Posted December 18, 2007 в комментах к скрипту, который Вы использовали, есть строки:Use in <HEAD> with DEFER keyword wrapped in conditional comments:<!--[if lt IE 7]><script defer type="text/javascript" src="pngfix.js"></script><![endif]-->Вы не забыли так написать? ещ? раз обращаю внимание на атрибут DEFER ! Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 18, 2007 Author Report Share Posted December 18, 2007 Исользвал другой метод, он работает, но глюк незначительный, как его побороть не пойму!Вот короче скрипт iepngfix.htc :<public:component><public:attach event="onpropertychange" onevent="doFix()" /><script type="text/javascript">// IE5.5+ PNG Alpha Fix v1.0RC4// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com// This is licensed under the CC-GNU LGPL, version 2.1 or later.// For details, see: http://creativecommons.org/licenses/LGPL/2.1/// This must be a path to a blank image. That's all the configuration you need.if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';var f = 'DXImageTransform.Microsoft.AlphaImageLoader';function filt(s, m){ if (filters[f]) { filters[f].enabled = s ? true : false; if (s) with (filters[f]) { src = s; sizingMethod = m } } else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';}function doFix(){ // Assume IE7 is OK. if (!/MSIE (5.5|6.)/.test(navigator.userAgent) || (event && !/(background|src)/.test(event.propertyName))) return; var bgImg = currentStyle.backgroundImage || style.backgroundImage; if (tagName == 'IMG') { if ((/.png$/i).test(src)) { if (currentStyle.width == 'auto' && currentStyle.height == 'auto') style.width = offsetWidth + 'px'; filt(src, 'scale'); src = blankImg; } else if (src.indexOf(blankImg) < 0) filt(); } else if (bgImg && bgImg != 'none') { if (bgImg.match(/^url[("']+(.*.png)[)"']+$/i)) { var s = RegExp.$1; if (currentStyle.width == 'auto' && currentStyle.height == 'auto') style.width = offsetWidth + 'px'; style.backgroundImage = 'none'; filt(s, 'scale'); // IE link fix. for (var n = 0; n < childNodes.length; n++) if (childNodes[n].style) childNodes[n].style.position = 'relative'; } else filt(); }}doFix();</script></public:component>так же есть blank.gif, в css перед тегом img прописываю: * { behavior: url(iepngfix.htc); }Вот только одно не понятно, когда сайт грузится и соотвественно картинки, то видно как моргает белый фон (ето только в ИЕ) у картинки и потом исчезает, как добиться того чтобы не было такого эфекта? Это не есть гуд! Link to comment Share on other sites More sharing options...
0 okunev2 Posted December 18, 2007 Author Report Share Posted December 18, 2007 в комментах к скрипту, который Вы использовали, есть строки:Use in <HEAD> with DEFER keyword wrapped in conditional comments:<!--[if lt IE 7]><script defer type="text/javascript" src="pngfix.js"></script><![endif]-->Вы не забыли так написать? ещ? раз обращаю внимание на атрибут DEFER !глюк этого фикса ещ? в том, что нужно обязательно прописывать в теге img в самой странице высоту и ширину картинки! Link to comment Share on other sites More sharing options...
Question
okunev2
Как вставить png картинку, чтобы прозрачность е? работала в ИЕ6 и 7, Опере и Мозиле?
Link to comment
Share on other sites
28 answers to this question
Recommended Posts