Weiß jemand, wie man die Größe des HTML5-Videoplakats so ändert, dass es genau den Abmessungen des Videos selbst entspricht?
Hier ist eine jsfiddle, die das Problem zeigt: http://jsfiddle.net/zPacg/7/
Hier ist dieser Code:
HTML:
<video controls width="100%" height="100%" poster="http://www.wpclipart.com/blanks/buttons/glossy_buttons/glossy_button_blank_orange_rectangle.png">
<source src="http://demo.inwebson.com/html5-video/iceage4.mp4" type="video/mp4" />
<source src="http://demo.inwebson.com/html5-video/iceage4.ogg" type="video/ogg" />
<source src="http://demo.inwebson.com/html5-video/iceage4.webm" type="video/webm" />
</video>
CSS:
video{
border:1px solid red;
}
Beachten Sie, dass das orangefarbene Rechteck nicht auf den roten Rand des Videos skaliert.
Das Hinzufügen des folgenden CSS funktioniert auch nicht, da das Video zusammen mit dem Poster neu skaliert wird:
video[poster]{
height:100%;
width:100%;
}
css
html
attributes
html5-video
tim peterson
quelle
quelle
poster
den Link, den du gesendet hast. Können Sie mir zeigen, wie das CSS für das aussieht, worüber Sie sprechen, dh "-webkit media style
"? dankeAntworten:
Sie können ein transparentes Posterbild in Kombination mit einem CSS-Hintergrundbild verwenden, um dies zu erreichen ( Beispiel ). Um einen Hintergrund auf die Höhe und Breite eines Videos zu strecken, müssen Sie jedoch ein absolut positioniertes
<img>
Tag verwenden ( Beispiel ).Es ist auch möglich, in Browsern zu setzen
background-size
,100% 100%
die unterstützenbackground-size
( Beispiel ).Aktualisieren
Ein besserer Weg, dies zu tun, wäre die Verwendung der
object-fit
CSS-Eigenschaft, wie @Lars Ericsson vorschlägt.Verwenden
Wenn Sie nicht die Teile des Bildes anzeigen möchten, die nicht zum Seitenverhältnis des Videos passen, und
um das Bild an das Seitenverhältnis Ihres Videos anzupassen
Beispiel
quelle
no-repeat
das Hintergrundbild bearbeitet. Geben Sie mir für die andere Lösung einen Moment Zeit, um dies zu klären.z-index
Bild so zu ändern, dass das Video sichtbar ist, wenn Sie es abspielen.Abhängig davon, auf welche Browser Sie abzielen, können Sie die Objektanpassungseigenschaft verwenden, um Folgendes zu lösen:
oder vielleicht
fill
ist es das, wonach du suchst. Wird noch für IE in Betracht gezogen .quelle
object-fit: initial
hat es für mich getan.video{object-fit: cover;}
?Oder Sie können einfach das
preload="none"
Attribut verwenden, um den VIDEO-Hintergrund sichtbar zu machen. Und Sie könnenbackground-size: cover;
hier verwenden.quelle
Ich habe damit herumgespielt und alle Lösungen ausprobiert. Schließlich war die Lösung, für die ich mich entschieden habe, ein Vorschlag des Inspektors von Google Chrome. Wenn Sie dies zu Ihrem CSS hinzufügen, hat es bei mir funktioniert:
quelle
Meine Lösung kombiniert die Antworten von user2428118 und Veiko Jääger und ermöglicht so das Vorladen, ohne dass ein separates transparentes Bild erforderlich ist. Wir verwenden stattdessen ein Base64-codiertes 1px-transparentes Bild.
quelle
object-fit
verhindert nicht die wilden Größenverzerrungenposter
, die unter Android auftreten, während der Inhalt noch geladen wird.Ich bin auf diese Idee gekommen und sie funktioniert perfekt. Okay, im Grunde wollen wir das erste Bild des Videos vom Display entfernen und dann die Größe des Posters auf die tatsächliche Größe des Videos ändern. Wenn wir dann die Dimensionen festlegen, haben wir eine dieser Aufgaben erledigt. Dann bleibt nur noch einer übrig. Die einzige Möglichkeit, den ersten Frame loszuwerden, besteht darin, ein Poster zu definieren. Wir werden dem Video jedoch ein gefälschtes Video geben, das es nicht gibt. Dies führt zu einer leeren Anzeige mit transparentem Hintergrund. Dh der Hintergrund unseres Eltern-Div wird sichtbar sein.
Einfach zu bedienen, funktioniert jedoch möglicherweise nicht mit allen Webbrowsern, wenn Sie die Dimension des Hintergrunds des Div auf die Dimension des Videos ändern möchten, da mein Code "Hintergrundgröße" verwendet.
HTML / HTML5:
CSS:
quelle
Startseite
Füllen
quelle
Ich hatte ein ähnliches Problem und habe es einfach behoben, indem ich ein Bild mit dem gleichen Seitenverhältnis wie mein Video (16: 9) erstellt habe. Meine Breite ist auf dem Video-Tag auf 100% eingestellt und jetzt passt das Bild (320 x 180) perfekt. Hoffentlich hilft das!
quelle
Sie können die Bildgröße nach dem Generieren des Daumens ändern
quelle
Sie können Poster verwenden, um Bilder anstelle von Videos auf Mobilgeräten anzuzeigen (oder auf Geräten, die die Funktion zur automatischen Wiedergabe von Videos nicht unterstützen). Weil mobile Geräte die Video-Autoplay-Funktionalität nicht unterstützen.
Jetzt können Sie einfach das Posterattribut, das sich im Video-Tag für mobile Geräte befindet, per Medienabfrage formatieren.
quelle
quelle
Das hat funktioniert
Und das CSS
quelle
quelle