Eu estava lendo esta postagem de stackoverflow intitulada "Você pode fazer um iFrame responsivo?", E um dos comentários / respostas me levou a esse jfiddle.
Mas quando tentei implementar o HTML e CSS para atender às minhas necessidades, não tive os mesmos resultados / sucesso. Criei meu próprio violino JS para mostrar como ele não funciona da mesma maneira para mim. Tenho certeza de que tem algo a ver com o tipo de iFrame que estou usando (por exemplo, as imagens do produto também precisam ser responsivas ou algo assim?)
Minha principal preocupação é que, quando os leitores do meu blog visitam o meu blog no iPhone, não quero que tudo esteja na largura x (100% para todo o meu conteúdo) e o iFrame se comporta mal e é o único elemento mais amplo (e, portanto, fica além de todo o outro conteúdo - se isso faz sentido ??)
Enfim, alguém sabe por que não está funcionando? obrigado.
Aqui está o HTML e CSS do MY JSFIDDLE (se você não quiser clicar no link):
<div class="wrapper">
<div class="h_iframe">
<!-- a transparent image is preferable -->
<img class="ratio" src="http://www.brightontheday.com/wp-content/uploads/2013/07/placeholder300.png" />
<iframe frameborder='0' height='465px' width='470px' scrolling='no' src='http://currentlyobsessed.me/api/v1/get_widget?wid=30&blog=Brighton+The+Day&widgetid=38585'
frameborder="0" allowfullscreen></iframe>
</div>
</div>
e aqui está o CSS que acompanha:
.wrapper {
width: 100%;
height: 100%;
margin: 0 auto;
background: #ffffff;
}
.h_iframe {
position: relative;
}
.h_iframe .ratio {
display: block;
width: 100%;
height: auto;
}
.h_iframe iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
fonte
Respostas:
Apresento a você a solução The Incredible Singing Cat =)
jsFiddle: http://jsfiddle.net/omarjuvera/8zkunqxy/2/
Ao mover a barra da janela, você verá o iframe para redimensionar responsivamente
Como alternativa, você também pode usar a técnica da razão intrínseca - esta é apenas uma opção alternativa da mesma solução acima (tomate, tomate)
fonte
Tente usar esse código para torná-lo responsivo
fonte
Encontrei uma solução de Dave Rupert / Chris Coyier. No entanto, eu queria disponibilizar o pergaminho, então criei isso:
// HTML
// CSS
fonte
Você pode usar esses truques mencionados neste site http://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php .
É muito útil e fácil de entender. Tudo o que você precisa criar
Aqui está o seu violão js editado para demonstração.
fonte
confira esta solução ... funciona para mim >> https://jsfiddle.net/y49jpdns/
fonte
fonte
DA está certo. No seu próprio violino, o iframe é realmente responsivo. Você pode verificar isso no firebug, verificando o tamanho da caixa do iframe. Mas alguns elementos dentro desse iframe não respondem, então eles se destacam quando o tamanho da janela é pequeno. Por exemplo,
div#products-post-wrapper
a largura é 8800px.fonte
Os iFrames PODEM ser TOTALMENTE responsivos, mantendo sua proporção com uma pequena técnica de CSS chamada Intrinsic Ratio Technique . Eu escrevi uma postagem no blog abordando esta pergunta especificamente: https://benmarshall.me/responsive-iframes/
Esta essência é:
BOOM, totalmente responsivo!
fonte
iframes não podem ser responsivos. Você pode tornar o contêiner de iframe responsivo, mas não o conteúdo que está sendo exibido, pois é uma página da Web que possui sua própria altura e largura definidas.
O exemplo de link de violino funciona porque está exibindo um link de vídeo do youtube incorporado que não possui um tamanho declarado.
fonte
Simples, com CSS:
Observe : mas isso não tornará o conteúdo dentro dele responsivo!
2ª EDIÇÃO:: Existem dois tipos de iframes responsivos, dependendo do conteúdo interno:
aquele em que a parte interna do iframe contém apenas um vídeo ou uma imagem ou muitos posicionados verticalmente, para os quais as duas linhas acima do código CSS são quase completamente suficientes e a proporção tem significado ...
e o outro é o:
tipo de conteúdo do formulário de contato / registro , onde não é necessário manter a proporção, mas para impedir que a barra de rolagem apareça e o conteúdo que está subindo no contêiner. No celular, você não vê a barra de rolagem, basta rolar até ver o conteúdo (do iframe). É claro que você fornece pelo menos algum tipo de
height
, para adaptar a altura do conteúdo ao espaço vertical que ocorre em uma tela mais estreita - com consultas de mídia, como, por exemplo:fonte
Percebi que a postagem de leowebdev parecia funcionar do meu lado; no entanto, ela derrubou dois elementos do site que estou tentando criar: a rolagem e o rodapé.
A rolagem que voltei adicionando um
scrolling="yes"
código de incorporação ao iframe.Não tenho certeza se o rodapé é nocauteado automaticamente por causa da capacidade de resposta ou não, mas espero que alguém saiba a resposta.
fonte
Remova a altura e largura do iframe especificadas em pixels e use a porcentagem
fonte
fonte
me resolveu ajustando o código do @Connor Cushion Mulhall por
fonte
Devido a restrições de segurança do navegador, você deverá incluir o arquivo Javascript na página "pai" e na página incorporada por meio de um iframe ("filho").
Na versão atual, a página pai deve incluir a versão mais recente do jQuery. Não há dependência do jQuery para a funcionalidade da página filha. Nas versões futuras, gostaríamos de remover também a dependência do jQuery para o pai.
Nota: o parâmetro "xdomain" na chamada de função makeResponsive () é opcional.
Amostra de código<!-- Activate responsiveness in the "child" page -->
<script src="/js/jquery.responsiveiframe.js"></script>
<script>
var ri = responsiveIframe();
ri.allowResponsiveEmbedding();
</script>
<!-- Corresponding code in the "parent" page -->
<script src="/js/jquery.js"></script>
<script src="/js/jquery.responsiveiframe.js"></script>
<script>
;(function($){
$(function(){
$('#myIframeID').responsiveIframe({ xdomain: '*'});
});
})(jQuery);
</script>
fonte
Com a seguinte marcação:
O CSS a seguir torna o vídeo em largura total e 16: 9:
fonte
Estou pesquisando mais sobre este tópico e, finalmente, recebo uma boa resposta. Você pode tentar como este :
fonte
A melhor solução para tornar um "iframe" responsivo e se encaixar em todas as telas de dispositivos, basta aplicar esse código (funcionando muito bem nos sites de jogos):
Se você estiver procurando por um contêiner de jogos responsivo adequado para todos os dispositivos, aplique esse código que usa consultas CSS @media avançadas.
fonte
IFrame totalmente responsivo para situações em que a proporção é desconhecida e o conteúdo no iFrame é totalmente responsivo.
Nenhuma das soluções acima funcionou para a minha necessidade, que era criar um iFrame totalmente responsivo com conteúdo dinâmico totalmente responsivo. Manter qualquer tipo de proporção não era uma opção.
Código:
Também criei um tempo limite para que, no redimensionamento, a função não fosse chamada um milhão de vezes.
fonte
fonte
Confira este código completo. você pode usar os contêineres em porcentagens como no código abaixo:
Confira esta página de demonstração.
fonte
Esta solução funcionou para mim. E eu achei mais fácil. https://jameshfisher.com/2017/08/30/how-do-i-make-a-full-width-iframe/
fonte