Перейти к содержимому

HTML-тег <iframe>

Тег <iframe> создает встроенную рамку для встраивания стороннего контента (мультимедиа, апплеты и т. д.). Хотя содержимое рамки и веб-страницы независимы, они могут взаимодействовать через JavaScript.

HTML iframe tag

Синтаксис

Тег <iframe> является обычным HTML-элементом, который требует закрывающего тега.

Пример HTML-тега <iframe>:

Пример HTML-тега <iframe>

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <iframe src="https://www.w3docs.com"></iframe>
  </body>
</html>

Чтобы задать размер iframe, используйте атрибуты height и width, или воспользуйтесь CSS. Значения атрибутов по умолчанию задаются в пикселях, но могут быть указаны в процентах.

Пример HTML-тега <iframe> с атрибутами height и width:

Пример HTML-тега <iframe> с атрибутом height

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <iframe src="https://www.w3docs.com" width="80%" height="300"></iframe>
  </body>
</html>

Современные браузеры не применяют рамку по умолчанию к iframe. При необходимости вы все равно можете использовать свойство CSS border для стилизации рамки.

Пример HTML-тега <iframe> со свойством CSS border:

Пример HTML-тега <iframe> с атрибутом style

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <iframe src="https://www.w3docs.com" width="80%" height="300" style="border: none"></iframe>
  </body>
</html>

Новый атрибут loading

В HTML появился новый атрибут loading, который позволяет откладывать загрузку изображений и iframe до тех пор, пока они не окажутся близко к области просмотра. Для этой функции WHATWG подготовил pull request, и она уже является частью Chromium (начиная с версии 76).

Поддерживаемые значения атрибута loading включают:

  • "lazy" — откладывает загрузку до тех пор, пока изображение или iframe не окажется на определенном расстоянии от области просмотра.
  • "eager" — загружает ресурс немедленно.

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

HTML-тег <iframe>

html
<iframe src="video-player.html" loading="lazy"></iframe>

Отложенная загрузка (lazy loading) — это набор методов в веб- и прикладной разработке, которые откладывают загрузку ресурсов на странице до момента их фактического использования, вместо загрузки всех ресурсов сразу. Эти методы помогают улучшить производительность, более эффективно использовать ресурсы устройства и снизить связанные затраты.

Атрибуты

AttributeValueDescription
alignleft right top bottom middleОпределяет, как текст выравнивается и обтекает рамку. Не поддерживается в HTML5.
allowstringОпределяет политику, разрешающую или ограничивающую определенные функции в iframe.
allowfullscreenОпределяет, что рамку можно открыть в полноэкранном режиме.
frameborder1 0Определяет, отображать ли рамку вокруг iframe. Не поддерживается в HTML5.
heightpixelsОпределяет высоту рамки (высота по умолчанию 150px).
longdescURLОпределяет страницу с подробным описанием содержимого. Не поддерживается в HTML5.
marginheightpixelsОпределяет верхние и нижние отступы рамки. Не поддерживается в HTML5.
marginwidthpixelsОпределяет левые и правые отступы рамки. Не поддерживается в HTML5.
nametextОпределяет имя рамки.
referrerpolicyURLОпределяет, какую информацию о referrer отправлять с запросом.
sandboxДобавляет дополнительные ограничения для содержимого внутри рамки.
"" – Применяет все ограничения.<br>allow-forms – Разрешает отправку форм или встраиваемых страниц.<br>allow-same-origin – Рассматривает прикрепленный документ как документ, загруженный из того же источника, что и родительский документ.<br>allow-scripts – Включает выполнение скриптов на вложенной странице.<br>allow-top-navigation – Позволяет содержимому прикрепленного документа получать доступ к элементам верхнего уровня (документам, окнам).
scrollingyes no autoОпределяет, отображать ли полосу прокрутки или нет. Не поддерживается в HTML5.
seamlessseamlessУказывает, что содержимое прикрепленного документа должно отображаться как часть родительского документа.
srcURLУказывает адрес документа, содержимое которого будет загружено в рамку.
srcdocHTML_codeХранит содержимое рамки непосредственно в атрибуте.
widthpixelsОпределяет ширину рамки. (ширина по умолчанию 300px).

Тег <iframe> поддерживает глобальные атрибуты и атрибуты событий.

Практика

Какие атрибуты имеет HTML-тег iFrame?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.