[HTML/CSS] IE et Iframe

Résolu/Fermé
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 - 12 sept. 2005 à 12:38
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre 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>

7 réponses

GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
12 sept. 2005 à 17:43
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.
9
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
12 sept. 2005 à 13:14
Salut,

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

@+
0
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
12 sept. 2005 à 13:40
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.
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
12 sept. 2005 à 13:43
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 :(
0
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
12 sept. 2005 à 14:08
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
12 sept. 2005 à 14:10
No problemo, j'ai moi aussi fais plusieurs boulettes sympa aujourd'hui lol.

@+
0
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
12 sept. 2005 à 15:21
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. :-)
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
12 sept. 2005 à 15:36
Ah, super astuce que je ne connaissais pas !
0
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
12 sept. 2005 à 15:48
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.
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
12 sept. 2005 à 16:19
Cool !
Tu saurais me retrouver ca ?
^_^
0