Ich meine, wird es tatsächlich die Höhe der verbleibenden Seite einnehmen (da sich oben ein weiterer Rahmen mit einer festen Höhe von 50 Pixel befindet). Wird dies in allen gängigen Browsern (IE/Firefox/Safari) unterstützt?
Auch in Bezug auf Bildlaufleisten, obwohl ich sage scrolling="no"ich kann deaktivierte Bildlaufleisten in Firefox sehen … Wie kann ich Bildlaufleisten vollständig ausblenden und die Iframe-Höhe automatisch einstellen?
Sehen Sie, eigentlich habe ich nicht alle Browser installiert. Auch verschiedene Versionen.
– Kopenhagen
3. Mai 2011 um 10:22 Uhr
Sie können es auch in einem CSS-Validator versuchen.
– Ruben
3. Mai 2011 um 10:27 Uhr
Ja, das gibt keine Fehler/Warnungen … Aber meine Frage ist, wenden alle Browser tatsächlich 100% Höhe an?
– Kopenhagen
3. Mai 2011 um 10:29 Uhr
Für mich hat diese Antwort gut funktioniert: stackoverflow.com/questions/5272519/…
– Zied Hamdi
11. September 2014 um 18:34 Uhr
Axt
Sie könnten Frameset wie in der vorherigen Antwort angegeben verwenden, aber wenn Sie darauf bestehen, iFrames zu verwenden, sollten die beiden folgenden Beispiele funktionieren:
Um die Bildlaufleisten des iFrame auszublenden, wird das übergeordnete Element erstellt overflow: hidden um Bildlaufleisten auszublenden, und der iFrame wird auf 150 % Breite und Höhe gebracht, was die Bildlaufleisten außerhalb der Seite zwingt, und da der Hauptteil keine Bildlaufleisten hat, kann man nicht erwarten, dass der Iframe die Grenzen der Seite überschreitet . Dadurch werden die Scrollbalken des iFrames mit voller Breite ausgeblendet!
Klingt gut..Nur eine Frage aber…Warum müssen wir style=”height:100%;width:100%;” verwenden? wenn wir sowieso sagen iframe height=”100%” width=”100%”
– Kopenhagen
3. Mai 2011 um 11:26 Uhr
Auch nur IE nimmt nicht 100% Höhe (nimmt ungefähr 200px ht) … FF und Safri nehmen die gesamte verbleibende Höhe.
– Kopenhagen
3. Mai 2011 um 12:19 Uhr
@Boris Zbarsky Ja, danke, dass du mich das wissen lässt! Ich habe den Beitrag jetzt aktualisiert!! @hmthr Ihre erste Frage zu den doppelten Tags ist, dass frühere Browser die Tags “height” und “width” verwenden, aber nicht gut mit den style-Tags funktionieren! Was den IE-Bug angeht, würde ich es vorziehen, wenn Sie in diesem Fall beim ersten Code bleiben.
– Axt
3. Mai 2011 um 15:01 Uhr
Damit der Iframe 100 % richtig verwendet, muss das übergeordnete Element 100 % betragen. In neueren Doctypes sind html und body tag nicht automatisch 100%ig. Als ich height:100% für HTML und Body hinzufügte, funktionierte es einwandfrei. Also, die richtige Antwort auf die Frage, denke ich, ist die Antwort von Rudie, außer dass ich meinen xhtml-Doctype behalten musste. Beachten Sie auch, dass die Überlaufregeln dann nicht erforderlich sind. Bildlaufleisten funktionieren dann wie vorgesehen – automatisch.
html, body {
height: 100%;
margin: 0; /* Reset default margin on the body element */
}
iframe {
display: block; /* iframes are inline by default */
background: #000;
border: none; /* Reset default border */
width: 100%;
height: 100%;
}
<iframe></iframe>
Am Ende habe ich eine Variation von Option 1 verwendet … Ich habe width: 100% und height: 100vh verwendet, weil die Quelle, die ich gezogen habe, ziemlich breit war und der iframe in einem div enthalten ist. Hervorragende Lösung. Danke.
– Nicht Jay
30. Juli 2015 um 14:34 Uhr
Hinzufügen display: block hat den Trick gemacht, um eine doppelte Bildlaufleiste zu verhindern
Die Höhe ist auf 100vh eingestellt, was für Viewport Height steht. Außerdem könnte die Breite auf 100vw eingestellt werden, obwohl Sie wahrscheinlich auf Probleme stoßen werden, wenn die Quelldatei reagiert (Ihr Rahmen wird sehr breit).
Seamless wird meines Wissens in keinem Browser unterstützt
– Visual Bean
17. August 2015 um 7:25 Uhr
Nachdem ich mehr Zeit damit verbracht habe, mit diesem Problem herumzuspielen, als ich zugeben möchte, ist dies GENAU das, was ich brauchte. Außer dass ich anstelle einer Website eine andere HTML-Datei verwendet habe, die eine geringfügige Anpassung der Ansichtsfensterhöhe erforderte, und jetzt kann es losgehen. Danke!
– Thomas Jacobs
27. Januar 2020 um 21:43 Uhr
Ich habe mit dieser Lösung eine doppelte Bildlaufleiste erhalten, aber ansonsten hat es funktioniert
– Ogglas
17. September 2021 um 15:43 Uhr
Rudi
1. Ändern Sie Ihren DOCTYPE in einen weniger strengen. Verwenden Sie kein XHTML; Es ist dumm. Verwenden Sie einfach den HTML 5-Doctype und gut ist:
<!doctype html>
2. Möglicherweise müssen Sie sicherstellen (abhängig vom Browser), dass das übergeordnete Element des Iframes eine Höhe hat. Und sein Elternteil. Und sein Elternteil. Etc:
html, body { height: 100%; }
Iwan
Das hat bei mir sehr gut funktioniert (nur wenn iframe-Content aus der gleiche Domäne):
<script type="text/javascript">
function calcHeight(iframeElement){
var the_height= iframeElement.contentWindow.document.body.scrollHeight;
iframeElement.height= the_height;
}
</script>
<iframe src="https://stackoverflow.com/questions/5867985/./page.html" onLoad="calcHeight(this);" frameborder="0" scrolling="no" id="the_iframe" width="100%" ></iframe>
Dies funktioniert nur, wenn die iframesrc befindet sich auf derselben Domäne wie die übergeordnete Seite, andernfalls erhalten Sie einen Fehler mit verweigerter Berechtigung contentWindow.document.
– Wolfjuk
4. November 2012 um 13:04 Uhr
Es hat ein wenig gedauert, bis dies in WordPress funktionierte, ich habe gerade einen Shortcode in meinem Plugin hinzugefügt. KLAPPT WUNDERBAR.
– Andy
10. März 2014 um 16:59 Uhr
Es klappt. Das Problem ist jedoch, dass die Höhe nicht bei jedem inneren Iframe-Postback neu berechnet wird. Gibt es eine Problemumgehung?
– Behrouz.M
2. August 2015 um 7:33 Uhr
khoa
body {
margin: 0; /* Reset default margin */
}
iframe {
display: block; /* iframes are inline by default */
background: #000;
border: none; /* Reset default border */
height: 100vh; /* Viewport-relative units */
width: 100vw;
}
<iframe></iframe>
Dies funktioniert nur, wenn die iframesrc befindet sich auf derselben Domäne wie die übergeordnete Seite, andernfalls erhalten Sie einen Fehler mit verweigerter Berechtigung contentWindow.document.
– Wolfjuk
4. November 2012 um 13:04 Uhr
Es hat ein wenig gedauert, bis dies in WordPress funktionierte, ich habe gerade einen Shortcode in meinem Plugin hinzugefügt. KLAPPT WUNDERBAR.
– Andy
10. März 2014 um 16:59 Uhr
Es klappt. Das Problem ist jedoch, dass die Höhe nicht bei jedem inneren Iframe-Postback neu berechnet wird. Gibt es eine Problemumgehung?
Sehen Sie, eigentlich habe ich nicht alle Browser installiert. Auch verschiedene Versionen.
– Kopenhagen
3. Mai 2011 um 10:22 Uhr
Sie können es auch in einem CSS-Validator versuchen.
– Ruben
3. Mai 2011 um 10:27 Uhr
Ja, das gibt keine Fehler/Warnungen … Aber meine Frage ist, wenden alle Browser tatsächlich 100% Höhe an?
– Kopenhagen
3. Mai 2011 um 10:29 Uhr
Für mich hat diese Antwort gut funktioniert: stackoverflow.com/questions/5272519/…
– Zied Hamdi
11. September 2014 um 18:34 Uhr