Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema trasparenza png con IE

    Buon giorno a tutti, non capisco come mai seppur utilizzando il file iepngfix.htc e relativo commento condizionale per IE 6, fino a qualche mese fà funzionava benissimo, ora mi sono accorto che IE 6 mi dà nuovamente problemi..
    Questo è il commento condizionale nella index:
    codice:
    <!--[if lte IE 6]>
    	<style type="text/css">
    		/*questo scriptino serve per togliere lo sfondo delle png che compare solo su IE6*/
    		img, input, span, ul, ol, li, body{ behavior: url("css/iepngfix.htc");}
     	</style>
    	<![endif]-->
    questo è lo script:
    codice:
    <public:component>
    <public:attach event="onpropertychange" onevent="iePNGFix(0)" />
    
    <script type="text/javascript">
    
    // IE5.5+ PNG Alpha Fix v1.0
    // (c) 2004-2008 Angus Turnbull http://www.twinhelix.com
    
    // This is licensed under the 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, relative to the HTML document(s).
    // In production use I suggest '/images/blank.gif' or similar. That's all!
    if (typeof blankImg == 'undefined') var blankImg = 'css/blank.gif';
    
    
    function filt(s, b)
    {
     var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
     var sM = (currentStyle.backgroundRepeat == 'no-repeat') ? 'crop' : 'scale';
     s = (s || '').replace(/\(/g, '%28').replace(/\)/g, '%29');
    
     if (s && !(/IMG|INPUT/.test(nodeName) && !b) &&
      currentStyle.width == 'auto' && currentStyle.height == 'auto')
     {
      style.width = offsetWidth + 'px';
      style.height = clientHeight + 'px';
      if (currentStyle.display == 'inline') style.display = 'inline-block';
     }
    
     if (filters[f])
     {
      filters[f].enabled = s ? true : false;
      if (s) with (filters[f]) { src = s }
     }
     else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="' + sM + '")';
    }
    
    function iePNGFix(init)
    {
     if (!/MSIE (5\.5|6)/.test(navigator.userAgent) || typeof filters == 'unknown') return;
     var evt = init ? { propertyName: 'src,background' } : event;
     var isSrc = /src/.test(evt.propertyName);
     var isBg = /background/.test(evt.propertyName);
     var isClass = !init &&
      ((this.className != this._png_class) && (this.className || this._png_class));
     if (!(isSrc || isBg || isClass)) return;
     this._png_class = this.className;
     var blank = blankImg.match(/([^\/]+)$/)[1];
    
     // Required for Whatever:hover support - erase any set BG if className changes.
     if (isClass && ((style.backgroundImage.indexOf('url(') == -1) ||
         (style.backgroundImage.indexOf(blank) > -1)))
     {
      setTimeout(function() { this.style.backgroundImage = '' }, 0);
      return;
     }
    
     if (isSrc && this.src && /IMG|INPUT/.test(nodeName))
     {
      if ((/\.png/i).test(src))
      {
       filt(src, 1);
       src = blankImg;
      }
      else if (src.indexOf(blank) == -1) filt();
     }
    
     var bgSrc = currentStyle.backgroundImage || style.backgroundImage;
     if ((bgSrc + this.src).indexOf(blank) == -1)
     {
      var bgPNG = bgSrc.match(/^url[("']+(.*\.png[^\)"']*)[\)"']+[^\)]*$/i);
    
      if (bgPNG)
      {
       style.backgroundImage = 'url("' + blankImg + '")';
       filt(bgPNG[1], 0);
       // Unclickable elements inside PNG backgrounds.
       //var tags = ['a', 'input', 'select', 'textarea', 'iframe', 'object'],
       var tags = [],
        t = tags.length, tFix = [];
       while (t--)
       {
        var elms = all.tags(tags[t]), e = elms.length;
        while (e--) tFix.push(elms[e]);
       }
       var t = tFix.length;
       if (t && (/relative|absolute/i).test(currentStyle.position))
        alert('IEPNGFix: Children of positioned element are unclickable:\n\n<' +
         nodeName + (id && ' id=' + id) + '>');
        while (t--)
         if (!(/relative|absolute/i).test(tFix[t].currentStyle.position))
          tFix[t].style.position = 'relative';
      }
      else filt();
     }
    }
    
    iePNGFix(1);
    
    </script>
    </public:component>

    Mi dite per favore se c'è qualche riga di codice che va riscritta?
    Grazie mille....

  2. #2
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    credo che in questa sezione il js non sia adatto, cmq il problema potrebbe essere dato dal percorso dell'htc oppure dal modo sbagliato di applicarlo. Inoltre il tuo htc prevede il fix anche per i background?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.