¿Cuál es la mejor manera de hacer que un iframe se muestre de manera receptiva en una página?

Realmente no tiene acceso al tamaño del contenido dentro del iframe, por lo que su mejor opción es elegir una proporción que le gustaría que fuera el iframe y forzarlo. Por ejemplo, un gran caso de uso es el video incrustado, donde es probable que desee una relación de 16: 9.

Hay un gran truco útil para hacer esto, que usa un contenedor con la relación y luego hace que el iframe se posicione en tamaño absoluto y completo. Así es cómo:

.empotrar
{
posición: relativa;
relleno inferior: 56.25%;
}
iframe
{
posición: absoluta;
arriba: 0; izquierda: 0;
ancho: 100%; altura: 100%;
}

Aquí hay un Codepen (Wwwwvj)

Explicación rápida:

El fondo del relleno es una buena idea porque los porcentajes de relleno provienen del ancho del elemento. Entonces, en este caso, el relleno inferior será el 56.25% del ancho del elemento, es decir, 16: 9 o 9/16 * 100.

Esto nos da una caja. Luego hacemos que la posición del iframe sea absoluta y llenamos el cuadro.

Puede cambiar el valor de 56.25 a lo que necesite según el contenido con el que esté buscando llenarlo. Incluso puede cambiar ese valor de acuerdo con las consultas de los medios o vivir con javascript en respuesta a un evento. En todos los casos, la altura respetará la relación que ha definido.