Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

transparenta background cu CSS in IE
Vezi mesajul original
Du-te la pagina Anterioară  1, 2, 3  Următoare
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> HTML/JavaScript/CSS
Subiectul anterior :: Subiectul următor  
Autor Mesaj
amnine



Data înscrierii: 19/Sep/2007
Mesaje: 23
Locație: Cluj Napoca

Trimis: Mie Sep 26, 2007 3:45 pm    Titlul subiectului:  

Si eu am IE6 dar merge perfect...Am asa:
Cod:
#product {
         background: url(produs_background3.png) no-repeat top left;
         position: relative;
         width: 640px;
         height: 170px;
      }
      
      * html #product {
         position: relative;
         width: 595px;
         height: 140px;
         margin: 0 0 30px 0;
         background:none;
         filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='produs_background3.png')
      }

in .css si merge... :roll:
Sus  
Copyright



Data înscrierii: 17/Dec/2006
Mesaje: 860
Locație: Bucuresti

Trimis: Mie Sep 26, 2007 4:10 pm    Titlul subiectului:  

Comentariile conditionale se pun in interiorul tagului <head> din documentul HTML, nu in CSS.

Acum, ca sa nu va mai complicati cu hackuri stupide, puteti folosi un Js fix care sa aplice filtrul respectiv pentru toate elementele din pagina care au imagini cu extenia .png ca background-image.

Cod: function fixPNG() {

    if(!new RegExp(/MSIE 6.0/).test(navigator.userAgent)){return;}

    var elems = document.body.getElementsByTagName("*");

    for(var i = 0, n = elems.length; i < n; i++){
        var tmpImg = elems[i].currentStyle['backgroundImage'];
        if(!tmpImg){return;}

        var png = tmpImg.replace(/url[(]|[)]|"/g, '');

        elems[i].style.backgroundImage = '';
        elems[i].style.background = '';

   elems[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')";
    }
}
window.onload = fixPNG;



Later.
Sus  
ADYRS



Data înscrierii: 13/Ian/2005
Mesaje: 360
Locație: Cluj Napoca

Trimis: Mie Sep 26, 2007 4:17 pm    Titlul subiectului:  

1. am pus in script.js
function fixPNG() {

if(!new RegExp(/MSIE 6.0/).test(navigator.userAgent)){return;}

var elems = document.body.getElementsByTagName("*");

for(var i = 0, n = elems.length; i < n; i++){
var tmpImg = elems[i].currentStyle['backgroundImage'];
if(!tmpImg){return;}

var png = tmpImg.replace(/url[(]|[)]|"/g, '');

elems[i].style.backgroundImage = '';
elems[i].style.background = '';

elems[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')";
}
}
window.onload = fixPNG;

si am:
<script type="text/javascript" src="js/script.js"></script>

2. am pus * html #logo {
background:none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='../images/logo.png');
}
#logo {
float:right;
width:268px;
height:301px;
border:1px solid red;
background:url(../images/logo.png) no-repeat;
}
si am <div id="logo"></div>

numa in ie6 nu vrea sa mearga in rest merge si in ie7 si in ff!


amnine ai pe net undeva pus sa arunc un ochi?
Sus  
Copyright



Data înscrierii: 17/Dec/2006
Mesaje: 860
Locație: Bucuresti

Trimis: Mie Sep 26, 2007 4:36 pm    Titlul subiectului:  

Daca folosesti JS-ul ala nu mai e nevoie de hackuri. :


<script type="text/javascript" src="js/script.js"></script>
<style type="text/css">
#logo {
float:right;
width:268px;
height:301px;
border:1px solid red;
background:url(../images/logo.png) no-repeat;
}
</style>
..........................
<div id="logo"></div>



Later.
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Mie Sep 26, 2007 4:40 pm    Titlul subiectului:  

cam aceasi abordare (cea din scriptul lui Copyright)
http://www.twinhelix.com/css/iepngfix/

Mult mai interesant este behavior-ul IE7 insa e in stadiul alpha si nu e indicat sa fie folosit (din cate am vazut, functioneaza corect)
Sus  
Copyright



Data înscrierii: 17/Dec/2006
Mesaje: 860
Locație: Bucuresti

Trimis: Mie Sep 26, 2007 5:38 pm    Titlul subiectului:  

Scuze, dar din graba am uitat sa filtrez doar imaginile care au extensie png, folositi versiunea urmatoare ca sa nu aveti parte de surprize:

