Après avoir passé des heures à essayer de le faire fonctionner dans IE8, 9 et 10, voici ce qui a fonctionné pour moi.
Ce CSS dépouillé fonctionne dans FF 26, Chrome 32, Opera 18, et IE9 -11 à partir du 1/7/2014 :
.wrap
{
width: 320px;
height: 192px;
padding: 0;
overflow: hidden;
}
.frame
{
width: 1280px;
height: 786px;
border: 0;
-ms-transform: scale(0.25);
-moz-transform: scale(0.25);
-o-transform: scale(0.25);
-webkit-transform: scale(0.25);
transform: scale(0.25);
-ms-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-o-transform-origin: 0 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}
Pour IE8, définissez la largeur/hauteur pour qu'elle corresponde à celle de la iframe, et ajoutez -ms-zoom à la div. conteneur .wrap :
.wrap
{
width: 1280px; /* same size as frame */
height: 768px;
-ms-zoom: 0.25; /* for IE 8 ONLY */
}
Il suffit d'utiliser votre méthode préférée de reniflage du navigateur pour inclure de manière conditionnelle le CSS approprié, voir Existe-t-il un moyen de réaliser un CSS conditionnel spécifique au navigateur dans un fichier *.css ? pour avoir quelques idées.
IE7 était une cause perdue puisque -ms-zoom n'existait pas avant IE8.
Voici le HTML que j'ai testé :
<div class="wrap">
<iframe class="frame" src="http://time.is"></iframe>
</div>
<div class="wrap">
<iframe class="frame" src="http://apple.com"></iframe>
</div>
http://jsfiddle.net/esassaman/PnWFY/
14 votes
Raclage de questions - une bonne pratique ? Je ne le pense pas.
19 votes
Cas d'utilisation typique : prévisualisation de la page ou du site dans un éditeur wysiwyg en ligne.