¿La altura del iframe es 100% compatible en todos los navegadores?
Estoy usando doctype como:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
En mi código de iframe, si digo:
<iframe src="xyz.pdf" width="100%" height="100%" />
Quiero decir, ¿tomará realmente la altura de la página restante (ya que hay otro marco en la parte superior con una altura fija de 50 px) ¿Es compatible con todos los principales navegadores (IE / Firefox / Safari)?
También con respecto a las barras de desplazamiento, aunque digo scrolling="no"
, puedo ver barras de desplazamiento deshabilitadas en Firefox ... ¿Cómo oculto completamente las barras de desplazamiento y establezco la altura del iframe automáticamente?
javascript
html
css
iframe
html-frames
testndtv
fuente
fuente
Respuestas:
Puede usar el conjunto de marcos como indica la respuesta anterior, pero si insiste en usar iFrames, los 2 ejemplos siguientes deberían funcionar:
Una alternativa:
Para ocultar el desplazamiento con 2 alternativas como se muestra arriba:
Hack con el segundo ejemplo:
Para ocultar las barras de desplazamiento del iFrame, se hace que el padre
overflow: hidden
oculte las barras de desplazamiento y se hace que el iFrame vaya hasta un 150% de ancho y alto, lo que obliga a las barras de desplazamiento fuera de la página y dado que el cuerpo no tiene barras de desplazamiento uno no puede esperar que el iframe exceda los límites de la página. ¡Esto oculta las barras de desplazamiento del iFrame con todo su ancho!fuente
3 enfoques para crear una pantalla completa
iframe
:Enfoque 1: longitudes de porcentaje de ventana gráfica
En los navegadores compatibles , puede usar longitudes de porcentaje de ventana gráfica como
height: 100vh
.Donde
100vh
representa la altura de la ventana gráfica, y también100vw
representa el ancho.Ejemplo aquí
Enfoque 2: posicionamiento fijo
Este enfoque es bastante sencillo. Simplemente configure el posicionamiento del
fixed
elemento y agregue aheight
/width
of100%
.Ejemplo aquí
Enfoque 3
Por este último método, acaba de establecer la
height
de losbody
/html
/iframe
elementos a100%
.Ejemplo aquí
fuente
display: block
hizo el truco para evitar tener una barra de desplazamiento doble1. Cambie su DOCTYPE a algo menos estricto. No use XHTML; Es una tontería. Solo usa el doctype HTML 5 y estarás bien:
2. Es posible que deba asegurarse (según el navegador) de que el padre del iframe tiene una altura. Y su padre. Y su padre. Etc .:
fuente
Me encontré con el mismo problema, estaba colocando un iframe en un div. Prueba esto:
La altura se establece en 100vh, que significa altura de ventana gráfica. Además, el ancho podría establecerse en 100vw, aunque es probable que tenga problemas si el archivo fuente responde (su marco se volverá muy ancho).
fuente
Esto funcionó muy bien para mí (solo si el contenido del iframe proviene del mismo dominio ):
fuente
iframe
src
está en el mismo dominio que la página principal; de lo contrario, recibirá un error de permiso denegadocontentWindow.document
.fuente
fuente
El siguiente trabajo probado
fuente
Adicional a la respuesta de Akshit Soota: es importante establecer explícitamente la altura de cada elemento padre, también de la tabla y la columna, si corresponde:
fuente
Primero agregas css
Este será el html:
fuente
Aquí hay un código conciso. Se basa en un método jquery para encontrar la altura actual de la ventana. Al cargar iFrame, establece que la altura del iframe sea la misma que la ventana actual. Luego, para manejar el cambio de tamaño de la página, la etiqueta del cuerpo tiene un controlador de eventos onresize que establece la altura del iframe cada vez que se cambia el tamaño del documento.
Aquí hay una muestra de trabajo: http://jsbin.com/soqeq/1/
fuente
Otra forma de construir pantalla completa fluida
iframe
:El video incorporado ocupa toda el
viewport
área cuando se carga la páginaEnfoque agradable para páginas de destino con video o cualquier contenido incrustado. Puede tener cualquier contenido adicional debajo del video incrustado, que se revela al desplazarse hacia abajo en la página.
Ejemplo:
CSS y código HTML.
fuente
http://embedresponsively.com/
Este es un gran recurso y ha funcionado muy bien las pocas veces que lo he usado. Crea el siguiente código ...
fuente
Solo esto funcionó para mí (pero para "mismo dominio"):
puedes usar:
o
fuente
Según https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe , ya no se permiten valores porcentuales. Pero lo siguiente funcionó para mí
Aunque
width:100%
funciona,height:100%
no funciona. Asíwindow.innerHeight
se ha utilizado. También puede usar píxeles CSS para la altura.El código de trabajo: Enlace sitio de trabajo: Enlace
fuente
fuente
Puede llamar a una función que calculará la altura del cuerpo del iframe cuando se carga el iframe:
fuente