Как я могу масштабировать содержание iframe? - PullRequest
205 голосов
/ 03 октября 2008

Как я могу масштабировать содержимое iframe (в моем примере это страница HTML, а не всплывающее окно) на странице моего веб-сайта?

Например, я хочу отобразить содержимое, которое отображается в iframe, в размере 80% от исходного размера.

Ответы [ 17 ]

3 голосов
/ 14 августа 2012

Для тех из вас, у кого возникли проблемы с настройкой работы в IE, полезно использовать -ms-zoom, как указано ниже, и использовать функцию масштабирования в #wrap div, а не в iframe id. По моему опыту, с помощью функции zoom, которая пытается масштабировать div iframe, равный #frame, он будет масштабировать размер iframe, а не содержимое внутри него (что и нужно).

Похоже на это. У меня работает на IE8, Chrome и FF.

#wrap {
  overflow: hidden;
  position: relative;
  width:800px;
  height:850px;
  -ms-zoom: 0.75;
}
3 голосов
/ 14 декабря 2012

Это было мое решение на странице шириной 890 пикселей

#frame { 
overflow: hidden;
position: relative;
width:1044px;
height:1600px;
-ms-zoom: 0.85;
-moz-transform: scale(0.85);
-moz-transform-origin: 0px 0;
-o-transform: scale(0.85);
-o-transform-origin: 0 0;
-webkit-transform: scale(0.85);
-webkit-transform-origin: 0 0; 

}
2 голосов
/ 14 марта 2016

Так что, вероятно, не лучшее решение, но, похоже, работает хорошо.

<IFRAME ID=myframe SRC=.... ></IFRAME>

<SCRIPT>
    window.onload = function(){document.getElementById('myframe').contentWindow.document.body.style = 'zoom:50%;';};
</SCRIPT>

Очевидно, не пытаясь исправить родителя, просто добавив стиль "zoom: 50%" к телу ребенка с небольшим количеством javascript.

Может быть, можно установить стиль элемента "HTML", но не пробовал.

2 голосов
/ 24 ноября 2012

Решение #wrap #frame работает нормально, если числа в #wrap #frame умножены на коэффициент масштабирования. Он показывает только ту часть уменьшенного кадра. Вы можете видеть это здесь, уменьшая количество веб-сайтов и переводя их в форму, похожую на интерес (с плагином woodmark jQuery):

http://www.genautica.com/sandbox/woodmark-index.html

1 голос
/ 03 октября 2008

Если ваш html оформлен в стиле css, вы, вероятно, можете связать разные таблицы стилей для разных размеров.

0 голосов
/ 03 октября 2008

Я не думаю, что HTML имеет такую ​​функциональность. Единственное, что я могу себе представить, - это выполнить серверную обработку. Возможно, вы могли бы получить снимок изображения веб-страницы, которую хотите обслуживать, масштабировать ее на сервере и предоставить клиенту. Однако это будет неинтерактивная страница. (возможно, изображение может содержать ссылку, но все же.)

Другой идеей было бы иметь серверный компонент, который изменил бы HTML. Еще как функция масштабирования Firefox 2.0. это, конечно, не идеальное увеличение, но лучше, чем ничего.

Кроме этого, у меня нет идей.

0 голосов
/ 03 октября 2008

Как я уже сказал, я сомневаюсь, что вы можете сделать это.
Может быть, вы можете масштабировать хотя бы сам текст, установив стиль font-size: 80%;.
Не проверенный, не уверен, что это работает, и не будет изменять размеры ящиков или изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...