Cover background css: 🤷🏽‍♀️ Page not found | MDN Web Docs

Содержание

size | HTML и CSS с примерами кода

Свойство background-size масштабирует фоновое изображение, согласно заданным размерам.

Фон

Синтаксис

/* Keyword values */
background-size: cover;
background-size: contain;

/* One-value syntax */
/* the width of the image (height becomes 'auto') */
background-size: 50%;
background-size: 3.2em;
background-size: 12px;
background-size: auto;

/* Two-value syntax */
/* first value: width of the image, second value: height */
background-size: 50% auto;
background-size: 3em 25%;
background-size: auto 6px;
background-size: auto auto;

/* Multiple backgrounds */
background-size: auto, auto; /* Not to be confused with `auto auto` */
background-size: 50%, 25%, 25%;
background-size: 6px, auto, contain;

/* Global values */
background-size: inherit;
background-size: initial;
background-size: unset;

Значения

<размер>
Задаёт размер в любых доступных для CSS единицах — пикселях (px), сантиметрах (cm), em и др.
<проценты>
Задаёт размер фоновой картинки в процентах от ширины или высоты элемента.
auto
Если задано одновременно для ширины и высоты (auto auto), размеры фона остаются исходными; если только для одной стороны картинки (100px auto), то размер вычисляется автоматически исходя из пропорций картинки.
cover
Масштабирует изображение с сохранением пропорций так, чтобы его ширина или высота равнялась ширине или высоте блока.
contain
Масштабирует изображение с сохранением пропорций таким образом, чтобы картинка целиком поместилась внутрь блока.

Если установлено одно значение, оно устанавливает ширину фона, второе значение принимается за auto. Пропорции картинки при этом сохраняются. Использование двух значений через пробел задаёт ширину и высоту фоновой картинки.

Значение по-умолчанию:

Применяется ко всем элементам

Спецификации

Поддержка браузерами

Can I Use background-img-opts? Data on support for the background-img-opts feature across the major browsers from caniuse. com.

Описание и примеры

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>background-size</title>
    <style>
      div {
        height: 200px; /* Высота блока */
        border: 2px solid #000; /* Параметры рамки */
        background: url('/example/image/mybg.png') 100% 100%
          no-repeat; /* Добавляем фон */
        background-size: cover; /* Масштабируем фон */
      }
    </style>
  </head>
  <body>
    <div>...</div>
  </body>
</html>

Краткий обзор «object-fit» и «object-position» — CSS-LIVE

