Фоны

Подкаст CSS – 053: Предыстория

Фоны

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

Фоновые слои находятся дальше всего от пользователя и отображаются за содержимым блока, начиная с его области padding-box . Это позволяет фоновому слою вообще не перекрывать границы.

Фоновый цвет

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

  • 1
  • 12
  • 1
  • 1

Источник

Один из самых простых эффектов, которые можно применить к фоновому слою, — это установка цвета . Начальное значение background-colortransparent , что позволяет видеть содержимое родительского элемента. Допустимый цвет, установленный на фоновом слое, находится позади других объектов, нарисованных на этом элементе.

Фоновые изображения

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

  • 1
  • 12
  • 1
  • 1

Источник

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

  • URL-адрес изображения или URI данных с использованием функции CSS url .
  • Изображение, динамически созданное с помощью функции градиента CSS.

Установка фонового изображения с помощью функции url CSS

CSS-градиентные фоны

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

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

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

Повторяющиеся фоновые изображения

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

  • 1
  • 12
  • 1
  • 1

Источник

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

Измените это, используя свойство background-repeat с одним из следующих значений:

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

Свойство background-repeat позволяет независимо устанавливать поведение для осей x и y. Первый параметр задает поведение горизонтального повторения, а второй параметр задает поведение вертикального повторения.

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

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

Значение repeat-x повторяет изображение только по горизонтали; это эквивалентно repeat no-repeat .

Следующая демонстрация демонстрирует эти возможности свойства background-repeat :

Фоновое положение

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

  • 1
  • 12
  • 1
  • 1

Источник

Возможно, вы заметили, что когда некоторые изображения в Интернете оформлены с использованием объявления background-repeat: no-repeat , такие изображения отображаются в левом верхнем углу своего контейнера.

Исходное положение фоновых изображений — вверху слева. Свойство background-position позволяет изменить это поведение, смещая положение изображения.

Как и в случае с background-repeat , свойство background-position позволяет независимо позиционировать изображения вдоль осей x и y с двумя значениями по умолчанию.

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

Когда используются только ключевые слова, порядок ключевых слов не имеет значения:

Делать
background-position: left 50%;
Делать
background-position: top left;
Делать
background-position: left top;
Порядок не имеет значения для ключевых слов, связанных с разными осями положения.

Не
  background-position: 50% left;
Когда значения CSS используются рядом с ключевыми словами, порядок имеет значение. Первое значение представляет горизонтальную ось, а второе — вертикальную ось.

Не
  background-position: left right;
Нельзя одновременно использовать ключевые слова, связанные с одной и той же осью.

Свойство background-position также имеет удобное сокращение с одним значением; пропущенное значение разрешается до 50% . Вот пример, демонстрирующий это с использованием ключевых слов, которые принимает свойство background-position :

В дополнение к форме по умолчанию с двумя параметрами и форме с одним параметром; свойство background-position также принимает до четырех параметров;

Если используются три или четыре параметра, длине или проценту CSS должны предшествовать ключевые слова top , left , right или bottom , чтобы браузер мог рассчитать, от какого края поля CSS должно исходить смещение.

Когда используются три параметра, длина или значение CSS может быть вторым или третьим параметром, а два других — ключевыми словами; успешное ключевое слово будет использоваться для определения края, смещению которого соответствует длина или значение CSS. Смещение другого указанного ключевого слова установлено равным 0.

Делать
background-position: bottom 88% right;
Делать
background-position: right bottom 88%;
Не
background-position: 88% bottom right;
Перед значением длины CSS должны стоять ключевые слова top , right , bottom или left при использовании трех или более параметров.
Делать
background-position: bottom 88% right 33%;
Делать
background-position: right 33% bottom 88%;
Не
background-position: 88% 33% bottom left;
Перед значением длины CSS должны стоять ключевые слова top , right , bottom или left при использовании трех или более параметров.

Если background-position: top left 20% применяется к фоновому изображению CSS, изображение размещается в верхней части поля, значение 20% представляет собой смещение 20% от левой части поля (по оси X).

