Iframe height = 100% suportado em todos os navegadores?
Estou usando doctype como:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
No meu código iframe, se eu disser:
<iframe src="xyz.pdf" width="100%" height="100%" />
Quero dizer, ele realmente terá a altura da página restante (já que há outro quadro no topo com altura fixa de 50px) Isso é suportado nos principais navegadores (IE / Firefox / Safari)?
Também em relação às barras de rolagem, mesmo que eu diga scrolling="no"
, posso ver barras de rolagem desativadas no Firefox ... Como ocultar completamente as barras de rolagem e definir a altura do iframe automaticamente?
javascript
html
css
iframe
html-frames
testndtv
fonte
fonte
Respostas:
Você pode usar o conjunto de quadros como indica a resposta anterior, mas se insistir em usar os iFrames, os 2 exemplos a seguir deverão funcionar:
Uma alternativa:
Para ocultar a rolagem com 2 alternativas, como mostrado acima:
Corte com o segundo exemplo:
Para ocultar as barras de rolagem do iFrame, o pai é feito
overflow: hidden
para ocultar as barras de rolagem e o iFrame é feito com até 150% de largura e altura, o que força as barras de rolagem fora da página e como o corpo não possui barras de rolagem não se pode esperar que o iframe exceda os limites da página. Isso oculta as barras de rolagem do iFrame com largura total!fonte
3 abordagens para criar uma tela cheia
iframe
:Abordagem 1 - Comprimentos de porcentagem da janela de visualização
Nos navegadores suportados , você pode usar comprimentos de porcentagem da porta de visualização como
height: 100vh
.Onde
100vh
representa a altura da viewport e da mesma forma100vw
a largura.Exemplo Aqui
Abordagem 2 - Posicionamento fixo
Essa abordagem é bastante direta. Basta definir o posicionamento do
fixed
elemento e adicionar umheight
/width
de100%
.Exemplo Aqui
Abordagem 3
Para este último método, basta definir o
height
dosbody
/html
/iframe
elementos para100%
.Exemplo Aqui
fonte
display: block
fez o truque para evitar ter uma barra de rolagem dupla1. Altere seu DOCTYPE para algo menos rigoroso. Não use XHTML; é bobagem. Basta usar o doctype HTML 5 e você é bom:
2. Você pode precisar se certificar (depende do navegador) de que o pai do iframe tem altura. E seu pai. E seu pai. Etc:
fonte
Encontrei o mesmo problema, estava colocando um iframe em uma div. Tente o seguinte:
A altura é definida como 100vh, que significa altura da janela de exibição. Além disso, a largura pode ser definida como 100vw, embora você provavelmente tenha problemas se o arquivo de origem for responsivo (seu quadro ficará muito amplo).
fonte
Isso funcionou muito bem para mim (apenas se o conteúdo do iframe vier do mesmo domínio ):
fonte
iframe
src
estiver no mesmo domínio da página pai, caso contrário, você receberá um erro de permissão negadacontentWindow.document
.fonte
fonte
O seguinte trabalho testado
fonte
Adicional à resposta de Akshit Soota: é importante e definir explicitamente a altura de cada elemento pai, também da tabela e coluna, se houver:
fonte
Você primeiro adiciona css
Este será o html:
fonte
Aqui está um código conciso. Ele se baseia em um método jquery para encontrar a altura atual da janela. Ao carregar o iFrame, define a altura do iframe como a mesma da janela atual. Em seguida, para lidar com o redimensionamento da página, a tag body possui um manipulador de eventos de redimensionamento que define a altura do iframe sempre que o documento é redimensionado.
aqui está uma amostra de trabalho: http://jsbin.com/soqeq/1/
fonte
Outra maneira de criar uma tela cheia fluida
iframe
:O vídeo incorporado preenche todo
viewport
área quando a página é carregadaBoa abordagem para páginas de destino com vídeo ou qualquer conteúdo incorporado. Você pode ter qualquer conteúdo adicional abaixo do vídeo incorporado, que é revelado ao rolar a página para baixo.
Exemplo:
Código CSS e HTML.
fonte
http://embedresponsively.com/
Este é um ótimo recurso e funcionou muito bem, nas poucas vezes em que o usei. Cria o seguinte código ....
fonte
Só isso funcionou para mim (mas para "mesmo domínio"):
você pode usar:
ou
fonte
Conforme https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe , os valores percentuais não são mais permitidos. Mas o seguinte funcionou para mim
Embora
width:100%
funcione,height:100%
não funciona. Entãowindow.innerHeight
tem sido usado. Você também pode usar pixels css para altura.Código de trabalho: Link Site de trabalho: Link
fonte
fonte
Você pode chamar uma função que irá calcular o peso do corpo do iframe quando o iframe for carregado:
fonte