2010-04-13 21 views
20

Gibt es eine Möglichkeit, zu verkleinern, was in einem Iframe ist, ohne css anzupassen?möglich, Inhalte von Iframe zu verkleinern?

Irgendwelche magischen "Zoom" Parameter da draußen? !!!

Ich habe eine 600px Vorschau iframe i ohne Scrollbalken in einer 1000px Website passen wollen ...

Antwort

-1

Ich habe keine Angst. Ihre einzige Option wäre, seitenspezifische CSS-Modifikatoren zu verwenden, um die Schrift- und Elementgröße zu reduzieren.

+4

Es gibt mehrere Antworten unten, die zeigen, dass es getan werden kann. – fmz

+0

Sprechen Sie über die Aufhebung der Toten .. Wenn der Benutzer, der diese Frage gestellt hat, ihre angenommene Antwort ändern möchte, können sie dies tun. Ich leugne nicht, dass seit der Bereitstellung meiner "Antwort" andere echte Antworten entwickelt wurden. Da die Lücke zwischen meiner "Antwort" und einer echten Antwort über zwei Jahre besteht, denke ich, dass Sie sowohl meine Antwort als auch die fehlende Aktualität der Frage des OP verzeihen können. – Seidr

+0

Nichts für ungut. Ich versuche nur, eine funktionierende Lösung zu finden. Dies ist kein einfaches Thema und es gibt wenig hilfreiche Informationen. – fmz

1

Nun, in Kürze nein.

Sie können in-line CSS verwenden, um die Breite/Höhe auf 600px zu setzen und dann setzen auch die overflow:hidden

+0

Ah wahr - meine Vermutung war, dass das Plakat wollte die ganze Website sichtbar. – Seidr

+0

Nun, ich habe das gleiche wirklich angenommen.Hoffentlich möchte er die Seite nicht verkleinern, um in die kleinere Vorschau zu passen. Das können Sie nicht tun ... weniger Sie einige serverseitige Rendering einer Seite, Speichern der Ausgabe, Schrumpfen etc. etc – thecoshman

+0

gut, können Sie die Website verkleinern, um in den iframe, clientside, cfr passen. meine Antwort unten :) – futtta

8

Wenn Sie die Iframe-Inhalte steuern, können Sie diesen kleinen Hack von mir nützlich finden: http://futtta.be/squeezeFrame/

Es ist ein browserübergreifendes Standalone-Javascript-Thing, das versucht, die Größe der Seite, von der es aufgerufen wird, automatisch an die verfügbare Größe des Iframes anzupassen, indem es css zoom und moz-transform verwendet.

50

CSS3 kann damit umgehen. Dieser Code sollte die meisten Browser unterstützen oder einfach auf Ihre Bedürfnisse reduzieren. Keine Notwendigkeit, "einstellen" alle vorhandenen CSS:

iframe { 
    -moz-transform: scale(0.25, 0.25); 
    -webkit-transform: scale(0.25, 0.25); 
    -o-transform: scale(0.25, 0.25); 
    -ms-transform: scale(0.25, 0.25); 
    transform: scale(0.25, 0.25); 
    -moz-transform-origin: top left; 
    -webkit-transform-origin: top left; 
    -o-transform-origin: top left; 
    -ms-transform-origin: top left; 
    transform-origin: top left; 
} 

Oder wenn Sie zum Beispiel Inline-Stil wollen nur firefox:

<style> 
    #IDNAME { 
    -moz-transform: scale(0.25, 0.25); 
    -moz-transform-origin: top left; 
    } 
</style> 

Dann einfach natürlich die ID zu Ihrem iframe hinzufügen:

<iframe id="IDNAME" src="http://www.whatever.com"></iframe> 
+0

Brilliant, und einfache Lösung :) – Aaron

+0

Wichtiger Hinweis - dies ändert auch die Größe des gesamten iframe, also wenn Sie eine definierte Größe behalten möchten, müssen Sie sich darum kümmern. Hier ist ein gutes Beispiel mit scroll width/height: http://futtta.be/squeezeFrame/ –

+1

Das ist einfach genug, setzen Sie einfach den iframe in ein Div und erzwingen die Höhe/Breite, die Sie wollen. Auf diese Weise ändern Sie die Seitenformatierung nicht, wenn Sie verkleinern oder erweitern. –

7

Sie können dies absolut tun, einfach gut.

einzige Einschränkung ist, müssen Sie den iframe zu transformieren, und es Position absolut:

iframe { 
    /* Set the width of the iframe the size you want to transform it FROM */ 
    width: 1108px; 
    height: 710px; 
    /* apply the transform */ 
    -webkit-transform:scale(0.25); 
    -moz-transform:scale(0.25); 
    -o-transform:scale(0.25); 
    transform:scale(0.25); 
    /* position it, as if it was the original size */ 
    position: absolute; 
    left: -400px; 
    top: -200px; 
} 

ein Beispiel zu sehen, schauen Sie unter: http://jsfiddle.net/8DVNa/

+1

Wenn die gleiche Antwort für zwei verschiedene Fragen gilt, sind diese Fragen vielleicht identisch . Sie hätten die Frage als Duplikat markieren können, anstatt sie einfach erneut zu beantworten. –

+0

Du hättest viel mehr Anerkennung dafür bekommen sollen. Es funktioniert großartig. – fmz

0

ich mehrere Shopping-Sites, die ich auf meine neue portiert Website und nach der Fixierung der view/vantage Punkt des Fokus Heres, was ich bekam ... die Website passen schön in meinem iframe pro Seite ... der Unterschied in der Schriftgröße ist besser als der Schwerpunkt Frage ... Ich denke es war ein guter Kompromiss

#wrap { 
     width: 115%; 
     height: 2000px; 
     padding: 0; 
     overflow: hidden; 
} 
    #frame { 
     -ms-zoom: 0.5; 
     -ms-transform-origin: 0 0; 
     -moz-transform: scale(0.75); 
     -moz-transform-origin: 0px 75px; 
     -o-transform: scale(0.75); 
     -o-transform-origin: 0px 75px; 
     -webkit-transform: scale(0.75); 
     -webkit-transform-origin: 0 0; 
} 
    #frame { 
     width: 115%; 
     height: 2000px; 
     overflow: hidden; 
} 

    <div id="wrap"> 
     <iframe id="frame" src="http://hempseedoilsoap.com/" scrolling="auto" align="center"></iframe> 
    </div> 
Verwandte Themen