"Tela inteira" <iframe>


163

Quando uso o seguinte código para criar um iframe:

<iframe src="mypage.html" style="border: 0; width: 100%; height: 100%">Your browser doesn't support iFrames.</iframe>

O iframe não percorre todo o caminho - uma "borda" branca de 10 px envolve o iframe. Como eu poderia resolver isso?

Aqui está uma imagem do problema:

Captura de tela do site

Respostas:


103

O bodytem uma margem padrão na maioria dos navegadores. Experimentar:

body {
    margin: 0;
}

na página com o iframe.


300

Para cobrir toda a janela de exibição, você pode usar:

<iframe src="mypage.html" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;">
    Your browser doesn't support iframes
</iframe>

E não se esqueça de definir as margens da página emoldurada como 0, por exemplo body { margin: 0; },. - Na verdade, isso não é necessário com esta solução.

Estou usando isso com êxito, com um display:noneJS adicional e para mostrá-lo quando o usuário clicar no controle apropriado.

Nota: Para preencher a área de visualização dos pais em vez de toda a janela de visualização, mude position:fixedpara position:absolute.


31
Esta resposta resolve como fazer iframe ocupar a tela inteira
Mark Ma

Você também pode usar comprimentos viewport-percentuais ..
Josh Crozier

2
A resposta aceita não funcionou para mim. isso fez. obrigado.
AlexVPerl

2
Ótima resposta! Simples, entre navegadores e definitivo.
Blankip #

Funciona perfeitamente com HTML 5
break7533

39

Você também pode usar os comprimentos de porcentagem da viewport para conseguir isso:

5.1.2 Comprimentos de porcentagem de viewport: as unidades 'vw', 'vh', 'vmin', 'vmax'

Os comprimentos de porcentagem da viewport são relativos ao tamanho do bloco inicial. Quando a altura ou largura do bloco inicial é alterada, elas são dimensionadas de acordo.

Onde 100vhrepresenta a altura da viewport e da mesma forma 100vwa largura.

Exemplo Aqui

body {
    margin: 0;            /* Reset default margin */
}
iframe {
    display: block;       /* iframes are inline by default */
    background: #000;
    border: none;         /* Reset default border */
    height: 100vh;        /* Viewport-relative units */
    width: 100vw;
}
<iframe></iframe>

Isso é suportado na maioria dos navegadores modernos - o suporte pode ser encontrado aqui .


8

Use frameborder="0". Aqui está um exemplo completo:

    <iframe src="mypage.htm" height="100%" width="100%" frameborder="0">Your browser doesnot support iframes<a href="myPageURL.htm"> click here to view the page directly. </a></iframe>


5

Impossível dizer sem ver um exemplo ao vivo, mas tente dar aos dois corpos margin: 0px


@ Trufa pode ser a margem, mas também pode ser outra coisa. É melhor usar a exibição "Layout" do Firebug para descobrir
Pekka

2

Você poderia tentar frameborder=0.


Obrigado, mas isso é "dentro do iframe". Eu precisava modificar a parte externa (eu não sabia até a resposta do @kevingessner) obrigado!
Trufa

2

Adicionar isso ao seu iframe pode resolver o problema:

frameborder="0"  seamless="seamless"

1
@FABBRj Ótimo, eu poderia ajudar: D
pentexnyx


-2

Use este código em vez dele:

    <frameset rows="100%,*">
        <frame src="-------------------------URL-------------------------------">
        <noframes>
            <body>
                Your browser does not support frames. To wiew this page please use supporting browsers.
            </body>
        </noframes>
    </frameset>

7
Não há mais suporte no HTML5
Hari Karam Singh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.