Я читал этот пост, посвященный стеку, под названием «Можете ли вы сделать iFrame отзывчивым?», И один из комментариев / ответов привел меня к этому jfiddle.
Но когда я попытался реализовать HTML и CSS, чтобы удовлетворить свои потребности, у меня не было таких же результатов / успеха. Я создал свою собственную скрипку JS, чтобы показать вам, как она работает не для меня. Я уверен, что это как-то связано с типом iFrame, который я использую (например, изображения продукта могут быть слишком адаптивными или что-то в этом роде?)
Моя главная проблема заключается в том, что когда мои читатели блога посещают мой блог на своем iPhone, я не хочу, чтобы все было на ширине х (100% для всего моего контента), а затем iFrame плохо себя ведет и является единственным элементом шире (и, следовательно, придерживается мимо всего другого контента - если это имеет смысл ??)
В любом случае, кто-нибудь знает, почему это не работает? Спасибо.
вот HTML и CSS МОЕГО JSFIDDLE (если вы не хотите нажимать на ссылку):
<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>
и вот сопровождающий CSS:
.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%;
}
источник
Ответы:
Представляю вам решение Невероятной Поющей Кошки =)
jsFiddle: http://jsfiddle.net/omarjuvera/8zkunqxy/2/
При перемещении панели окна вы увидите, если iframe реагирует на изменение размера
Кроме того, вы также можете использовать метод внутреннего соотношения - это просто альтернативный вариант того же решения выше (помидор, помидор)
источник
Попробуйте использовать этот код, чтобы сделать его отзывчивым
источник
Я нашел решение от Дейва Руперта / Криса Койера. Тем не менее, я хотел сделать свиток доступным, поэтому придумал следующее:
// HTML
// CSS
источник
Вы можете использовать эти приемы, упомянутые на этом сайте http://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php .
Это очень полезно и легко понять. Все что нужно для создания
Вот ваша отредактированная js скрипка для демонстрации.
источник
проверить это решение ... работает для меня >> https://jsfiddle.net/y49jpdns/
источник
источник
DA прав. В вашей собственной скрипке, iframe действительно отзывчивый. Вы можете проверить это в firebug, проверив размер окна iframe. Но некоторые элементы внутри этого iframe не реагируют, поэтому они «торчат», когда размер окна небольшой. Например,
div#products-post-wrapper
ширина составляет 8800 пикселей.источник
iFrames МОГУТ БЫТЬ полностью ЧУВСТВИТЕЛЬНЫМИ, сохраняя при этом их соотношение сторон с помощью небольшой техники CSS, называемой Техникой внутреннего отношения . Я написал сообщение в блоге, посвященное именно этому вопросу: https://benmarshall.me/responsive-iframes/
Эта суть является:
БУМ, полностью отзывчивый!
источник
iframes не могут быть отзывчивыми. Вы можете сделать контейнер iframe отзывчивым, но не содержимое, которое он отображает, так как это веб-страница, которая имеет свои собственные заданные высоту и ширину.
Ссылка примера скрипта работает, потому что она отображает встроенную ссылку на видео YouTube, размер которой не объявлен.
источник
Простой, с CSS:
Пожалуйста, обратите внимание : но это не сделает контент внутри него отзывчивым!
2-е РЕДАКТИРОВАНИЕ: Есть два типа отзывчивых iframes, в зависимости от их внутреннего содержания:
тот , который , когда внутри фрейма содержит только на видео или в изображение или многие вертикально расположенный, для которых указанные выше две строки кода CSS почти достаточно подробно, и соотношение сторон имеет значение ...
а другой это:
тип контента для контактной / регистрационной формы , где мы должны сохранять не соотношение сторон, но чтобы предотвратить появление полосы прокрутки и содержимого, недостаточного для контейнера. На мобильном телефоне вы не видите полосу прокрутки, вы просто прокручиваете, пока не увидите содержимое (из iframe). Конечно, вы даете ему хоть какой-то вид
height
, чтобы заставить высоту контента адаптироваться к вертикальному пространству, встречающемуся на более узком экране - с медиа-запросами, такими как, например:источник
Я заметил, что пост leowebdev, кажется, работал на моем конце, однако, он выбил два элемента сайта, которые я пытаюсь создать: прокрутку и нижний колонтитул.
Прокрутка я вернулся, добавив
scrolling="yes"
код для вставки в iframe.Я не уверен, автоматически ли выбивается нижний колонтитул из-за отзывчивости или нет, но, надеюсь, кто-то другой знает этот ответ.
источник
Удалите высоту и ширину iframe, указанные в пикселях, и используйте процент
источник
источник
это решило меня, настроив код из @Connor Cushion Mulhall с помощью
источник
Из-за ограничений безопасности браузера вы должны будете включить файл Javascript как на «родительскую» страницу, так и на страницу, внедряемую через iframe («дочерний»).
В текущей версии родительская страница должна включать в себя последнюю версию jQuery. Нет никакой зависимости от jQuery для функциональности дочерней страницы. В будущих версиях мы хотели бы также удалить зависимость от jQuery для родителя.
Примечание: параметр «xdomain» в вызове функции makeResponsive () является необязательным.
Пример кода<!-- 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>
источник
Со следующей разметкой:
Следующий CSS делает видео во всю ширину и 16: 9:
источник
Я ищу больше об этой теме и наконец получаю хороший ответ. Вы можете попробовать , как это :
источник
Лучшее решение, позволяющее адаптировать iframe к любым экранам устройств, просто применить этот код (отлично работает с сайтами Игр):
Если вы ищете адаптивный игровой контейнер, подходящий для всех устройств, примените этот код, который использует расширенные запросы CSS @media.
источник
IFrame полностью реагирует на ситуации, когда соотношение сторон неизвестно, а контент в iFrame полностью отзывчив.
Ни одно из вышеперечисленных решений не сработало для меня, а именно для создания полностью адаптивного iFrame с полностью адаптивным динамическим контентом. Поддерживать любое соотношение сторон не было возможным.
Код:
Я также создал тайм-аут, чтобы при изменении размера функцию не вызывали миллион раз.
источник
источник
Проверьте этот полный код. Вы можете использовать контейнеры в процентах, как показано ниже:
Проверьте эту демонстрационную страницу.
источник
Это решение сработало для меня. И мне было проще. https://jameshfisher.com/2017/08/30/how-do-i-make-a-full-width-iframe/
источник