/
Вопросы и ответы
/
HTML
/

Как поставить видео на фон html

Как поставить видео на фон html

5 лет назад

Человек-Молекула

Ответы

1

Чтобы поставить видео на фон в HTML, можно использовать комбинацию HTML5 и CSS.

Допустим, у нас подобная HTML структура:

1
2
3
4
5
6
7
8
<div class="video-background">
    <video autoplay muted loop id="myVideo">
        <source src="путь/к/нашему/видео.mp4" type="video/mp4">
    </video>
</div>
<div class="content">
    <!-- Контент страницы -->
</div>

Теперь зададим CSS стили:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.video-background {
    position: fixed;
    right: 0;
    bottom: 0;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -1000;
    overflow: hidden;
}

#myVideo {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -1000;
    transform: translateX(-50%) translateY(-50%);
}

.content {
    position: relative;
    z-index: 1;
}

Важные моменты:

  • Атрибут autoplay автоматически запускает видео
  • muted отключает звук
  • loop зацикливает видео

2 года назад

Ivan Mamtsev

0

Для встраивания видео контента в документ используется специальный элемент HTML - video. Как и все другие HTML-элементы, этот элемент поддерживает аттрибуты. В примере ниже, на страницу в качестве фона будет добавлено видео с опциями: автостарт просмотра ролика после загрузки страницы, выключен звук и по окончанию проигрывания, видео автоматически начнёт воспроизведение с начала.

Исходный HTML документ:

1
2
3
4
<h1>Текст заголовка<h1>
<video autoplay muted loop class="bg-video">
  <source src="cat.mp4" type="video/mp4">
</video>

CSS стили:

1
2
3
4
5
6
7
8
9
10
.bg-video {
  /* Фиксируем видеоролик, чтобы он занимал всю площадь страницы
  от верхнего левого угла */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  /* Определяем, что все другие элементы на странице будут поверх видео */
  z-index: -100;
}

4 года назад

Вячеслав Межуревский

0

Фоновое видео делают тегом <video>, растянутым на весь блок и уложенным под контент. Чтобы браузер запустил его сам, видео должно быть без звука:

1
2
3
4
5
6
7
8
9
<section class="hero">
  <video class="hero__video" autoplay muted loop playsinline poster="poster.jpg">
    <source src="background.webm" type="video/webm">
    <source src="background.mp4" type="video/mp4">
  </video>
  <div class="hero__content">
    <h1>Заголовок поверх видео</h1>
  </div>
</section>

object-fit: cover заполняет блок видео без искажений, лишнее обрезается по краям.

Зачем каждый атрибут

АтрибутЧто делает
autoplayзапускает видео сразу
mutedвыключает звук. Без него Chrome и Safari не запустят видео автоматически
loopповторяет видео по кругу
playsinlineна iPhone видео играет на странице, без перехода в полноэкранный режим
posterкартинка, пока видео грузится

Чтобы текст читался

Затемните видео полупрозрачным слоем:

1
2
3
4
5
6
7
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: -1;
}

Вес видео

Фоновое видео грузится у каждого посетителя. Держите файл в пределах нескольких мегабайт: 10–20 секунд, без звуковой дорожки, сжатое в WebM и MP4. Для мобильных можно показывать только картинку poster, а видео скрыть через медиазапрос.

Видео с YouTube через <iframe> фоном поставить сложно: плеер показывает свои элементы управления и рекламу. Для фона используйте свой файл.

HTML и CSS разбирают в курсе «Профессиональная вёрстка».

21 день назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845