Css background картинка: background-image — CSS | MDN
04.06.2023
Разное
image — свойство css :: руководство cssdot.ru
Свойство background-image
позволяет установить одно или несколько фоновых изображений для элемента, которые будут отображаться в границах области, охватываемой внешним краем рамок элемента, и заполненной фоновым цветом, если он задан с помощью свойства — (background-color
).
Если в качестве фона используются несколько изображений, то более «близким» к пользователю считает первый слой, потом второй, и так далее — до конца списка, а слой залитый фоновым цветом лежит позади всех фоновых изображений. Поэтому рекомендуется, задавать фоновые изображения в паре с цветом фона, чтобы в случае, когда по каким-либо причинам изображения не отобразились, или не успели загрузиться — содержание элемента не сливалось с подложкой.
Кроме того, по соображениям совместимости и обеспечения общедоступности информации для пользователей с ограниченными возможностями, не следую использовать фоновые изображения в качестве единственного метода представления важных данных, потому что изображения отсутствуют в

В качестве изображения возможно использовать следующие значения:
- [:inherit:]
- значение свойства наследуется от родительского элемента
- [:none:]
- изображение отсутствует, отображается как пустой прозрачный слой
- [:image:]
- значение, типа «изображение», которое может быть задано как:
- ссылка на графический файл —
url(относительный или абсолютный путь к изображению)
- встроенное изображение —
url(data:[тип][;charset=[кодировка]][;base64],данные )
- градиент —
linear-gradient()
,radial-gradient()
и т.д. - функция
image()
- функция
element(
) - функция
image-rect()
- ссылка на графический файл —
Практически все современные браузеры поддерживают значения — inherit
, none
, url()
, а так же функции для градиентов, но с префиксами -moz, -webkit, -o. Функция
image()
хотя и описана в последней версии спецификации …, но на данный момент не поддерживается ни одним из браузеров. Функция element()
определена в следующий версии спецификации CSS 4, и с префиксом реализована только в браузере Firefox. Функция image-rect()
Если в списке изображений, встречается такое, которое не может быть отображено (не поддерживаемый графический формат), загружено (нет доступа к сетевому ресурсу), либо оно пустое, то оно все равно считается за отдельный пустой слой, аналогично ключевому слову ‘none’.
Свойство background-image
относится к спецификации CSS, применяется к всем элементам, его значение не наследуется от родительского элемента в иерархии документа, и по умолчанию принимает значение none. На данный момент свойство поддерживается во всех основных браузерах.
Смотри также:
- Спецификация стандарта CSS 2.
1
- Спецификация стандарта CSS 3
- Описание на Mozilla Developer Network
- Описание на Microsoft Developer Network
- Описание на Safari Developer Library
Краткое описание
Фоновое изображение
Синтаксис:
CSS2 <image> | none | inherit
CSS3 [<image> | none [, <image> | none ]* | inherit
По умолчанию:
none
Наследование:
не наследуется
Объектная модель документа (DOM):
[элемент].style.background-image
Кроссбраузерная совместимость
Internet Explorer
Firefox
Chrome
Safari
Opera
Адаптирующиеся картинки-заставки на CSS — CSS-LIVE
Перевод статьи Flexible CSS cover images с сайта nicolasgallagher.com, c разрешения автора — Николаса Галахера.
Недавно я подключил к своим постам возможность добавления больших картинок-заставок, как показано выше. Исходное изображение обрезано, и до определенного максимального размера отображается в заданной пропорции. В этой статье описывается реализация этого способа.
- Демо: Адаптирующиеся картинки-заставки на CSS
Поддержка браузерами: Chrome, Firefox, Safari, Opera, IE 9+
Функции
Способ, который масштабирует картинки-заставки и изменяет соотношение сторон, иллюстрирован на следующей диаграмме:
Элемент картинки-заставки должен уметь:
- отображать фиксированное соотношение сторон, до тех пор, пока их конкретные максимальные размеры превышены;
- поддерживать различные пропорции;
- поддерживать свойства
max-height
иmax-width
; - поддерживать разные фоновые картинки;
- отобразить изображение так, чтобы оно либо полностью заполняло компонент, либо целиком помещалось в нем;
- центрировать изображение;
Соотношение сторон
Соотношение сторон пустого, блочного элемента может управляться с помощью установки в процентное значение его свойств padding-bottom
или padding-top
. Данное объявление (без какого-либо явного
height
), преобразует высоту элемента в 50% от его ширины.
.CoverImage { padding-bottom: 50%; }
Изменения значения такого padding’a изменит и соотношение сторон. Например, результатом padding-а в 25% будет пропорция 4:1, padding в 33.333% в 3:1 соответственно, и т.д.
Максимальные размеры
Проблема с использованием этого трюка/хака для пропорций состоит в том, что если у элемента объявлено max-height
, оно не будет учитываться. Это можно обойти с помощью другого «хака». Вместо того, чтобы выставлять padding элементу, мы можем создать псевдоэлемент и назначить padding уже ему.
.CoverImage:before { content: ""; display: block; padding-bottom: 50%; }
Теперь max-height
у главного элемента будет работать. Следовало бы так же обрезать и переполнение псевдоэлемента.
.CoverImage { display: block; max-height: 300px; max-width: 1000px; overflow: hidden; } .CoverImage:before { content: ""; display: block; padding-bottom: 50%; }
Этот прием для соотношения сторон используется компонентом FlexEmbed в препроцессоре SUITCSS. Этот компонент предназначен прежде всего для отзывчивых встраиваемых видео, но он достаточно гибок, чтобы быть полезным всякий раз, когда вам необходим отображаемый элемент с предопределённым соотношением сторон. Этот компонент предоставляет модификаторы для пропорций 2:1, 3:1, 16:9, и 4:3. Компонент картинок-обложек может расширить компонент FlexEmbed.
<div></div>
Фоновое изображение
Картинка-обложка добавляется в качестве фонового изображения, которое растягивается до размера, достаточного, чтобы покрыть всю область элемента. Это гарантирует, что изображение обрежется чтобы вписаться в пропорции элемента.
.CoverImage { ... background-repeat: no-repeat; background-size: cover; }
Если хотите разные обложки-картинки для разных ситуаций, они могут быть добавлены через атрибут style
.
<div></div>
Изображения могут быть полностью отцентрированы с помощью позиции фона и центрирования блока. Эта гарантирует, что изображение будет отцентрировано в элементе, и что сам элемент будет так же отцентрирован внутри своего родителя (когда он достигнет значения max-width
).
.CoverImage { ... background-position: 50%; background-repeat: no-repeat; background-size: cover; margin: 0 auto; }
Финальный результат
Если вы полагались на модуль FlexEmbed, то вам потребовалось совсем немного кода. (Посмотрите демо-пример со всем кодом, включающим код от FlexEmbed)
/** * требуется: suitcss/встроенная гибкость */ .CoverImage { background-position: 50%; background-repeat: no-repeat; background-size: cover; margin: 0 auto; max-height: 300px; max-width: 1000px; }
<div < </div>
Вы можете добавить дополнительные настройки, такие как добавление фонового цвета, или возможность переключения между ключевыми словами cover
и contain
для background-size
.
P.S. Это тоже может быть интересно:
- CSS, перевод
Свойство CSS background-image — GeeksforGeeks
Улучшить статью
Сохранить статью
- Уровень сложности: Эксперт
- Последнее обновление: 01 июл, 2022
Улучшить статью
Сохранить статью
Свойство background-image используется для установки одного или нескольких фоновых изображений для элемента. По умолчанию он помещает изображение в верхний левый угол. Чтобы указать два или более изображений, нам нужно указать отдельные URL-адреса с запятой для обоих изображений.
Синтаксис:
background-image: url('url')|none|initial|inherit;
Значения свойств:
- url(‘url’): Указывает URL-адрес изображения. Чтобы указать URL-адрес более чем одного изображения, разделите URL-адреса запятой.
- нет: Это случай по умолчанию, когда изображение не отображается.
- начальный: Используется для установки значения свойства по умолчанию.
- inherit: Наследует свойство родительского элемента.
Свойство background-image также можно использовать со следующими значениями:
- linear-gradient() : используется для установки фонового изображения с линейным градиентом, которое определяется как минимум двумя цветами из сверху вниз.
- radial-gradient(): Используется для установки радиально-градиентного фонового изображения, которое определяется как минимум двумя цветами от центра к краю.
Мы будем использовать приведенные выше значения свойств и понимать их на примерах.
url(‘url’): Когда фоновое изображение имеет URL.
Синтаксис:
background-image: url('url')
Пример 1: Этот пример иллюстрирует свойство background-image, задав значение url как url.
HTML
92
|
Выход:
Нет: свойство.
Синтаксис:
background-image: url('url') none
Пример 2: Этот пример иллюстрирует свойство background-image, задав значение url равным none.
HTML
|
Output:
начальный: Устанавливает для свойства значение по умолчанию.
Синтаксис:
background-image: url('url') initial;
Пример 3: Этот пример иллюстрирует свойство background-image, задав значение url как начальное.
HTML
|
Output:
Supported Browsers: The browser supported by background-image Property are listed below:
- Google Chrome 1.
0
- Microsoft Edge 12.0
- Firefox 1.0
- Internet Explorer 4.0
- Opera 3.5
- Safari 1.0
Статьи по теме
Что нового
Мы используем файлы cookie, чтобы обеспечить вам максимальное удобство при просмотре нашего веб-сайта. Используя наш сайт, вы подтверждаете, что вы прочитали и поняли наши Политика в отношении файлов cookie и Политика конфиденциальности
Как ускорить фоновые изображения
Фоновые изображения обычно используются в местах с текстом или контентом сверху. Это может быть слайдер, избранное изображение поста в блоге (как показано ниже) или главное изображение.
Скорее всего, они загружаются медленно и могут повлиять на взаимодействие с пользователем из-за увеличения параметра Largest Contentful Paint (LCP), если они находятся в указанной выше части.
Оглавление
- Почему фоновые изображения работают медленно?
- Запросы с низким приоритетом
- Трудно ленивая загрузка и предварительная загрузка
- Как ускорить фоновые изображения?
- Использование тега IMG с объектным соответствием
- Предварительная загрузка фонового изображения
- Тег IMG с хаком 'display: none'
- Добавление адаптивных изображений
- Встроенное фоновое изображение в HTML
- Дополнительная информация 90 Изображения 30 Медленный?
Запросы с низким приоритетом
Если изображение находится во внешнем файле CSS, оно будет загружено только после загрузки и анализа файла CSS и когда класс CSS фактически используется в HTML.
Это может отражаться в вашей основной метрике Web Vitals, например Largest Contentful Paint (LCP) , если эти фоновые изображения находятся в верхней части.
Если это тег IMG, изображение загружается мгновенно при анализе HTML.
Тяжелая отложенная загрузка и предварительная загрузка
Теги IMG могут использовать встроенную отложенную загрузку браузера, которая не требует JavaScript.
Вы по-прежнему можете лениво загружать фоновые изображения, если они находятся в HTML как встроенный стиль. Такие плагины, как FlyingPress, автоматически обнаруживают и загружают их в ленивом режиме.
Однако, если фоновое изображение находится внутри внешнего CSS-файла или внутреннего, все становится сложнее, поскольку мы не можем понять, имеет ли элемент HTML фоновое изображение или нет.
Примечание. Если вы используете FlyingPress, у нас есть вспомогательный класс « lazy-bg» для ленивой загрузки фоновых изображений даже внутри файлов CSS.
Как ускорить фоновые изображения?
Используйте тег IMG с объектной подгонкой
Фоновые изображения обычно используются в слайдерах с некоторым текстом/контентом в центре, или у вас есть фиксированный div, и вы хотите разместить изображение, которое будет «заполнять» без изменения размера области ( размер фона: обложка ).
Раньше было очень сложно добиться этого с помощью тегов IMG. Поэтому использование фоновых изображений имело смысл.
Тем не менее, есть новое свойство CSS object-fit: обложка , что дает с той же выгодой. Поддержка браузера также хороша.
Предварительно загрузить фоновое изображение
Независимо от того, используете ли вы фоновое изображение или тег IMG, если изображение находится в верхней части экрана, предварительно загрузите это изображение. Предварительная загрузка указывает браузеру загрузить это изображение с высоким приоритетом.
Тег IMG с хаком display: none0092 ,
background-position
иbackground-blend-mode
и т.д.
Поэтому в некоторых ситуациях лучше использовать
background-image
вместо тега IMG, чтобы использовать другие свойства CSS.Вы можете добавить обычный тег IMG с отображением
: нет
. Это скажет браузеру немедленно загрузить изображение, но отобразить его с использованием фонового изображения.Добавление адаптивных изображений
Вы добавляете srcset и размеры к обычным изображениям для предоставления адаптивных изображений на основе устройства:
Точно так же вы можете сделать то же самое для фоновых изображений, используя image-set :
В противном случае вы получите то же самое большое изображение для MacBook с разрешением 2880 пикселей и iPhone 6s с разрешением 750 пикселей!
Встроенное фоновое изображение в HTML
Если ваше фоновое изображение находится внутри внешнего файла CSS, встройте его в HTML.
Leave a Comment