Если background-position: top 20% left применяется к фоновому изображению CSS, значение 20% представляет собой смещение 20% от верхней части поля CSS (по оси Y), а изображение размещается слева от коробка.

Когда используются четыре параметра, два ключевых слова соединяются с двумя значениями, соответствующими смещению относительно происхождения каждого указанного ключевого слова. Если к фоновому изображению применяется background-position: bottom 20% right 30% , фоновое изображение располагается на 20 % снизу и на 30 % справа от поля CSS.

Следующая демонстрация демонстрирует такое поведение:

Вот еще примеры использования свойства background-position с использованием сочетания CSS и значений ключевых слов:

Размер фона

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

  • 3
  • 12
  • 4
  • 5

Источник

Свойство background-size устанавливает размер фоновых изображений; По умолчанию размер фоновых изображений определяется их внутренней (фактической) шириной, высотой и соотношением сторон.

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

Свойство background-size принимает следующие ключевые слова:

  • auto : при независимом использовании размер фонового изображения определяется его внутренней шириной и высотой; Когда auto используется вместе с другим значением CSS для ширины (первый параметр) или высоты (второй параметр), размер, для которого установлено значение auto , изменяется по мере необходимости для поддержания естественного соотношения сторон изображения. Это поведение свойства background-size по умолчанию.
  • cover : покрывает всю область фонового слоя. Это может означать, что изображение растянуто или обрезано.
  • contain : изменяет размер изображения так, чтобы оно заполнило пространство без растягивания или обрезки. В результате может остаться пустое пространство, что приведет к повторению изображения, если только для background-repeat не установлено значение no-repeat .

Последние 2 предназначены для автономного использования без другого параметра.

Следующая демонстрация демонстрирует эти ключевые слова в действии:

Демо, демонстрирующее применение этих ключевых слов к background-size :

Фоновое вложение

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

  • 1
  • 12
  • 1
  • 1

Источник

Свойство background-attachment позволяет вам изменять фиксированное положение фоновых изображений (изображений, являющихся частью фонового слоя), как только слой становится видимым на экране.

Он принимает 3 ключевых слова: scroll , fixed и local .

Поведением по умолчанию свойства background-attachment является начальное значение scroll . Когда требуется больше места, изображения перемещаются вместе с этим пространством внутри фонового слоя, определяемого границами поля CSS.

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

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

Ключевое слово local позволяет зафиксировать положение фоновых изображений относительно содержимого элемента. Фоновые изображения теперь перемещаются по пространству, которое они занимают, по мере того, как это пространство отображается внутри и за пределами границ CSS-поля (обычно из-за прокрутки, 2D- или 3D-преобразований).

Фоновое происхождение

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

  • 1
  • 12
  • 4
  • 3

Источник

Свойство background-origin позволяет вам изменять область фона, связанную с определенным блоком. Значения, которые принимает свойство, соответствуют областям border-box , padding-box и content-box блока.

Попробуйте эти варианты, используя следующую демонстрацию:

Фоновый клип

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

  • 1
  • 12
  • 4
  • 5

Источник

Свойство background-clip управляет тем, что визуально видно из фонового слоя, независимо от границ, созданных свойством background-origin .

Как и в случае background-origin можно указать следующие регионы: border-box , padding-box и content-box соответствующие тому, где может отображаться фоновый слой CSS. При использовании этих ключевых слов любая визуализация фона за пределами указанной области будет обрезана или обрезана.

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

Это относительно новое свойство. На момент написания этой статьи Chrome и большинству браузеров для использования этого свойства требуется префикс -webkit- .

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

  • 1
  • 12
  • 4
  • 5

Источник

Несколько фонов

Как упоминалось в начале модуля, фоновый слой позволяет определять несколько подслоев. Для краткости я буду называть эти подслои фоном.

Несколько фонов определяются сверху вниз; Первый фон находится ближе всего к пользователю, а последний фон — дальше всего от пользователя.

Единственный определенный фон или последний слой назначается браузером последним фоновым слоем . Только этому слою разрешено назначать background-color .

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

