Вбудований контент iframe
Раніше було популярно робити сайти за технологією фреймів. Хедер, футер, бокова панель прописувались в окремих html-файлах, контентна частина також знаходилася в окремих файлах. Головний файл index.html містив в собі тільки 2, 3, 4 фрейма і підгружав в один з фреймів потрібний контент.
Зараз ця технологія не використовується з багатьох причин.
iframe - переродження фреймів. Цей тег - це контейнер для інформації. У нього можна завантажити іншу веб-сторінку, сторінку з іншого сайту, pdf-документ, відео та інший контент.
Наприклад, відео з youtube вставляється через iframe, карти гугла також.
Основний атрибут - src, в значення цього атрибута прописується посилання на ресурс.
Завдання: створіть html-документ (jsFiddle для цього не підходить) і створіть в ньому iframes:
- pdf-документом;
- відео з ютуба;
- карту гугла.
iframe { width: 600px; height: 400px; border: 1px solid blue; }
<iframe src="..."></iframe>
Контейнер iframe є безпечним. Ви ніяким чином не можете вплинути на його вміст зі свого сайту: змінити стилі елементів, застосувати скрипти, програмно зчитати його вміст.
Тому цим контейнером часто користуються платіжні системи, системи авторизації користувачів типу OpenID і т.п.
Проте, не кожен сайт можна запхати у iframe, можна заборонити це робити зі своїм сайтом.
Лайфхак для адаптивного відео.
В iframe чи в css ви можете задати чіткі розміри фрейма, наприклад - відео з ютуба. При цьому якщо задати ширину фрейма у відсотках - його висота не буде пропорційно змінюватися так, як це роблять картинки з автоматичною висотою.
Але нам допоможе padding. Якщо вертикальні відступи задати у відсотках, то висота буде братися не від висоти батьківського елемента, а від його ширини.
Нехай у нас є відео з розширенням 640 х 420 px. Визначемо співвідношення висоти до ширини: 420 / 640 = 0.66 = 66%. Ось це значення і задамо для padding-top чи padding-bottom обгортки фрейма.
Приклад у jsFiddle (замість фрейма - span, різниці немає; змінюйте ширину екрана фіддла).
Сайт Укрзалізниці з розкладом електричок у іframe:
Домашнє завдання
- Вставте у проект iframe з курсом валют.
- Вставте у проект iframe з погодою
Деякі iframe будуть працювати тільки в онлайні, по протоколам http чи https, може знадобитися веб-сервер або github.io; окрім того багато сервісів працюють через спеціальні ключі - API-key, їх можна отримати зареєструвавшись на сайті, у деяких випадках - оплативши послугу.