Перевод статьи A Quick Overview of `object-fit` and `object-position с сайта css-tricks.com для css-live.ru. Автор — Роберт Рендли.

Последнее время object-fit и object-position — мои любимые CSS-свойства. С ними разработчики могут управлять содержимым внутри img или video, подобно манипулированию содержимым background с помощью background-position и background-size.

Для начала, подробнее про

object-fit

Это свойство определяет, как элемент вроде img подстраивается под доступные ширину и высоту своего содержимого. С object-fit

можно приказать содержимому заполнить этот бокс различными способами, например, «сохранить эти пропорции!» или «растянуться и занять как можно больше места!»

Вот пример:

Это изображение 400х260px. Если добавить к нему…

img {  
  width: 200px;
  height: 300px;
}

… то в итоге получим неуклюжее искажение, поскольку изображение сплющивается, чтобы уместиться в эти рамки:

Содержание в нашем img займёт всё доступное пространство в своём новом боксе, созданном при изменении его высоты и ширины, «ломая» тем самым его исходные пропорции.

Чтобы и сохранить пропорции изображения и заполнить всю доступную область, воспользуемся object-fit:

.cover {
  object-fit: cover;
}

Слева исходное изображение, а справа — изображение обрезанное по бокам, которое теперь сохраняет наши пропорции! Может в таком масштабе это и не выглядит впечатляющим, но как только мы столкнёмся с разработкой более реалистичных интерфейсов, вот тогда-то

object-fit и проявит себя во всей красе.

Возьмём другой пример:

Здесь у нас два изображения, которые должны занимать 50% ширины окна браузера (чтобы они стояли бок о бок) и 100% высоты. Для этого воспользуемся единицами области просмотра.

img {
  height: 100vh;
  width: 50vw;
}

Проблема всплывает, когда при изменении размера экрана меняются и пропорции изображения, что приводит к всевозможным странностям. А нам бы хотелось сохранить их пропорции, как и в предыдущем демо, так что для этого можно использовать тот же метод. object-fit: cover, выручай!

Попробуйте снова изменить размер экрана. Странности с пропорциями исчезли, так ведь? Это также весьма полезно для изображений с различными размерами, поскольку они фактически будут обрезаны по границам бокса.

cover — лишь одно из многих значений для object-fit, о которых более подробно можно почитать в справочнике, но пока что это единственное значение, которое кажется мне наиболее полезным для повседневной разработки интерфейсов.

Перейдём к следующему из моих любимых свойств:

object-position.

Воспользуемся уже знакомым изображением и этими стилями:

img {  
  background: yellow;
  height: 180px;
  object-fit: none;
}

Здесь стоит отметить пару вещей: для правильной работы object-position нужно объявить размеры для изображения, а чтобы изображение не заполняло весь бокс (как это происходит по умолчанию), а его можно было сдвинуть, нужно установить ему object-fit: none.

Это может показаться странным, но всё дело в том, что по умолчанию для изображения устанавливается object-fit: fill, даже если не объявлять его специально.

Что касается поведения по умолчанию, без значения object-position центрирует все объекты по горизонтали и вертикали:

img {
  background: yellow;
  height: 180px;
  object-fit: none;
  object-position: 50% 50%; /* Даже если это не объявлять, изображение всё равно отцентрируется. */
}

Первое значение смещает изображение влево или вправо, а второе — вверх или вниз. Здесь можно поэкспериментировать с этими значениями:

Мы можем даже «протолкнуть» изображение внутрь его области контента, так что можно будет увидеть background-color, который мы задали раньше

Но насколько это полезно? Хороший вопрос! Вот в недавнем проекте мне потребовалось сдвинуть к центру конкретный участок изображения, и тем самым привлечь внимание читателя.

Загрузка нового изображения не требуется, поэтому в этом случае не понадобится элемент <picture>, всё, что мы хотели — немного сдвинуть изображение.

Помимо смещения фокуса на нужную часть изображения, не очень представляю, для чего еще это может быть полезно на практике. Но я повозился с object-position, чтобы продемонстрировать, как можно скрыть части изображения, а затем по клику показывать его по кусочкам, как в этом демо:

Я не эспериментировал, как и для чего можно использовать это для элементов <video>. Может быть, видео на весь экран, заполняющее его без черных полос по краям? Чтобы полностью раскрыть потенциал этих свойств, изучить предстоит ещё очень много.

Что с поддержкой?

В целом, неплохо!

object-fit поддерживается везде, кроме IE/Edge. А

object-position поддерживается везде, кроме Safari и IE/Edge.

P.S. Это тоже может быть интересно:

webkit-background-size — свойство css :: руководство cssdot.

ru

Свойство -webkit-background-size позволяет указывать размеры фонового изображения, которые могут быть заданы в абсолютных величинах (cm, mm, in и т.д.), относительных (px, em и т.д.), или в процентах, по отношению к ширине и высоте элемента контейнера. Масштабировать фоновое изображение возможно как с сохранением исходных пропорций, так и без них.

Допустимые значения

  • length{1,2} — задает размер фонового изображения в абсолютных величинах (cm, mm, in и т.д.) или относительных (px, em и т.д.). Если задано только одно значение, то второе вычисляется автоматически исходя из пропорций картинки.
  • percentage{1,2} — задает размер фонового изображения в процентах от ширины и/или высоты элемента контейнера. Если задано только одно значение, то второе вычисляется автоматически исходя из пропорций картинки.
  • auto{1,2} — задает размер фонового изображения равным исходному, в случае, если указаны обе величины auto, или просто auto; а если указан только для одной стороны картинки (25% auto), то размер вычисляется исходя из пропорций картинки.
  • cover — масштабирует картинку с сохранением пропорций по меньшей стороне, то есть так, чтобы фон с избытком покрывал блок-контейнер.
  • contain — масштабирует картинку с сохранением пропорций по большей стороне, то есть так, чтобы блок-контейнер с избытком покрывал фон.

Примечания

Chrome 1-3, Safari 3-4

Свойство -webkit-background-size в движке WebKit изначально было реализовано в рамках черновика спецификации CSS3, в котором отсутствовали ключевые слова contain и cover, а так же предполагалось, что если задан размер фоновой картинки с использованием только одного параметра, то второй параметр считается, не пропорционально размерам картинки, а равен первому.

Свойство -webkit-background-size относится к спецификации CSS, применяется к всем элементам, и действует на всех визуальные носителях, его значение не наследуется от родительского элемента в иерархии документа, Является расширением движка WebKit (браузеры Chrome и Safari), и не совместимо с другими браузерами.

Смотри также:

  • background-size — Размер фонового изображения, или его масштаб относительно элемента-контейнера.
  • -o-background-size — Размер фонового изображения, или его масштаб относительно элемента-контейнера.
  • -moz-background-size — Размер фонового изображения, или его масштаб относительно элемента-контейнера.

Краткое описание

Размер фонового изображения, или его масштаб относительно элемента-контейнера.

Синтаксис:

[ <length> | <percentage> | auto ]{1,2} | cover | contain [, [ <length> | <percentage> | auto ]{1,2} | cover | contain]*

Применяется к:

всем элементам

Наследование:
не наследуется
Тип носителя:

визуальные

Объектная модель документа (DOM):

[элемент].style[‘-webkit-background-size’]


Кроссбраузерная совместимость

Internet Explorer
не поддерживается
Firefox
не поддерживается
Chrome
1. 02.03.04.15.06.07.08.09.010.011.012.013.014.015.016.017.018.019.020.0
+/-+/-+/-+++++++++++++++++
Safari
1.01.11.21.32.03.03.24.05.0
+/-+/-+
Opera
не поддерживается

Свойства object-fit и object-position. Масштабируем пропорционально.

1. Свойство object-fit

Свойство object-fit определяет, каким образом содержимое замещаемых элементов будет подогнано к краям контейнера тега в случае, когда для элемента заданы ширина и высота, отличные от его собственных размеров.

Замещаемыми элементами являются элементы, чьи размеры и внешний вид определяются внешним ресурсом. К ним относятся элементы <img> <input type="image">, <embed>, <iframe>, <video>, <canvas> и <object> в случае когда они содержат встраиваемое содержимое, а также элемент <audio>, использующий пользовательские элементы управления.

Свойство object-fit масштабирует, обрезает или растягивает содержимое замещаемых элементов. Свойство хорошо поддерживается в последних версиях Chrome, Firefox и Safari. Для браузера IE8-11 можно использовать полифил (библиотеку, добавляющую в старые браузеры поддержку свойств, работающих в современных браузерах).

Поддержка браузерами

IE: не поддерживает
Firefox: 36.0
Chrome: 31.0
Safari: 7.1 только object-fit, 10.0 полная поддержка
Opera: 19. 0
iOS Safari: 8.0 только object-fit, 10.1 полная поддержка
Opera Mini: -o-
Android: 4.4.4
Chrome for Android: 54.0

object-fit
fill Значение по умолчанию. Содержимое замещаемого элемента полностью заполняет область контейнера тега, используя его высоту и ширину.
contain Содержимое элемента масштабируется, выравниваясь по центру с сохранением пропорций таким образом, чтобы полностью поместиться внутри контейнера.
cover Содержимое элемента обрезается, выравниваясь по центру с сохранением пропорций таким образом, чтобы полностью заполнить область контейнера.
scale-down Содержимое элемента выбирает из двух значений none и contain то значение, которое даёт меньшие размеры.
none Замещаемое содержимое не изменяет свои собственные размеры, чтобы поместиться и заполнить область контейнера.
initial Устанавливает это свойство в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.

See the Pen BQGdYy by Elena (@html5book) on CodePen.

2. Свойство object-position

Свойство object-position используется в сочетании с object-fit и задаёт положение содержимого замещаемого элемента внутри контейнера относительно координатных осей X и Y. Значение по умолчанию 50% 50%. Свойство анимируется. Не наследуется.

object-position
Значения:
left top,
left center,
left bottom,
right top,
right center,
right bottom,
center top,
center center,
center bottom
Позиционирование по горизонтали и вертикали задаётся с помощью пары ключевых слов. Если задано одно ключевое слово, второе примет значение center.
px / em/ % Указывается два значения, первое определяет расстояние между левой стороной изображения и левым краем элемента-контейнера (по горизонтали), второе значение указывает расстояние между верхней стороной изображения и верхним краем элемента-контейнера (по вертикали). Также можно использовать отрицательные значения для обрезки части контента.
Процентное значение рассчитывается относительно содержимого и контейнера, в котором оно расположено. Одновременно можно комбинировать значения в px, em и %.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.

See the Pen vyQWme by Elena (@html5book) on CodePen.

размер фона — CSS: каскадные таблицы стилей

Свойство CSS background-size устанавливает размер фонового изображения элемента. Изображение можно оставить до его естественного размера, растянуть или ограничить, чтобы оно соответствовало доступному пространству.

Пространства, не покрытые фоновым изображением, заполняются свойством background-color , и цвет фона будет виден за фоновыми изображениями, имеющими прозрачность / полупрозрачность.

 
размер фона: обложка;
размер фона: содержать;



размер фона: 50%;
размер фона: 3.2em;
размер фона: 12 пикселей;
размер фона: авто;



размер фона: 50% авто;
размер фона: 3em 25%;
размер фона: авто 6 пикселей;
размер фона: авто авто;


размер фона: авто, авто;
размер фона: 50%, 25%, 25%;
размер фона: 6 пикселей, авто, содержать;


размер фона: наследовать;
размер фона: начальный;
размер фона: не задано;
  

Свойство background-size задается одним из следующих способов:

  • Использование значений ключевого слова содержит или покрытия .
  • Используется только значение ширины, в этом случае высота по умолчанию авто .
  • Использование значения ширины и высоты; в этом случае первое устанавливает ширину, а второе — высоту. Каждое значение может быть <длина> , <процент> или авто .

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

Значения

содержат
Максимально масштабирует изображение в пределах своего контейнера без обрезки или растяжения изображения.Если контейнер больше, чем изображение, это приведет к мозаике изображения, если для свойства background-repeat не установлено значение no-repeat .
крышка
Увеличивает изображение до максимального размера, чтобы заполнить контейнер, при необходимости растягивая изображение. Если пропорции изображения отличаются от элемента, оно обрезается либо по вертикали, либо по горизонтали, чтобы не оставалось пустого места.
авто
Масштабирует фоновое изображение в соответствующем направлении, чтобы сохранить его внутренние пропорции.
<длина>
Растягивает изображение в соответствующем размере до указанной длины. Отрицательные значения не допускаются.
<процент>
Растягивает изображение в соответствующем измерении до указанного процента от области позиционирования фона . Область позиционирования фона определяется значением background-origin (по умолчанию поле заполнения). Однако, если для фона значение background-attachment равно fixed , то область позиционирования — это все окно просмотра.Отрицательные значения не допускаются.

Внутренние размеры и пропорции

Вычисление значений зависит от внутренних размеров изображения (ширина и высота) и внутренних пропорций (отношение ширины к высоте). Эти атрибуты следующие:

  • Растровое изображение (например, JPG) всегда имеет внутренние размеры и пропорции.
  • Векторное изображение (например, SVG) не обязательно имеет внутренние размеры. Если он имеет как горизонтальные, так и вертикальные внутренние размеры, он также имеет внутренние пропорции.Если у него нет размеров или только одно измерение, оно может иметь или не иметь пропорций.
  • CSS <градиент> s не имеют внутренних размеров или внутренних пропорций.
  • Фоновые изображения, созданные с помощью функции element () , используют внутренние размеры и пропорции генерирующего элемента.

Примечание: В Gecko фоновые изображения, созданные с помощью функции element () , в настоящее время обрабатываются как изображения с размерами элемента или области позиционирования фона, если элемент SVG, с соответствующей внутренней пропорцией.Это нестандартное поведение.

На основе внутренних размеров и пропорций визуализированный размер фонового изображения вычисляется следующим образом:

Если указаны оба компонента background-size , а не auto :
Фоновое изображение отображается с указанным размером.
Если background-size — это , содержать или обложку :
При сохранении внутренних пропорций изображение визуализируется с максимальным размером, содержащимся в области позиционирования фона или покрывающей ее.Если изображение не имеет внутренних пропорций, оно отображается с размером области позиционирования фона.
Если background-size auto или auto auto :
  • Если изображение имеет как горизонтальные, так и вертикальные внутренние размеры, оно отображается с этим размером.
  • Если изображение не имеет внутренних размеров и внутренних пропорций, оно отображается с размером области позиционирования фона.
  • Если изображение не имеет внутренних размеров, но имеет внутренние пропорции, оно отображается так, как если бы вместо этого было указано , содержащее .
  • Если изображение имеет только одно внутреннее измерение и внутренние пропорции, оно отображается с размером, соответствующим этому одному измерению. Другое измерение вычисляется с использованием указанного размера и внутренних пропорций.
  • Если изображение имеет только одно внутреннее измерение, но не имеет внутренних пропорций, оно визуализируется с использованием указанного измерения и другого измерения области позиционирования фона.
Примечание. изображений SVG имеют атрибут preserveAspectRatio , который по умолчанию эквивалентен , содержит ; явный background-size заставляет игнорировать preserveAspectRatio .
Если background-size имеет один компонент auto и один компонент не auto :
  • Если изображение имеет внутренние пропорции, оно растягивается до указанного размера. Неуказанный размер вычисляется с использованием указанного размера и внутренних пропорций.
  • Если изображение не имеет внутренних пропорций, оно растягивается до указанного размера. Неуказанный размер вычисляется с использованием соответствующего внутреннего размера изображения, если таковой имеется.Если такого внутреннего размера нет, он становится соответствующим размером области позиционирования фона.

Примечание. Изменение размера фона для векторных изображений, у которых отсутствуют внутренние размеры или пропорции, еще не полностью реализовано во всех браузерах. Будьте осторожны, полагаясь на поведение, описанное выше, и проверьте в нескольких браузерах, чтобы убедиться, что результаты приемлемы.

Работа с градиентами

Если вы используете <градиент> в качестве фона и задаете background-size , чтобы использовать его, лучше не указывать размер, который использует один компонент auto или задан используя только значение ширины (например, background-size: 50% ).Отрисовка <градиент> с в таких случаях изменена в Firefox 8 и в настоящее время обычно несовместима между браузерами, которые не все реализуют визуализацию в полном соответствии со спецификацией CSS3 background-size и градиентом CSS3 Image Values Технические характеристики.

  .gradient-example {
  ширина: 50 пикселей;
  высота: 100 пикселей;
  фоновое изображение: линейный градиент (синий, красный);

  
  размер фона: 25 пикселей;
  размер фона: 50%;
  размер фона: авто 50 пикселей;
  размер фона: авто 50%;

  
  размер фона: 25 пикселей 50 пикселей;
  размер фона: 50% 50%;
}
  

Обратите внимание, что особенно не рекомендуется использовать измерение в пикселях и измерение auto с <градиент> , потому что невозможно реплицировать рендеринг в версиях Firefox до 8 и в браузерах, не реализующих рендеринг Firefox 8, без зная точный размер элемента, фон которого указывается.

Тип анимации 19 простого списка длины, процента или вычисления
Начальное значение авто авто
Применяется ко всем элементам . Это также относится к :: первая буква и :: первая строка .
Унаследовано нет
Процентное соотношение относительно области позиционирования фона
Вычисленное значение , как указано, но с относительной длиной, преобразованной в абсолютную длину

Мозаика для большого изображения

Давайте рассмотрим большое изображение, изображение логотипа Firefox размером 2982×2808.Мы хотим разделить четыре копии этого изображения на элемент размером 300×300 пикселей. Для этого мы можем использовать фиксированное значение background-size , равное 150 пикселям.

HTML

  

CSS

  .tiledBackground {
  background-image: url (https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
  размер фона: 150 пикселей;
  ширина: 300 пикселей;
  высота: 300 пикселей;
  граница: сплошная 2px;
  цвет: розовый;
}
  

Результат

Таблицы BCD загружаются только в браузере

Изменение размера фоновых изображений с размером фона — CSS: каскадные таблицы стилей

Свойство CSS background-size позволяет изменять размер фонового изображения элемента, переопределяя поведение по умолчанию мозаичного размещения изображения до его полного размера, указав ширину и / или высоту изображения.Таким образом, вы можете масштабировать изображение вверх или вниз по желанию.

Давайте рассмотрим большое изображение, изображение логотипа Firefox размером 2982×2808. Мы хотим (по какой-то причине, вероятно, связанной с ужасающе плохим дизайном сайта) замкнуть четыре копии этого изображения в элемент размером 300×300 пикселей. Для этого мы можем использовать фиксированное значение background-size , равное 150 пикселям.

HTML

  

CSS

  .tiledBackground {
  background-image: url (https: // www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
  размер фона: 150 пикселей;
  ширина: 300 пикселей;
  высота: 300 пикселей;
  граница: сплошная 2px;
  цвет: розовый;
}
  

Результат

Вы также можете указать как горизонтальный, так и вертикальный размер изображения, например:

  размер фона: 300 пикселей 150 пикселей;
  

Результат выглядит так:

На другом конце спектра вы можете увеличить изображение на заднем плане.Здесь мы масштабируем значок 32×32 пикселей до 300×300 пикселей:

  .square2 {
  фоновое изображение: URL (favicon.png);
  размер фона: 300 пикселей;
  ширина: 300 пикселей;
  высота: 300 пикселей;
  граница: сплошная 2px;
  тень текста: белый 0px 0px 2px;
  размер шрифта: 16 пикселей;
}
  

Как видите, CSS фактически идентичен, сохраните имя файла изображения.

Помимо значений , свойство CSS background-size предлагает два специальных значения размера: содержит и cover .Давайте посмотрим на них.

содержат

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

HTML
  

Попробуйте изменить размер этого элемента!

CSS
 .bgSizeContain {
  background-image: url (https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
  размер фона: содержать;
  ширина: 160 пикселей;
  высота: 160 пикселей;
  граница: сплошная 2px;
  цвет: розовый;
  изменить размер: оба;
  переполнение: прокрутка;
}  
Результат

cover

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

HTML
  

Попробуйте изменить размер этого элемента!

CSS
  .bgSizeCover {
  background-image: url (https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
  размер фона: обложка;
  ширина: 160 пикселей;
  высота: 160 пикселей;
  граница: сплошная 2px;
  цвет: розовый;
  изменить размер: оба;
  переполнение: прокрутка;
}  
Результат
Размер фона

· Документы WebPlatform

Сводка

Определяет размер фоновых изображений.

Обзорная таблица

Начальное значение
авто
Относится к
Все элементы
Унаследовано
Нет
Медиа
визуальный
Расчетное значение
для абсолютное значение, иначе процент
Анимационный
Да
Свойство объектной модели CSS
фон Размер
процентов
см. Текст

Синтаксис

  • размер фона: авто
  • размер фона: содержать
  • размер фона: обложка
  • размер фона: длина
  • размер фона: процент

Значения

авто
По умолчанию.См. Примечания.
содержат
Масштабируйте изображение, сохраняя его внутреннее соотношение сторон (если оно есть), до максимального размера, чтобы и его ширина, и его высота могли уместиться внутри области позиционирования фона.
крышка
Масштабируйте изображение, сохраняя его внутреннее соотношение сторон (если оно есть), до наименьшего размера, чтобы и его ширина, и его высота могли полностью покрывать область позиционирования фона.
длина
Число с плавающей запятой, за которым следует обозначение абсолютных единиц ( см , мм , дюймов , pt или шт ) или обозначение относительных единиц ( em , ex или пикселей ).

Для получения дополнительной информации о поддерживаемых единицах длины см. Справочник по значениям и единицам измерения CSS.

процентов
Целое число, за которым следует процент (%). Процентное значение относится к области позиционирования фона.

Примеры

Базовый список примеров синтаксиса для background-size.

 
размер фона: обложка
размер фона: содержать


размер фона: 50%
размер фона: 3em
размер фона: 12 пикселей
размер фона: авто


размер фона: 50% авто
размер фона: 3em 25%
размер фона: авто 6 пикселей
размер фона: авто авто


размер фона: авто, авто
размер фона: 50%, 25%, 25%
background-size: 6px, авто, содержать

размер фона: наследовать
  
Структура HTML

из серии

, которые идентичны, за исключением того, что у них разные значения background-size , примененные к фоновому изображению.

  

Исходное изображение имеет размер 273 x 286 пикселей и имеет прозрачную область вокруг внешней стороны примерно 45 пикселей.

background-size: auto auto;
background-size: contain;
background-size: cover;
размер фона: 20% 25%;
background-size: 100px 400px;
background-size: 100% 250px;
background-size: 100% 250px, 20% 25%;

CSS применен к примеру HTML, показанному выше.

  div {
   ширина: 17%;
   высота: 200 пикселей;
   отступ: 10 пикселей;
   радиус границы: 20 пикселей;
   box-shadow: 2px 2px 10px rgba (0,0,0,0.75);
   плыть налево;
   маржа: 0 20px 20px 0;
   цвет фона: rgba (0,0,0,0.25);
   фоновое изображение: URL (/logo/wplogo_transparent_xlg.png);
 }

 code {
   цвет фона: rgba (255,255,255,0.7);
   отступ: 2 пикселя;
   радиус границы: 5 пикселей
 }

.один {
  размер фона: авто авто;
}

.два {
  размер фона: содержать;
}

.три {
  размер фона: обложка;
}

.four {
  размер фона: 20% 25%;
}

.пять {
  размер фона: 100 пикселей 400 пикселей;
}

.шесть {
  размер фона: 100% 250 пикселей;
}

.Семь {
  фоновое изображение: url (/logo/wplogo_transparent_xlg.png), url (/logo/wplogo_transparent_xlg.png);
  размер фона: 100% 250 пикселей, 20% 25%;
}
  

Посмотреть живой пример

Банкноты

Замечания

авто Значение для одного измерения разрешается с использованием внутреннего соотношения изображения и размера другого измерения. Если какое-либо из этих значений недоступно, используется внутренний размер изображения.Если внутренний размер изображения недоступен, ему присваивается значение 100%. Если оба значения равны авто , используйте внутреннюю ширину, высоту или и то, и другое изображения. Если изображение не имеет ни внутренней ширины, ни внутренней высоты, его размер определяется как для , содержащего . Отрицательные значения не допускаются. В Windows Internet Explorer 9 фон окна может состоять из нескольких слоев. Количество слоев определяется количеством значений, разделенных запятыми, в свойстве background-image .Каждое из изображений имеет размер, расположение и мозаику в соответствии с соответствующим значением в других свойствах фона ( background-attachment , background-clip , background-origin , background-position , background-repeat и размер фона ). Первое изображение в списке — это ближайший к пользователю слой, следующее закрашивается за первым и так далее.

Связанные спецификации

CSS Backgrounds and Borders Module Level 3
Кандидат в рекомендации

См. Также

Статьи по теме

Фон

Связанные страницы

Атрибуции

Увеличьте размер фона, пожалуйста! — Апартаменты A List Apart

В мире рекламы, стремящемся использовать каждый дюйм среды для представления бренда или продукта, становится все более популярным разрабатывать веб-сайты с полнофункциональным браузером.Используя CSS, этого можно легко добиться. Просто поместите на страницу огромное фоновое изображение с помощью одной строчки кода (перенос строк отмечен » — Ред. ):

Продолжение статьи ниже

  body {
  фон: # 000 url (myBackground_1280x960.jpg) »
центр центр фиксированный без повтора;
}  

В первом примере показано центрированное фоновое изображение размером 1280 на 960 пикселей, закрепленное за областью просмотра (оно не прокручивается вместе с документом).

Но какой размер изображения будет достаточно большим? Мониторы и операционные системы быстро развивались, и в результате появился широкий диапазон доступных разрешений экрана.Самые популярные сегодня разрешения — 1024×768 пикселей, 1280×800 пикселей, 1280×1024 пикселей и 1440×900 пикселей. Однако с появлением экранов высокой четкости (1920×1080 пикселей) и профессиональных дисплеев, поддерживающих разрешение до 2560×1600 пикселей, возможно практически все.

Также есть основания для более низких разрешений. Многие люди изменяют размер окна браузера, чтобы заполнить процентную долю экрана, в то время как ряд современных экранов поддерживает только разрешение 800×600 пикселей. И это оставляет множество карманных компьютеров с более низкими характеристиками.

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

Есть несколько обходных путей, однако все они полагаются на элемент HTML img (вместо фона CSS). Они также используют абсолютное позиционирование для слоев и таблиц или сценариев, чтобы разрешить изменение размера. Кроме того, не все эти методы сохраняют пропорции изображения, что приводит к нереалистично растянутому фону.

CSS3-фоны спешат на помощь # section2

Уровень 3 модуля W3C CSS Background and Borders Module (в настоящее время — рабочий проект) определяет свойство background-size , которое соответствует нашим требованиям. Интересные значения (если ссылаться на спецификации W3C):

.

содержат Масштабировать изображение, сохраняя его внутреннее соотношение сторон (если оно есть), до максимального размера, чтобы и его ширина, и его высота могли уместиться в области позиционирования фона.

cover Масштабируйте изображение, сохраняя его внутреннее соотношение сторон (если оно есть), до наименьшего размера, чтобы и его ширина, и его высота могли полностью покрывать область позиционирования фона.

Содержит всегда помещается на все изображение в пределах вашего окна просмотра, оставляя непрозрачные границы либо на сверху-снизу , либо на слева-справа , если соотношение фонового изображения и окна браузера не совпадает. Во втором примере мы расширили код из первого примера, установив для свойства background-size значение , содержащее .

Обложка всегда заполняет окно браузера, отрезая при этом волосы или уши, что я лично предпочитаю в большинстве случаев.Вы можете контролировать выравнивание изображения в области просмотра с помощью свойства background-position . В третьем примере мы снова расширили первый пример, на этот раз установив для свойства background-size значение cover .

Чтобы включить масштабирование фона, добавьте в таблицу стилей следующие объявления:

  body {
  фон: # 000 url (myBackground_1280x960.jpg) »
центр центр фиксированный без повтора;
  -moz-background-size: обложка;
  размер фона: обложка;
} 
 

Свойство background-size уже поддерживается Firefox 3.6 (с префиксом -moz ; Firefox 4 будет использовать обычное свойство CSS3), Chrome 5, Safari 5 и Opera 10.54; и он будет включен в Internet Explorer 9 (он уже доступен в Preview 3). Старые версии Webkit и Opera уже поддерживают свойство background-size , однако эти реализации основаны на предыдущем проекте, который не включал ключевые слова , содержащие , и , покрывающие .

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

Добавление медиа-запросов CSS3 в микс # section3

Модуль W3C CSS3 Media Queries (рекомендованный кандидат) определяет условные правила, которые применяются только в определенных диапазонах ширины или высоты. Это позволяет нам реализовать масштабирование фона с минимальной ширины и высоты и так далее. Медиа-запросы поддерживаются Firefox 3.5, Chrome, Safari 3 и Opera 7, а также будет включен в Internet Explorer 9.

Добавляя следующие правила стиля, мы сообщаем браузеру, что не хотим, чтобы фоновое изображение масштабировалось меньше 1024 × 768 пикселей:

  body {
  фон: # 000 url (myBackground_1280x960.jpg) »
центр центр фиксированный без повтора;
  -moz-background-size: обложка;
  размер фона: обложка;
} @media only all and (max-width: 1024px) и (max-height: 768px) {
  тело {
    -moz-background-size: 1024px 768px;
    размер фона: 1024px 768px;
  }
} 
 

Обратите внимание, что разрешение 1024×768 пикселей соответствует соотношению сторон фонового изображения (1280×960 пикселей).При использовании другого соотношения вы получите внезапные скачки масштабирования при изменении размера окна браузера.

В наших последних примерах, четвертом и пятом, мы добавили правило @media , чтобы наше фоновое изображение не масштабировалось меньше 1024 на 768 пикселей. Пример 5 показывает, что, установив для свойства background-position значение left-bottom вместо center-center , мы можем контролировать способ выравнивания фонового изображения в области просмотра.

Возвращение к старым методам # section4

Это захватывающие времена для веб-разработчиков, когда все производители браузеров усердно работают над внедрением новых технологий, таких как HTML5 и CSS3. В результате пришло время пересмотреть старые методы, чтобы увидеть, как то же самое можно делать более разумными и чистыми способами. Хотя циклы обновления Firefox, Chrome, Safari и Opera относительно короткие, будет интересно посмотреть, как быстро люди охватят Internet Explorer 9, чтобы мы могли начать использовать многие из этих новых методов в ближайшее время в больших масштабах.

Как изменить размер фоновых изображений с помощью CSS3

В CSS2.1 фоновые изображения, примененные к контейнеру, сохранили свои фиксированные размеры. К счастью, CSS3 представляет свойство background-size , которое позволяет растягивать или сжимать фон. Он идеально подходит, если вы создаете шаблон с помощью методов адаптивного веб-дизайна.

Есть несколько способов определить размеры размеров — просмотреть демонстрационную страницу CSS3 background-size .

Абсолютное изменение размера

Для измерения длины можно использовать:

  размер фона: ширина высота;  

По умолчанию для ширины и высоты установлено значение авто , при котором сохраняются исходные размеры изображения.

Мы можем изменить размер изображения до нового размера, используя абсолютные измерения, такие как px, em, cm и т. Д. Соотношение сторон будет изменено при необходимости, поэтому, если наше фоновое изображение имеет размер 200 × 200 пикселей, следующий код сохраняет эту высоту, но вдвое меньше ширины:

  размер фона: 100 пикселей 200 пикселей;  

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

.
  размер фона: 100 пикселей;

размер фона: 100 пикселей автоматически;  

Этот код масштабирует наше изображение с 200 × 200 до 100 × 100 пикселей.

Относительное изменение размера с использованием процентов

Если используется процент, размер основан на содержащем элементе — НЕ размер изображения, например

  размер фона: 50% авто;  

Таким образом, ширина фонового изображения зависит от размера его контейнера. Если ширина нашего контейнера составляет 500 пикселей, размер нашего изображения изменяется до 250 × 250.

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

Масштабирование до максимального размера

Свойство background-size также принимает ключевое слово contain . Это масштабирует изображение по размеру контейнера. Другими словами, изображение будет пропорционально увеличиваться или уменьшаться, но ширина и высота не будут превышать размеры контейнера:

  размер фона: содержать;  

Заполнение фона

background-size также принимает ключевое слово cover .Изображение масштабируется по размеру всего контейнера, но, если у него другое соотношение сторон, изображение будет обрезано:

  размер фона: обложка;  

Размер нескольких фонов

Можно изменить размер нескольких фонов с помощью списка значений, разделенных запятыми, которые применяются в том же порядке, например

  фон:
url ("Sheep.png") 60% 90% без повтора,
url ("Sheep.png") 40% 50% без повтора,
url ("Sheep.png") 10% 20% no-repeat # 393;
размер фона: 240 пикселей 210 ​​пикселей, авто, 150 пикселей;  

Совместимость с браузером

Последние версии всех браузеров поддерживают фонового размера без префикса.

IE8 и ниже не поддерживают свойство. Вы можете использовать фильтр IE для имитации содержания и покрытия, но невозможно изменить размер фоновых изображений, не прибегая к уловкам, таким как использование реальных img за другими элементами. Это грязно; Я рекомендую изящную деградацию.

Сокращенное обозначение

В спецификации W3C CSS Backgrounds and Borders Module Level 3 указано, что background-size может быть определен после background-position в сокращенной нотации background .Ни один из браузеров не поддерживает эту опцию, поэтому на данный момент background-size необходимо определить как отдельное свойство.

Просмотр демонстрационной страницы размера фона CSS3…

Поднимите свои навыки CSS на новый уровень с помощью нашей книги «Мастер CSS, 2-е издание» Тиффани Б. Браун, в которой рассматриваются CSS-анимации, переходы, преобразования и многое другое.

Оптимизация фоновых изображений CSS с помощью медиа-запросов

• Обновлено

Появляется в: Быстрое время загрузки

Многие сайты запрашивают большие ресурсы, такие как изображения, которые не оптимизированы для определенных экранов, и отправлять большие файлы CSS, содержащие стили, которые некоторые устройства никогда не будут использовать.Использование медиа-запросов — популярный метод доставки адаптированных таблиц стилей и ресурсов на разные экраны для уменьшения объема данных, передаваемых пользователям, и повышения производительности загрузки страниц. В этом руководстве показано, как использовать медиа-запросы для отправки изображений, размер которых не превышает необходимого, метод, широко известный как отзывчивых изображений .

Предварительные требования #

В этом руководстве предполагается, что вы знакомы с Chrome DevTools. При желании вы можете использовать DevTools другого браузера.Вам просто нужно сопоставить скриншоты Chrome DevTools в этом руководстве с соответствующими функциями в выбранном вами браузере.

Ознакомьтесь с адаптивными фоновыми изображениями #

Сначала проанализируйте сетевой трафик неоптимизированной демонстрации:

  1. Откройте неоптимизированную демонстрацию на новой вкладке Chrome.
  2. Нажмите Control + Shift + J (или Command + Option + J на Mac), чтобы открыть DevTools.
  3. Щелкните вкладку Сеть .
  4. Обновить страницу.

Вы увидите, что единственное запрашиваемое изображение — это background-desktop.jpg размером 1006 КБ :

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

Вы можете увидеть стили, управляющие фоновым изображением, в style.css:

  body {
background-position: center center;
background-attachment: исправлено;
фон-повтор: без повтора; размер фона: обложка;
background-image: url (images / background-desktop.jpg);
}

Вот значение каждого из используемых свойств:

  • background-position: center center : Центрировать изображение по вертикали и горизонтали.
  • background-repeat: no-repeat : показать изображение только один раз.
  • background-attachment: fixed : Избегайте прокрутки фонового изображения.
  • background-size: cover : Измените размер изображения, чтобы покрыть весь контейнер.
  • background-image: url (images / background-desktop.jpg) : URL-адрес изображения.

В сочетании эти стили предписывают браузеру адаптировать фоновое изображение к разной высоте и ширине экрана. Это первый шаг к созданию отзывчивого фона.

Использование одного фонового изображения для всех размеров экрана имеет некоторые ограничения:

  • Отправляется одинаковое количество байтов, независимо от размера экрана, даже если для некоторых устройств, таких как телефоны, меньший и более легкий фон изображения будет выглядят так же хорошо.В общем, вы хотите отправить как можно меньшее изображение, которое по-прежнему хорошо выглядит на экране пользователя, чтобы повысить производительность и сохранить пользовательские данные.
  • На устройствах меньшего размера изображение будет растянуто или обрезано, чтобы покрыть весь экран, потенциально скрывая важные части фона для пользователей.

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

Использование медиа-запросов — распространенный метод объявления таблиц стилей, которые будут применяться только к определенным типам носителей или устройств.Они реализуются с помощью правил @media, которые позволяют вам определять набор точек останова, в которых определены определенные стили. Когда выполняются условия, определенные правилом @media (например, определенная ширина экрана), будет применена группа стилей, определенных внутри точки останова.

Следующие шаги можно использовать для применения медиа-запросов к сайту, чтобы использовать разные изображения, в зависимости от максимальной ширины устройства, запрашивающего страницу.

  • В стиле .css удалить строку, содержащую фоновое изображение URL:
  body {
background-position: center center;
background-attachment: исправлено;
фон-повтор: без повтора; размер фона: обложка;
background-image: url (images / background-desktop.jpg);
}
  • Затем создайте точку останова для каждой ширины экрана на основе общих размеров в пикселях, которые обычно имеют экраны мобильных устройств, планшетов и настольных компьютеров:

Для мобильных устройств:

  @media (max-width : 480px) {
body {
background-image: url (images / background-mobile.jpg);
}
}

Для планшетов:

  @media (min-width: 481px) и (max-width: 1024px) {
body {
background-image: url (images / background-tablet.jpg);
}
}

Для настольных устройств:

  @media (min-width: 1025px) {
body {
background-image: url (images / background-desktop.jpg);
}
}

Откройте оптимизированную версию style.css в своем браузере, чтобы увидеть внесенные изменения.

Изображения, используемые в оптимизированной демонстрации, уже изменены, чтобы соответствовать разным размерам экрана.Показывать, как изменять размер изображений, выходит за рамки этого руководства, но если вы хотите узнать больше об этом, руководство по обслуживанию адаптивных изображений охватывает некоторые полезные инструменты, такие как пакет Sharp npm и интерфейс командной строки ImageMagick.

Измерение для разных устройств #

Затем визуализируйте получившийся сайт на экранах разных размеров и на смоделированных мобильных устройствах:

  1. Откройте оптимизированный сайт на новой вкладке Chrome.
  2. Сделайте область просмотра узкой (менее 480 пикселей ).
  3. Нажмите Control + Shift + J (или Command + Option + J на Mac), чтобы открыть DevTools.
  4. Щелкните вкладку Сеть .
  5. Обновить страницу. Обратите внимание, как запрашивалось изображение background-mobile.jpg .
  6. Расширьте область просмотра. Как только он станет шире 480px , обратите внимание, что запрашивается background-tablet.jpg . Как только он станет шире 1025px , обратите внимание, что запрашивается background-desktop.jpg .

При изменении ширины экрана браузера запрашиваются новые изображения.

В частности, когда ширина ниже значения, определенного в мобильной точке останова (480 пикселей), вы увидите следующий сетевой журнал:

Размер нового мобильного фона на на 67% меньше, чем у настольного компьютера.

Сводка #

В этом руководстве вы научились применять медиа-запросы для запроса фоновых изображений, адаптированных к определенным размерам экрана, и экономии байтов при доступе к сайту на небольших устройствах, таких как мобильные телефоны.Вы использовали правило @media для реализации адаптивного фона. Этот метод широко поддерживается всеми браузерами. Новая функция CSS: image-set (), может использоваться для той же цели с меньшим количеством строк кода. На момент написания этой статьи эта функция поддерживается не во всех браузерах, но вы, возможно, захотите следить за тем, как развивается принятие, поскольку она может представлять интересную альтернативу этому методу.

Последнее обновление: Улучшить статью

Как работает свойство CSS «background: cover»?

Закрыто. Это вопрос не по теме. В настоящее время он не принимает ответы.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме обмена графическим дизайном.

Закрыт 6 лет назад.

В настоящее время я «борюсь» с проблемой с частями веб-сайта, которые мне нужно полностью покрыть изображением.Таким образом, я попробовал свойство CSS background: cover. Ну, чтобы быть полным, я на самом деле не выбирал: я работаю с темой WordPress, но я в основном ее настраиваю. Опции, включенные в тему, позволяют выбирать между «стандартным» фоном для заголовков или «обложкой».

Но это не работает, как я себе представлял. Вот как я предполагал, что это работает: с учетом разрешения 1920 пикселей в ширину и вертикального пространства заголовка 500 пикселей на веб-сайте. Если я сделаю фон 1920x500px и помещу его как Background со свойством Cover, разве он не должен увеличиваться и отображаться в исходном размере, поскольку разрешение позволяет это?

Если я сделаю фон шире и выше, чем «контейнер», опять же с помощью свойства Cover, разве он не должен сжиматься?

Разве свойство Cover не должно изменять свои размеры до тех пор, пока не будет соответствовать ширине или высоте контейнера?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *