Tengo un video de YouTube incrustado en nuestro sitio web y cuando reduzco el tamaño de la pantalla a tableta o teléfono, deja de reducirse a alrededor de 560 píxeles de ancho. ¿Es esto estándar para los videos de YouTube o hay algo que puedo agregar al código para hacerlo más pequeño?
youtube
responsive-design
embed
MattM
fuente
fuente
Respuestas:
Puede hacer que los videos de YouTube respondan con CSS. Envuelva el iframe en un div con la clase de "videowrapper" y aplique los siguientes estilos:
El .videowrapper div debe estar dentro de un elemento sensible. El relleno del .videowrapper es necesario para evitar que el video se colapse. Puede que tenga que ajustar los números dependiendo de su diseño.
fuente
56.25%
y25px
puede leerse en alistapart.com/article/creating-intrinsic-ratios-for-videopadding-bottom: 56.25%
: Para crear una relación de 16: 9, debemos dividir 9 entre 16 (0.5625 o 56.25%).padding-top: 25px
: Para evitar problemas con el modelo de caja rota (IE5 o IE6 en modo peculiar), utilizamos padding-top en lugar de altura para crear espacio para el cromo.Si está utilizando Bootstrap, también puede usar una inserción receptiva. Esto automatizará completamente la capacidad de respuesta de los videos.
http://getbootstrap.com/components/#responsive-embed
Hay un código de ejemplo a continuación.
fuente
col-sm-8 col-sm-offset-2
Usé el CSS en la respuesta aceptada aquí para mis videos receptivos de YouTube: funcionó muy bien hasta que YouTube actualizó su sistema a principios de agosto de 2015. Los videos en YouTube tienen las mismas dimensiones, pero por cualquier razón, el CSS en la respuesta aceptada ahora buzones todos nuestros videos. Bandas negras en la parte superior e inferior.
He jugado con los tamaños y me decidí a deshacerme del relleno superior y cambiar el relleno inferior a
56.45%
. Parece verse bien.fuente
Solución única de Javascript refinada para YouTube y Vimeo usando jQuery.
Fácil de usar con solo incrustar:
O con un marco de estilo receptivo como Bootstrap.
width="16" height="9"
)*=
selector de subcadena jQuery en lugar del inicio de la cadena^=
Gracias a @Dampas por el punto de partida. https://stackoverflow.com/a/33354009/1011746
fuente
Este es un hilo viejo, pero he encontrado una nueva respuesta en https://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php
El problema con la solución anterior es que necesita tener una división especial alrededor del código de video, que no es adecuado para la mayoría de los usos. Así que aquí hay una solución de JavaScript sin div especial.
fuente
La solución de @ magi182 es sólida, pero carece de la capacidad de establecer un ancho máximo. Creo que es necesario un ancho máximo de 640 px porque, de lo contrario, la miniatura de YouTube se ve pixelada.
Mi solución con dos envoltorios funciona de maravilla para mí:
También configuré el relleno inferior en el envoltorio interno al 50%, porque con el 56% de @ magi182, apareció una barra negra en la parte superior e inferior.
fuente
Con créditos a la respuesta anterior https://stackoverflow.com/a/36549068/7149454
Compatible con Boostrap, ajuste el ancho de su contenedor (300 px en este ejemplo) y listo:
fuente
Vea la esencia completa aquí y viva el ejemplo aquí .
Se llama a resizeHeroVideo solo después de que el reproductor de Youtube se haya cargado completamente (en la carga de la página no funciona), y cada vez que se cambia el tamaño de la ventana del navegador. Cuando se ejecuta, calcula la altura y el ancho del iframe y asigna los valores apropiados manteniendo la relación de aspecto correcta. Esto funciona si la ventana cambia de tamaño horizontal o verticalmente.
fuente
Bien, parece grandes soluciones.
¿Por qué no agregar
width: 100%;
directamente en su iframe? ;)Entonces su código se vería algo así
<iframe style="width: 100%;" ...></iframe>
Pruebe esto, funcionará como funcionó en mi caso.
¡Disfrutar! :)
fuente
Hago esto con css simple de la siguiente manera
CÓDIGO HTML
CÓDIGO CSS
fuente