ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Html/css, ошибка в IE6
  #1  
Старый 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..
 
Ответить с цитированием

  #2  
Старый 07.05.2008, 12:30
Аватар для Naydav
Naydav
Постоянный
Регистрация: 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=0i<document.images.lengthi++)
      {
      var 
img document.images[i];
      var 
imgName img.src.toUpperCase();
      if (
imgName.substring(imgName.length-3imgName.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.hrefimgStyle "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-1;
         }
      }
   }
 if (
is_IE<7correctPNG(); 

Последний раз редактировалось Naydav; 07.05.2008 в 12:35..
 
Ответить с цитированием

  #3  
Старый 07.05.2008, 20:03
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Всё очень просто!
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..
 
Ответить с цитированием

  #4  
Старый 07.05.2008, 20:15
Аватар для байкал
байкал
Новичок
Регистрация: 01.08.2007
Сообщений: 24
Провел на форуме:
48533

Репутация: 1
По умолчанию

Всё равно не получается. Может у меня PNG как нибудь не так закодирован? Внизу изображение, которое мне надо использовать:


mff: не заметил твой пост, сейчас попробую

Последний раз редактировалось байкал; 07.05.2008 в 20:18..
 
Ответить с цитированием

  #5  
Старый 07.05.2008, 20:32
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Попробуй, попробуй! 100% рабочий вариант! Вот пример- http://aurveda.info
Недавно верстал из пингов и без таблиц.

Там же кстати и gif забери - http://aurveda.info/img/blank.gif

Последний раз редактировалось mff; 07.05.2008 в 20:35..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка 404. Как удержать посетителя на сайте? Solide Snake Статьи 2 15.04.2008 23:06
Непонятная ошибка в Vs 2003 EST a1ien С/С++, C#, Delphi, .NET, Asm 4 14.03.2008 20:24
Ошибка в Delphi 2007. Что делать с record? Ta2i4 С/С++, C#, Delphi, .NET, Asm 4 28.01.2008 09:34



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