Wie man zum Beispiel Bilder in ein responsives Design einbindet ist schnell erklärt, hier eine recht gängige Möglichkeit:
.inhalt img {width: 100%; max-width: 60rem; height: auto;}
Diese Vorgehensweise funktioniert leider nicht bei iframes
und somit auch nicht bei YouTube-Videos. Die Breite ist nicht das Problem sondern die Höhe, da bei iframes
die CSS-Deklaration height: auto;
keine Wirkung zeigt. Hier muss man anders vorgehen.
Für diesen Beitrag habe ich auch ein Screencast erstellt, mit welchem man die Problematik sehr gut erkennen kann. Aber zurück zum Problem, die Lösung besteht darin, dass man den Einbettungscode des YouTube-Videos, also das iframe
in ein extra div
-Block platziert. Diesen div
-Block positioniert man dann relativ und das iframe innerhalb wird dann absolut positioniert. Hier erst einmal das HTML:
<div class="video-block" title="Kampf gegen ein Nazgûl im Westen von Gondor. Aufgenommen in Herr der Ringe Online.">
<iframe width="530" height="298" src="https://www.youtube.com/embed/KdI7EQsmlJs" frameborder="0" allowfullscreen></iframe>
</div>
… und nun der passende CSS-Code dazu:
.video-block {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
height: 0;
overflow: hidden;
width: 100%; height: auto;}
.video-block iframe {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;}
Das Ganze gibt es auch als Gist auf Github und als ein CodePen.
Bei der Einbindung von YouTube in WordPress gibt es eine Besonderheit, die man der oEmbed-Funktion zu verdanken hat. Mann kann die Videos dann entweder so einbinden:
<div class="video-block">
<iframe width="530" height="298" src="https://www.youtube.com/embed/KdI7EQsmlJs" frameborder="0" allowfullscreen></iframe>
</div>
… also den Einbettungs-Code von YouTube in den div
-Block einfügen oder man nutzt innerhalb des div
-Blocks die oEmbed-Funktionalität aus:
<div class="video-block">
https://youtu.be/pfad-zum-video
</div>
… und fügt lediglich die URL des Videos innerhalb des div
-Blocks ein.
Auf das Ganze hat mich der Artikel von Sven Wolfermann gebracht. Sein Artikel geht noch weiter und handelt auch iframes
mit dynamischen Höhen ab.
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
Danke für die Lösung!
Mit iFrames habe ich mich in dieser Hinsicht auch schon “rumgeschlagen”, das ganze aber dann -bis jetzt- auf Eis gelegt.
Mit deiner Anleitung funktioniert es jetzt prima.
Hmmm … wusste gar nicht, das sowas möglich ist ;D Super Lösung ;D