«Полный экран» <iframe>


163

Когда я использую следующий код для создания iframe:

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

Iframe не проходит весь путь - белая рамка "10" на границе окружает iframe. Как я мог решить это?

Вот изображение проблемы:

Скриншот сайта

Ответы:


103

В bodyбольшинстве браузеров поле имеет значение по умолчанию. Пытаться:

body {
    margin: 0;
}

на странице с iframe.


301

Чтобы покрыть весь видовой экран, вы можете использовать:

<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>

И не забудьте установить маржу Страницы с фреймами до 0, например, body { margin: 0; }. - На самом деле, это не обязательно с этим решением.

Я использую это успешно, с дополнительным display:noneи JS, чтобы показать это, когда пользователь нажимает на соответствующий элемент управления.

Примечание. Чтобы заполнить область просмотра родителя вместо всего окна просмотра, измените position:fixedна position:absolute.


31
Этот ответ решает, как заставить iframe занимать весь экран
Марк Ма


2
принятый ответ не работает для меня. это сделал. Спасибо.
AlexVPerl

2
Отличный ответ! Простой, кросс-браузерный и окончательный.
заготовка

Отлично работает с HTML 5
break7533

39

Вы также можете использовать длину в процентах области просмотра для достижения этой цели:

5.1.2. Длина в процентах от области просмотра: единицы измерения: vw, vh, vmin, vmax

Длина области просмотра в процентах относится к размеру исходного содержащего блока. Когда высота или ширина исходного содержащего блока изменяется, они масштабируются соответственно.

Где 100vhпредставляет высоту области просмотра, а также 100vwпредставляет ширину.

Пример здесь

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>

Это поддерживается в большинстве современных браузеров - поддержку можно найти здесь .


8

Использование frameborder="0". Вот полный пример:

    <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

Невозможно сказать, не видя живой пример, но попробуйте дать оба тела margin: 0px


@Trufa это может быть край, но это может быть и что-то еще. Лучше всего использовать представление Firebug "Layout", чтобы узнать это
Pekka

2

Вы могли бы попробовать frameborder=0.


Спасибо, но это "внутри iframe", мне нужно было изменить внешний вид (я не знал этого, пока не ответил @kevingessner), спасибо !!
Труфа

2

Добавление этого в ваш iframe может решить проблему:

frameborder="0"  seamless="seamless"

1
@FABBRj Отлично, я могу помочь: D
pentexnyx


-2

Используйте этот код вместо этого:

    <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
Больше не поддерживается в HTML5
Хари Карам Сингх
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.