Почему в теле не работает background-origin

Background-origin успешно протестирован в div, но не в теле https://chestnuttree.github.io/helloWord/pic1.png

Затем я узнал, что фоновое происхождение тела работает, добавляя цвет фона к родительскому элементу тела, HTML https://chestnuttree.github.io/helloWord/pic2.png

body {
  padding: 10px;
  background: url(/i/eg_bg_03.gif) no-repeat #58a bottom right;
  background-origin: content-box;
}

html {
  background: #fff;
}

Почему это ?

Просто интересно, для чего вам нужен background-origin? Чего вы пытаетесь достичь?

Seno 10.07.2019 05:34

@Seno: я обнаружил эту проблему, когда изучал некоторые связанные свойства CSS и практиковал демонстрацию, но не нашел причину. мне было немного любопытно

chestNutTree 10.07.2019 06:09
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
2
125
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Фон, примененный к элементу body, особенный, потому что он будет распространяться на html, а затем на холст:

For documents whose root element is an HTML HTML element or an XHTML html element [HTML]: if the computed value of background-image on the root element is none and its background-color is transparent, user agents must instead propagate the computed values of the background properties from that element’s first HTML BODY or XHTML body child element. The used values of that BODY element’s background properties are their initial values, and the propagated values are treated as if they were specified on the root element. It is recommended that authors of HTML documents specify the canvas background for the BODY element rather than the HTML element. red

В приведенном ниже примере я применяю фон к телу, но на самом деле эти свойства применяются к html, поэтому заполнение не влияет на вычисление источника.

body {
  padding: 10px;
  background: url(https://picsum.photos/id/10/50/50) no-repeat #58a bottom right;
  background-origin: content-box;
  margin:0;
  height:100vh;
  box-sizing:border-box;
}

Вместо этого добавьте отступы в html, и background-origin будет работать:

body {
  background: url(https://picsum.photos/id/10/50/50) no-repeat #58a bottom right;
  background-origin: content-box;
  margin:0;
  height:100%;
  padding:10px;
  box-sizing:border-box;
}

html {
  padding:10px;
  height:100%;
  box-sizing:border-box;
}

Или примените к html фон, отличный от transparent, и вы остановите распространение:

body {
  background: url(https://picsum.photos/id/10/50/50) no-repeat #58a bottom right;
  background-origin: content-box;
  margin:0;
  height:100%;
  padding:10px;
  box-sizing:border-box;
}

html {
  padding:10px;
  height:100%;
  box-sizing:border-box;
  background:red;
}

Другие вопросы по теме