background-image: url("https://assets.codepen.io/7518/pngaaa.com-1272986.png"),
    url("https://assets.codepen.io/7518/blob.svg"),
    linear-gradient(hsl(191deg, 40%, 86%), hsla(191deg, 96%, 96%, 0.5));
  background-size: contain, cover, auto;
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: 50% 50%, 10% 50%, 0% 0%;
  background-origin: padding-box, border-box, content-box;

Сокращение фона

Чтобы упростить стилизацию фонового слоя блока, особенно если требуется несколько фоновых слоев, существует сокращение, которое следует следующему конкретному шаблону:

background:
  <background-image>
  <background-position> / <background-size>?
  <background-repeat>
  <background-attachment>
  <background-origin>
  <background-clip>
  <background-color>?

Порядок важен в сокращенной форме объявления нескольких фонов. Значения положения и размера должны быть указаны через косую черту ( / ). Объявление исходного кода и поведения клипа в правильном порядке позволяет вам использовать преимущества установки ключевых слов, которые действительны для обоих одновременно.

Следующее объявление обрезает фон и создает его из поля содержимого:

background: url("https://assets.codepen.io/7518/blob.svg") 50%
      50% / contain no-repeat content-box;

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

background: url("https://assets.codepen.io/7518/pngaaa.com-1272986.png") 50% 50%/contain no-repeat padding-box, url("https://assets.codepen.io/7518/blob.svg") 10% 50% / cover border-box, linear-gradient(hsl(191deg, 40%, 86%), hsla(191deg, 96%, 96%, 0.5) ) 0% 0% / cover no-repeat content-box ;

Проверьте свое понимание

Проверьте свои знания о CSS-фонах

Фоновые изображения располагаются в верхнем левом углу блока CSS.

Истинный
Правильный!
ЛОЖЬ
В зависимости от внутреннего размера изображения может показаться, что оно не находится в верхнем левом углу блока CSS, необходимо явно использовать background-position для изменения положения фонового изображения по умолчанию.

По умолчанию фоновые изображения не повторяются.

ЛОЖЬ
background-repeat: no-repeat чтобы не повторять фоновое изображение. Кроме того, background-repeat: repeat-x и background-repeat: repeat-y можно использовать для предотвращения повторения по определенной оси.
Истинный
Правильный!

Какие из следующих объявлений background-position действительны?

background-position: 50% left
Когда значения CSS используются с ключевыми словами, порядок значений имеет значение.
background-position: top right 33%
Это расположит фоновое изображение в самом верху окна и на 33% от правого края поля.
background-position: right bottom
Это расположит фоновое изображение в самом правом и нижнем углу окна. Положения различных осей могут быть названы в любом порядке.
background-position: left
Это расположит фоновое изображение в самом левом углу поля и по центру по вертикали. Если указана только одна позиция оси, фоновое изображение центрируется по противоположной оси.

Чтобы установить фиксированное фоновое изображение в окне просмотра, вы используете:

background-position: fixed
«Это недопустимое значение для свойства background-position ».
background-fixed-to-viewport: true
background-fixed-to-viewport пока не существует в CSS.
background-attachment: fixed
background-attachment: fixed явно устанавливает фиксированное фоновое изображение в текущем окне просмотра.
background-attachment: scroll
' background-attachment — это свойство, используемое для установки фонового изображения, которое будет зафиксировано в области просмотра; однако scroll является значением по умолчанию для свойства, которое по умолчанию фиксирует фоновое изображение в поле, на которое не влияет содержимое внутри поля».

Фоновое происхождение фона в блоке CSS по умолчанию:

content-box
Допустимое значение для background-origin , но не значение по умолчанию.
border-box
Допустимое значение для background-origin , и его заранее заданные границы можно рисовать поверх фона, но это не значение по умолчанию.
padding-box
Значение по умолчанию для background-origin . Позволяет отображать фон за пределами содержимого и до границы блока.
margin-box
Хотя это распознаваемая область блока CSS, это недопустимое значение для свойства background-origin .