Menu

[HTML/CSS] IE et Iframe [Résolu/Fermé]

Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
- - Dernière réponse : GallyNet
Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
- 12 sept. 2005 à 17:43
J'ai un énorme problème et j'arrive décidemment pas à trouver une solution :
j'ai créer une page avec un div qui contient une iframe. Je fait que la div soit à 20 pixel du bord et que sont contenu soit à 10px de la div. L'Iframe doit avoir une taille de 100%.
Aucun problème sous firefox, tout marche correctement (normal me dirai vous), mais quand je test sous IE j'ai mon ifrmae qui dépasse de ma div et même de ma page. Par contre, si je redimmensionne la fenètre de IE, l'iframe pred automatiquement la bonne taille (?) mais si je recharge la page, l'iframe sort à nouveau de la div (???).

Est-ce que quelqu'un à déjà eu se probléme et pour me dire coment il a réussi à corrigé celà ? Ou il y aurait-il quelqu'un qui aurait une idée pour que celà marche ?
Merci d'avance.


Voici mon code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title></title>
  </head>
  <body>
    <div style="padding:10px;margin:20px;border:solid red 1px;">
      <iframe style="width:100%;">
      </iframe>
    </div>
  </body>
</html>
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
443
9
Merci
Pas de probleme :
dans t'on code HTML tu pose le code suivant dans t'on en-tete:
<!--[if gte IE 5.5000]>
<script type="text/javascript" src="pngfix.js"></script>
<![endif]-->


Il exécutera le code que si le navigateur est IE 5.5 ou supérieur.

Ensuite tu créer un fichier "pngfix.js" qui contient le code suivant :

// Correctly handle PNG transparency in Win IE 5.5 or higher.
// http://homepage.ntlworld.com/bobosola. Updated 02-March-2004

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
}
}
}
window.attachEvent("onload", correctPNG);


Et techniquement tout doit marcher.

Dire « Merci » 9

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 48015 internautes nous ont dit merci ce mois-ci

Messages postés
2289
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
597
0
Merci
Salut,

Essaye simplement de rajouter un width:100% dans le style de ton div.

@+
Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
443
0
Merci
Désolé, mais même avec un width:100% dans la div, il n'y a aucun changement.
A la limite, s'il y aurait un script javascript qui prendrai la taille en pixel de la div et l'appliquerai à l'iframe avec 20 pixel de moins se serait génial, mais je mis connais pas trops en javascript.
Erdnax
Messages postés
2289
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
597 -
Ah, pourtant quand je test en local chez moi ton code, ça fait bien ce que tu dis, au redimmentionnement aussi, et lorsque je rajoute le width dans le div, tout fonctionne... c'est bizard.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title></title>
  </head>
  <body>
    <div style="width:100%;padding:10px;margin:20px;border:solid red 1px;">
      <iframe style="width:100%;">
      </iframe>
    </div>
  </body>
</html>
Ca donne ça, et ça marche :(
Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
443
0
Merci
Oulalala, excuse moi, j'avais pas mis width:100% mais style:100%
La honte sur moi.
effectivement en maitant le width:100% tout marche très bien. Je te remercie bien et j'espere ne plus faire d'erreur aussi stupide.
Messages postés
2289
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
597
0
Merci
No problemo, j'ai moi aussi fais plusieurs boulettes sympa aujourd'hui lol.

@+
Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
443
0
Merci
En fait, j'ai re-regardé tout ca est malheureusement, dans le vrai code que j'utilise (j'avais donné une version soft) j'ai un nouveau problème avec Firefox : le div principal prend une taille de 100% de la taille de la fenetre, alors avec une margin de 20 pixel et un padding de 10 pixel, elle dépasse donc de 30 pixel sur la droite.

Heureusement IE possede un systeme de script intégré qui permet de corrigé les bug horrible qu'il ocasionne. J'ai donc rajouté le code suivant:
<!--[if IE]>
<link rel="stylesheet" href="style/ie.css" type="text/css" />
<![endif]-->

Où le fichier ie.css contient le width:100%

Comme IE l'exécute, il a donc la taille correcte, et comme firefox ne l'éxécute pas, il a également la taille correct. :-)
Erdnax
Messages postés
2289
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
597 -
Ah, super astuce que je ne connaissais pas !
Messages postés
437
Date d'inscription
mardi 1 juin 2004
Dernière intervention
15 décembre 2008
443
0
Merci
Oui c'est assez pratique quand on doit faire quelque chose sous IE mais pas sous d'autre navigateur.
Par exemple il existe un même sorte de script qui exécute un javascript afin de rendre leurs transparence au images PNG sous IE.
StreM
Messages postés
519
Date d'inscription
lundi 18 octobre 2004
Dernière intervention
28 février 2007
198 -
Cool !
Tu saurais me retrouver ca ?
^_^