Ich habe eine Möglichkeit gefunden, dies mit CSS zu tun, aber man muss vorsichtig sein, da es sich je nach dem Ablauf der eigenen Website ändern kann. Ich habe es so gemacht, dass ich ein Video mit einem konstanten Seitenverhältnis in einen Teil meiner Website mit fließender Breite einbetten konnte.
Nehmen wir an, Sie haben ein eingebettetes Video wie dieses:
<object>
<param ... /><param ... />...
<embed src="..." ...</embed>
</object>
Sie könnten dann all dies in ein div mit der Klasse "Video" einfügen. Diese Videoklasse wird wahrscheinlich das fließende Element in Ihrer Website sein, so dass es an sich keine direkten Höhenbeschränkungen hat, aber wenn Sie die Größe des Browsers ändern, wird es sich in der Breite entsprechend dem Fluss der Website ändern. Dies ist wahrscheinlich das Element, in das Sie Ihr eingebettetes Video unter Beibehaltung eines bestimmten Seitenverhältnisses einfügen möchten.
Dazu habe ich ein Bild vor das eingebettete Objekt innerhalb der Klasse "Video" gesetzt.
!!! Wichtig ist, dass das Bild das richtige Seitenverhältnis hat, das Sie beibehalten wollen. Vergewissern Sie sich auch, dass die Größe des Bildes MINDESTENS so groß ist wie die kleinste Größe, die das Video (oder was auch immer Sie für ein Seitenverhältnis beibehalten wollen) nach Ihrem Layout haben soll. Dadurch werden mögliche Probleme bei der Auflösung des Bildes vermieden, wenn es prozentual verkleinert wird. Wenn Sie zum Beispiel ein Seitenverhältnis von 3:2 beibehalten wollen, sollten Sie nicht einfach ein Bild im Format 3 x 2 Pixel verwenden. Das kann unter Umständen funktionieren, aber ich habe es nicht getestet, und es wäre wahrscheinlich eine gute Idee, es zu vermeiden.
Wahrscheinlich haben Sie bereits eine solche Mindestbreite für fließende Elemente auf Ihrer Website festgelegt. Wenn nicht, ist es eine gute Idee, dies zu tun, um zu vermeiden, dass Elemente abgeschnitten werden oder sich überlappen, wenn das Browserfenster zu klein wird. Besser ist es, an einer bestimmten Stelle eine Bildlaufleiste einzubauen. Die kleinste Breite, die eine Webseite haben sollte, liegt bei etwa 600 Pixeln (einschließlich aller Spalten mit fester Breite), da die Bildschirmauflösungen nicht kleiner werden, es sei denn, es handelt sich um telefonfreundliche Seiten. !!!
Ich verwende ein völlig transparentes png, aber ich glaube nicht, dass es am Ende eine Rolle spielt, wenn man es richtig macht. Etwa so:
<div class="video">
<img class="maintainaspectratio" src="maintainaspectratio.png" />
<object>
<param ... /><param ... />...
<embed src="..." ...</embed>
</object>
</div>
Jetzt sollten Sie in der Lage sein, CSS ähnlich wie das folgende hinzuzufügen:
div.video { ...; position: relative; }
div.video img.maintainaspectratio { width: 100%; }
div.video object { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }
div.video embed {width: 100%; height: 100%; }
Stellen Sie sicher, dass Sie auch alle expliziten Höhen- oder Breitenangaben innerhalb der Objekt- und Einbettungs-Tags entfernen, die normalerweise mit kopiertem/eingefügtem Einbettungscode einhergehen.
Die Funktionsweise hängt von den Positionseigenschaften des Elements der Videoklasse und dem Element ab, das ein bestimmtes Seitenverhältnis beibehalten soll. Es macht sich die Art und Weise zunutze, wie ein Bild sein richtiges Seitenverhältnis beibehält, wenn die Größe in einem Element geändert wird. Es sagt, was auch immer in Video-Klasse-Element, um in vollem Umfang nutzen die Immobilien durch das dynamische Bild durch zwingt seine Breite / Höhe auf 100 % der Video-Klasse-Element wird durch das Bild angepasst.
Ziemlich cool, oder?
Vielleicht müssen Sie ein bisschen damit herumspielen, damit es mit Ihrem eigenen Design funktioniert, aber für mich funktioniert es überraschend gut. Das allgemeine Konzept ist vorhanden.