Как вставить фоновое изображение в html: Как добавить фоновый рисунок на веб-страницу?

Как добавить фон SVG в HTML

Автор Matt Visiwig, 20 октября 2021 г.

Есть два способа добавить фон SVG в HTML: CSS и встроенный SVG. Оба требуют базовых знаний HTML и CSS.

Добавление фонового изображения с помощью CSS намного проще, поскольку изображение обрабатывается как фон, и поэтому вы можете размещать текст и другое содержимое поверх изображения. Если вместо этого вы используете встроенные SVG для своего фона, вам потребуется абсолютное или фиксированное позиционирование, чтобы добавить контент над этим фоновым слоем.

В этой статье мы рассмотрим последний и более сложный метод. Если вы хотите изучить метод CSS, я уже рассказывал, как добавлять фоны SVG с помощью CSS в своем блоге.

Зачем добавлять встроенный SVG в качестве фонового изображения в HTML

Основное преимущество встроенного фона SVG заключается в том, что вы можете динамически изменять и анимировать свойства фона. Ваша возможность изменять свойства ограничена методом CSS: background-image .

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

Если вы не планируете манипулировать встроенным SVG в качестве фона или повторно использовать фоновые элементы, это будет причиной НЕ встраивать SVG в качестве фона, а вместо этого использовать метод CSS: background-image .

H Как добавить встроенный SVG в качестве фонового изображения в HTML

Первое, что нам нужно, это код SVG. Если у вас есть файл SVG, вы можете открыть его в редакторе кода или простом текстовом редакторе, чтобы получить код SVG в буфер обмена. В этом примере я иду на SVGBackgrounds.com, чтобы получить этот бесплатный фон под названием «Жидкий сыр», нажать кнопку экспорта, затем выбрать параметр «Встроенный SVG», чтобы скопировать код SVG в мой буфер обмена. Я вставлю его в свой редактор и вырежу половину контуров (форм), чтобы упростить демонстрацию. Вот код, с которого я начинаю.

 
   <прямая заливка='#ffaa00'/>
   
5 154.8c47.2-10.6 93.6-25.3 138.6-43.8c21.7-8.9 43-18.8 63.9-29.5V0H643.4c62.9 41.7 129.7 78.2 202.4C 107.4C 178,1 1214,2 196,1 1397,5 154,8з'/>

Сначала давайте добавим его на страницу, чтобы вы могли разместить текст поверх него.

Мы поместим как текстовый, так и фоновый слои в родительский слой с позицией : относительная , что позволит текстовому слою иметь позицию : абсолютная для отображения над фоном. Хотя фон не имеет специальных свойств CSS, он определяет размеры контейнера, но родительская оболочка контролирует текущую ширину.

 <стиль>
   .wrap-слой{
      положение: родственник;
   }
   .текстовый слой{
      положение: абсолютное;
      ширина: 100%;
      высота: авто;
      сверху: 0;
      слева: 0;
      /* некритичные стили опущены */
   }

<дел>
   <дел>
      

НАВЕДИТЕ НАД ФОНОМ

<дел> 4 581с3,2 0,8 6,4 1,7 9.5 2.5C196.2 52,5 388,7 133,5 593,5 176,6C174,2 36,6 349,5 29,2 518,6-10,2V0H0V574,9C52,3-17,6 106,5-27,7 161,1-30,9C268,4 537,4 375.754.2 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 478 47 ffcc00' d='M181.8 259.4c98.2 6 191.9 35.2 281.3 72.1c2.8 1.1 5.5 2.3 8.3 3.4c171 71.6 342.7 158.5 531.3 207.7c198.8 51.8 403.4 40.8 597.3-14.8V0H0v283.2C59 263.6 120.6 255.7 181.8 259.4z' />

Как это выглядит:

Текст на фоне

Теперь, когда SVG отображается как фон, давайте перейдем на следующий уровень и анимируем фон SVG.

Для простоты я буду обрабатывать всю логику анимации через CSS. С этой целью я буду запускать анимацию с помощью :наведите курсор на и измените только свойства CSS. В качестве альтернативы вы можете использовать библиотеки JS, такие как GSAP и Waypoints, для обработки сложных анимаций, таких как триггеры прокрутки, трансформирующиеся формы и т. д. Но это не цель этой статьи.

Давайте анимируем изменение цвета при наведении.

Первое, что мы сделаем, это присвоим каждому элементу идентификатор, чтобы мы могли ссылаться на них по отдельности. Мы назовем их E1, E2 и так далее.

Чтобы анимировать SVG с помощью CSS, сначала нам нужно установить начальное и конечное состояния. Во встроенном SVG уже установлены встроенные цвета, поэтому мы изменим цвет при наведении с помощью такого правила для каждого элемента:

 .background-layer:hover #E5{
   заполнить: #808;
} 

Это будет работать, но для создания плавного перехода между цветами нам нужно установить свойство перехода, чтобы указать, как быстро делать анимацию цвета. В приведенном ниже примере он должен анимироваться в течение целой секунды. Это правило нацелено на все элементы в SVG.

 .фоновый слой svg * {
   переход: заполнить 1s легкость;
} 

Результат показан ниже, наведите указатель мыши на желтый фон, чтобы увидеть эффект.

НАВЕДЕНИЕ НАД ФОНОМ

Не углубляясь в анимацию SVG, остановимся на других свойствах CSS, которые легко анимировать: вращение() .

Оставлю код примера выше для любопытных: