Как сделать фон картинкой
.hero {
min-height: 400px;
background-image: url("../images/forest.jpg");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}background-image: url(…)— путь к картинке;background-size: cover— картинка заполняет весь блок, лишнее обрезается по краям, пропорции сохраняются;background-position: center— при обрезке в центре остаётся середина картинки;background-repeat: no-repeat— картинка не повторяется плиткой (по умолчанию повторяется).
То же одной строкой:
.hero {
min-height: 400px;
background: url("../images/forest.jpg") center / cover no-repeat;
}В короткой записи размер пишется сразу после положения, через косую черту: center / cover.
Путь — от CSS-файла
Путь в url() считается от файла стилей, а не от страницы. Если страница — index.html, стили — в css/style.css, а картинка — в images/forest.jpg, то из папки css нужно подняться на уровень: ../images/forest.jpg. В теге <style> и в атрибуте style путь, наоборот, считается от страницы.
Текст поверх фона
На пёстрой фотографии текст плохо читается. Затемните её полупрозрачным слоем — градиент ставится первым, поверх картинки:
.hero {
min-height: 400px;
background-image:
linear-gradient(rgb(0 0 0 / 50%), rgb(0 0 0 / 50%)),
url("../images/forest.jpg");
background-size: cover;
background-position: center;
color: #fff;
}Несколько фонов перечисляют через запятую: первый лежит сверху.
Фон всей страницы
body {
background-color: #2e4a3a;
background-image: url("../images/pattern.png");
}Здесь картинка-узор повторяется плиткой (повтор включён по умолчанию). background-color — запасной цвет: его видно, пока картинка грузится или если не загрузилась. Подберите его похожим на картинку, чтобы светлый текст не потерялся на белом.
Подводные камни
- Фона не видно вовсе — у блока нет высоты. Фон рисуется только по размеру блока, а пустой
<div>высотой 0. Задайтеmin-heightили содержимое. - Неверный путь — самая частая причина. Помните: путь от CSS-файла. Проверьте вкладку «Network» («Сеть») в инструментах разработчика — у ненайденной картинки будет код 404.
- Картинка повторяется плиткой — забыт
background-repeat: no-repeatилиbackground-size: cover. - Картинка обрезана не так — поменяйте
background-position:top,bottom,left,rightили проценты (center 30%). - Важная картинка как фон — фон не видят поисковики и программы чтения с экрана, у него нет
alt. Если картинка — часть содержимого (фото товара, схема), вставляйте её тегом<img>. - Тяжёлая фотография на весь экран — уменьшите её до 1920–2400 пикселей по ширине и сожмите: картинка в несколько мегабайт заметно замедляет открытие страницы, особенно на телефоне.