j'ai intégré une vidéo YouTube sur mon site Web, mais le problème est que j'ai besoin que la hauteur s'ajuste automatiquement en fonction de la largeur et du rapport hauteur/largeur de la vidéo. Donc, si ma largeur est de 1280, ma hauteur devrait être de 720 si la vidéo est en 16: 9. J'ai essayé d'utiliser des unités 'VW' et 'VH' mais celles-ci ne semblent pas fonctionner avec un iframe. Ma largeur est déjà réglée proportionnellement.
Mon code est ci-dessous:
<iframe style="margin-right: 1%; margin-left: 1%;" width="98%" height="" src="https://www.youtube.com/embed/HwzQbfde-kE" frameborder="0"></iframe>
Vous pouvez le résoudre par ce code. Exemple de lien en direct
CSS:
.video-container {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
height: 0;
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
Exemple Html
<div class="video-container">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_TyJeKKQh-s?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
La question a été résolue par l'utilisateur de Reddit 'mr_bacon_pants' ici.
J'ai pu créer une taille iframe réactive en utilisant vw
sur les deux largeur et hauteur de l'élément de style parce que je connais la quantité de largeur horizontale que je veux que les éléments utilisent, puis je calcule la hauteur en fonction de la largeur et du fait que la vidéo est au format 16: 9. Si vous souhaitez que la vidéo consomme 45% de l'espace horizontal au-dessus des tailles d'écran de 893 pixels et 90% sinon, alors:
.embedded-video-16-9 {
width: 90vw;
height: 50.625vw; /* 90*9/16 */
margin-left: 5vw;
margin-right: 5vw;
}
@media (min-width: 893px) {
.embedded-video-16-9 {
width: 45vw;
height: 25.3125vw; /* 45*9/16 */
margin-left: 2vw;
margin-right: 2vw
}
}
Utilisé comme:
<iframe
class="embedded-video-16-9"
src="https://www.youtube.com/embed/_TyJeKKQh-s?controls=0"
frameborder="0"
allowfullscreen=""
></iframe>