Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

07.05.2008, 09:47
|
|
Новичок
Регистрация: 01.08.2007
Сообщений: 24
Провел на форуме: 48533
Репутация:
1
|
|
Html/css, ошибка в IE6
Мне надо показать прозрачное PNG изображение. Работает во всех браузерах, кроме осла.
Буду благодарен за любую помощь.
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
</head>
<body bgcolor="white">
<img src="128_003.png" alt="#########" width="55" height="10" border="0" alt="####" > </img>
</body>
</html>
pngfix.js:
Код:
/*
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++)
{
alert("FUNCTION EXECUTING");
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
}
}
}
Последний раз редактировалось байкал; 07.05.2008 в 09:51..
|
|
|

07.05.2008, 12:30
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
PNG изображения не очень широко используются в веб-дизайне, и тому есть серьезная причина. До выхода IE7 нельзя было сказать, что преимущества PNG хорошо используются основными браузерами. Но, начиная с 7-ой версии, IE имеет полную поддержку PNG, а с помощью небольшого количества JavaScript и CSS можно заставить старые браузеры корректно отображать полупрозрачные PNG, теперь самое время пополнить свой дизайнерский арсенал еще одним инструментом.
Креативное использование полупрозрачных PNG в веб-дизайне
Jeff Croft, 23 июня 2007
Можно попробывать:
PHP код:
function correctPNG()
{
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;
}
}
}
if (is_IE<7) correctPNG();
Последний раз редактировалось Naydav; 07.05.2008 в 12:35..
|
|
|

07.05.2008, 20:03
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Всё очень просто!
IE 7 и выше нормально отображает png, а вот ниже - всё плохо.
Для коректного отображения png в IE6 и ниже используй сей код в шапке:
Код:
<!--[if lt IE 7]>
<![if gte IE 5.5]>
<script type="text/javascript" src="fixpng.js"></script>
<style type="text/css">
.iePNG{filter:expression(fixPNG(this));}
</style>
<![endif]>
<![endif]-->
файл fixpng.js:
Код:
function fixPNG(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 = "img/blank.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')";
}
}
В папке img должен лежать прозрачный gif blank.gif 1px на 1px
Далее во всех тегах, которые содержат путь к png пропиши - class="iePNG"
Всё! 
Последний раз редактировалось mff; 07.05.2008 в 20:07..
|
|
|

07.05.2008, 20:15
|
|
Новичок
Регистрация: 01.08.2007
Сообщений: 24
Провел на форуме: 48533
Репутация:
1
|
|
Всё равно не получается. Может у меня PNG как нибудь не так закодирован? Внизу изображение, которое мне надо использовать:
mff: не заметил твой пост, сейчас попробую
Последний раз редактировалось байкал; 07.05.2008 в 20:18..
|
|
|

07.05.2008, 20:32
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Попробуй, попробуй! 100% рабочий вариант! Вот пример- http://aurveda.info
Недавно верстал из пингов и без таблиц.
Там же кстати и gif забери - http://aurveda.info/img/blank.gif
Последний раз редактировалось mff; 07.05.2008 в 20:35..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|