Citat:
function fixPNG() {

if(!new RegExp(/MSIE 6.0/).test(navigator.userAgent)){return;}

var elems = document.body.getElementsByTagName("*"), png;

for(var i = 0, n = elems.length; i < n; i++){
var tmpImg = elems[i].currentStyle['backgroundImage'];
if(!tmpImg || !new RegExp(/.png$/).test(png = tmpImg.replace(new RegExp(/url[(]|[)]|"/g), ''))){return;}

elems[i].style.backgroundImage = '';
elems[i].style.background = '';

elems[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')";
}
}
window.onload = fixPNG;


Cred ca IE7(libraria JS) impune ca denumirea fisierelor png sa inceapa cu '_trans' pentru a aplica filtrul, sau cel putin cerea versiunea pe care o foloseam eu anul trecut.




Later.
Sus  
amnine



Data înscrierii: 19/Sep/2007
Mesaje: 23
Locație: Cluj Napoca

Trimis: Mie Sep 26, 2007 6:13 pm    Titlul subiectului:  

Sorry ADYRS, nope... :roll: Acum fac 1 site si folosesc chestia asta cand afisez produsele dintr-o categorie.Sincer, aveam un cont pe xhost.ro dar nu mai stiu parola si setarile...Daca chiar e vital pt tine atunci iti trimit prin email eventual...
P.S. scuze pt intarziere...
Sus  
amnine



Data înscrierii: 19/Sep/2007
Mesaje: 23
Locație: Cluj Napoca

Trimis: Mie Sep 26, 2007 6:20 pm    Titlul subiectului:  

AM asa :
-in styles.css:
Cod:
   
      #product {
         background: url(produs_background3.png) no-repeat top left;
         position: relative;
         width: 640px;
         height: 170px;
      }
      
      * html #product {
         position: relative;
         width: 595px;
         height: 140px;
         margin: 0 0 30px 0;
         background:none;
         filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='produs_background3.png')
      }


-in html:
Cod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="styles.css" />   
</head>

<body>

 ......
<div id="product">
   ....
</div>


</body>

</html>


Am mai multe containere si de aceea chestia cu pozitionarea..
Vezi sa ai toate imaginile folosite :D
Sper ca am vazut eu bine ca am IE 6 :lol:
Version 6.0.2900.2180 si am si Service Pack 2 - asta scrie la about ... :roll:
Sus  
ADYRS



Data înscrierii: 13/Ian/2005
Mesaje: 360
Locație: Cluj Napoca

Trimis: Mie Sep 26, 2007 6:41 pm    Titlul subiectului:  

am rezolvat!
mai aveam o functie in js si in ie6 nu mergea!
multumim mult Copyright!
ai din nou aprecierile mele, de aceasta data nu prin pm:P
Sus  
ADYRS



Data înscrierii: 13/Ian/2005
Mesaje: 360
Locație: Cluj Napoca

Trimis: Mie Oct 03, 2007 7:00 pm    Titlul subiectului:  

salutare!
iar ma bat de o pb!
am <div></div> cu un bg .png!
merge doar daca divu e plasat imediat dupa <body>!
De ce?
cum pot sa fac sa mearga chiar daca e pus in alte 3-4 divuri?
Sus  
ADYRS



Data înscrierii: 13/Ian/2005
Mesaje: 360
Locație: Cluj Napoca

Trimis: Mie Oct 03, 2007 11:09 pm    Titlul subiectului:  

http://adrianrus.ro/bug/unu.html acesta-i linkul spre minunea respectiva!
Sus  
amnine



Data înscrierii: 19/Sep/2007
Mesaje: 23
Locație: Cluj Napoca

Trimis: Joi Oct 04, 2007 8:29 am    Titlul subiectului:  

Eu am folosit "hack-ul" in CSS si asa merge sigur :wink: Inca n-am ajuns sa trec la implementarea cu Javascript sa vad cum se comporta.Asa am rezolvat eu problema:
-in XHTML am:

Cod:
<body>
  <div id="container">
     <div id="content">
      <div id="product">
          ......
      </div>
    </div>
  </div>
</body>


-in CSS am asa:

Cod:
....
#product {
         background: url(produs_background3.png) no-repeat top left;
         position: relative;
         width: 640px;
         height: 170px;
      }
      
* html #product {
         position: relative;
         width: 595px;
         height: 140px;
         margin: 0 0 30px 0;
         background:none;
         filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='produs_background3.png')
      }
....


...& it works :lol:
Sus  
Copyright



Data înscrierii: 17/Dec/2006
Mesaje: 860
Locație: Bucuresti

Trimis: Joi Oct 04, 2007 5:19 pm    Titlul subiectului:  

ADRYS a scris: merge doar daca divu e plasat imediat dupa <body>!
De ce?
cum pot sa fac sa mearga chiar daca e pus in alte 3-4 divuri?
pune continue in loc de return la linia asta.
Cod:
if(!tmpImg || !new RegExp(/.png$/).test(png = tmpImg.replace(new RegExp(/url[(]|[)]|"/g), ''))){continue;}
Later.
Sus  
gablagost



Data înscrierii: 08/Ian/2007
Mesaje: 22
Locație: Iasi

Trimis: Vin Oct 05, 2007 1:20 pm    Titlul subiectului:  

salut
o problema asemanatoare am si eu de vreo saptamana:

am un meniu cu 2 nivele
MenuItem1
-SubMenuItem1_1
--SubSubMenuItem1_1_1
--SubSubMenuItem1_1_2
--SubSubMenuItem1_1_3
-SubMenuItem1_2
MenuItem2
MenuItem3

Submeniurile au ca background png-uri transparente.
Am incercat sa fac un meniu "seo", adica submeniul se deschide pe :hover. cum ie nu suporta hover decat pe 'a', am folosit un .htc. problema mea este ca js-ul de pngfix nu mai 'functioneaza'
in schimb, daca folosesc hack-ul de css, imi merge perfect, doar ca imi apar niste buguri ciudata.

intrebarea mea este: a lucrat cineva vreodata cu combinatia asta 'mirifica'?
Sus  
Copyright



Data înscrierii: 17/Dec/2006
Mesaje: 860
Locație: Bucuresti

Trimis: Dum Oct 07, 2007 10:56 am    Titlul subiectului:  

gablagost a scris: problema mea este ca js-ul de pngfix nu mai 'functioneaza'

Ce fel se pngFix folosesti? Daca e tot un fisier htc, e posibil sa intre in conflict cu implementarea hover pt IE6.


Later.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> HTML/JavaScript/CSS Du-te la pagina Anterioară  1, 2, 3  Următoare
Pagina 2 din 3


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community