Wird iframe height = 100% in allen Browsern unterstützt?
Ich benutze doctype als:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Wenn ich in meinem Iframe-Code sage:
<iframe src="xyz.pdf" width="100%" height="100%" />
Ich meine, wird es tatsächlich die Höhe der verbleibenden Seite annehmen (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"
, kann ich in Firefox deaktivierte Bildlaufleisten sehen ... Wie kann ich Bildlaufleisten vollständig ausblenden und die Iframe-Höhe automatisch einstellen?
javascript
html
css
iframe
html-frames
testndtv
quelle
quelle
Antworten:
Sie können Frameset als vorherigen Antwortstatus verwenden. Wenn Sie jedoch darauf bestehen, iFrames zu verwenden, sollten die beiden folgenden Beispiele funktionieren:
Eine Alternative:
So verbergen Sie das Scrollen mit 2 Alternativen wie oben gezeigt:
Hack mit dem zweiten Beispiel:
Um die Bildlaufleisten des iFrame auszublenden, muss das übergeordnete
overflow: hidden
Bildlaufleisten ausgeblendet werden, und der iFrame wird auf eine Breite und Höhe von bis zu 150% eingestellt, wodurch die Bildlaufleisten außerhalb der Seite verschoben werden und der Körper keine Bildlaufleisten hat Man kann nicht erwarten, dass der Iframe die Grenzen der Seite überschreitet. Dadurch werden die Bildlaufleisten des iFrame in voller Breite ausgeblendet!quelle
3 Ansätze zum Erstellen eines Vollbilds
iframe
:Ansatz 1 - Länge des Ansichtsfensters in Prozent
In unterstützten Browsern können Sie prozentuale Längen von Ansichtsfenstern verwenden, z
height: 100vh
.Wobei
100vh
die Höhe des Ansichtsfensters und ebenfalls100vw
die Breite darstellt.Beispiel hier
Ansatz 2 - Feste Positionierung
Dieser Ansatz ist ziemlich einfach. Stellen Sie einfach die Position des
fixed
Elements ein und fügen Sie einheight
/width
von hinzu100%
.Beispiel hier
Ansatz 3
Für diese letzte Methode setzen Sie einfach die
height
derbody
/html
/iframe
Elemente auf100%
.Beispiel hier
quelle
display: block
hat den Trick getan, um zu verhindern, dass eine doppelte Bildlaufleiste vorhanden ist1. Ändern Sie Ihren DOCTYPE in einen weniger strengen. Verwenden Sie kein XHTML. Es ist dumm. Verwenden Sie einfach den HTML 5-Doctype und Sie sind gut:
2. Möglicherweise müssen Sie sicherstellen (abhängig vom Browser), dass das übergeordnete Element des Iframes eine Höhe hat. Und seine Eltern. Und seine Eltern. Etc:
quelle
Ich stieß auf das gleiche Problem, ich zog einen Iframe in einen Div. Versuche dies:
Die Höhe ist auf 100 VH eingestellt, was für die Höhe des Ansichtsfensters steht. Die Breite kann auch auf 100 VW eingestellt werden, obwohl Sie wahrscheinlich auf Probleme stoßen, wenn die Quelldatei reagiert (Ihr Frame wird sehr breit).
quelle
Dies hat bei mir sehr gut funktioniert (nur wenn iframe-Inhalte von derselben Domain stammen ):
quelle
iframe
src
Datei in derselben Domäne wie die übergeordnete Seite befindet. Andernfalls wird der Fehler "Berechtigung verweigert" angezeigtcontentWindow.document
.quelle
quelle
Die folgenden Tests funktionieren
quelle
Zusätzlich zur Antwort von Akshit Soota: Es ist wichtig, die Höhe jedes übergeordneten Elements explizit festzulegen, auch der Tabelle und Spalte, falls vorhanden:
quelle
Sie fügen zuerst CSS hinzu
Dies wird das HTML sein:
quelle
Hier ist ein prägnanter Code. Es basiert auf einer Abfragemethode, um die aktuelle Fensterhöhe zu ermitteln. Beim Laden von iFrame wird die Höhe des Iframes auf das aktuelle Fenster eingestellt. Um die Größenänderung der Seite zu handhaben, verfügt das Body-Tag über einen Ereignishandler für die Größenänderung, der die Höhe des Iframes festlegt, wenn die Größe des Dokuments geändert wird.
Hier ist ein Arbeitsbeispiel: http://jsbin.com/soqeq/1/
quelle
Eine andere Möglichkeit, flüssiges Vollbild zu erstellen
iframe
:Eingebettetes Video füllt sich vollständig
viewport
beim Laden der Seite den Bereich ausNetter Ansatz für Zielseiten mit Videos oder eingebetteten Inhalten. Sie können unten zusätzlichen Inhalt des eingebetteten Videos haben, der beim Scrollen der Seite nach unten angezeigt wird.
Beispiel:
CSS- und HTML-Code.
quelle
http://embedresponsively.com/
Dies ist eine großartige Ressource und hat sehr gut funktioniert, die wenigen Male, die ich sie verwendet habe. Erstellt den folgenden Code ....
quelle
Nur das hat bei mir funktioniert (aber bei "same-domain"):
Sie können entweder verwenden:
oder
quelle
Gemäß https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe sind Prozentwerte nicht mehr zulässig. Aber das Folgende hat bei mir funktioniert
Funktioniert zwar,
width:100%
funktioniertheight:100%
aber nicht. Sowindow.innerHeight
wurde verwendet. Sie können auch CSS-Pixel für die Höhe verwenden.Arbeitscode: Link Arbeitsort: Link
quelle
quelle
Sie können eine Funktion aufrufen, die die Körpergröße des Iframes berechnet, wenn der Iframe geladen wird:
quelle