Ответ 1
Я не верю, что вы можете сделать фоновое изображение переполнением своего div. Изображения, помещенные в теги изображений, могут переполнять их родительский div, но фоновые изображения ограничены div, для которых они являются фоном.
У меня есть нижний колонтитул со 100% шириной. Это примерно 50 пикселей в зависимости от его содержания.
Можно ли дать этому #footer фоновое изображение, которое переполняет этот div?
Изображение около 800x600px, и я хочу, чтобы оно было расположено в левом нижнем углу нижнего колонтитула. Он должен выглядеть как фоновое изображение для моего сайта, но я уже установил фоновое изображение на моем теле. Мне нужно другое изображение, расположенное в левом нижнем углу моего сайта, и div #footer идеально подходит для этого.
#footer {
clear: both;
width: 100%;
margin: 0;
padding: 30px 0 0;
background:#eee url(images/bodybgbottomleft.png) no-repeat left bottom fixed;
}
Изображение устанавливается в нижний колонтитул, однако он не переполняет div. Возможно ли это сделать?
overflow:visible
не выполняет эту работу!
Я не верю, что вы можете сделать фоновое изображение переполнением своего div. Изображения, помещенные в теги изображений, могут переполнять их родительский div, но фоновые изображения ограничены div, для которых они являются фоном.
Существует очень простой трюк. Установите прописку этого div на положительное число и маржу на negativ
#wrapper {
background: url(xxx.jpeg);
padding-left: 10px;
margin-left: -10px;
}
Вы можете использовать элемент css3 psuedo, как показано в этой статье
https://www.exratione.com/2011/09/how-to-overflow-a-background-image-using-css3/
Нет, вы не можете.
Но в качестве прочного решения я бы предложил классифицировать этот первый div как position:relative
и использовать div::before
для создания базового элемента, содержащего ваше изображение. Классифицируется как position:absolute
, вы можете перемещать его в любом месте относительно вашего начального div.
Не забудьте добавить контент к этому новому элементу. Вот пример:
div {
position: relative;
}
div::before {
content: ""; /* empty but necessary */
position: absolute;
background: ...
}
Примечание. Если вы хотите, чтобы он был "сверху" родительского div, вместо этого используйте div::after
.
Вы уже упоминаете фоновое изображение на body
.
Вы можете установить это фоновое изображение на html
, а новое - на body
. Это, конечно, будет зависеть от вашего макета, но вам не нужно будет использовать его нижний колонтитул.
Не совсем - фоновое изображение ограничено элементом, к которому он применяется, а свойства переполнения применяются только к содержимому (например, разметке) внутри элемента.
Вы можете добавить еще один div в div нижнего колонтитула и применить к нему фоновое изображение, но вместо этого переполнение.
Это может помочь.
Для этого требуется, чтобы высота нижнего колонтитула была фиксированным числом. В принципе, у вас есть div внутри нижнего колонтитула с его нормальным содержимым, position: absolute
, а затем изображение с position: relative
, отрицательное z-index
, поэтому оно остается "ниже" всего и отрицательное значение top
высота нижнего колонтитула минус высота изображения (в моем примере, 50px - 600px = -550px
). Протестировано в Chrome 8, FireFox 3.6 и IE 9.
Использование обложки фона для меня работало.
#footer {
background-color: #eee;
background-image: url(images/bodybgbottomleft.png);
background-repeat: no-repeat;
background-size: cover;
clear: both;
width: 100%;
margin: 0;
padding: 30px 0 0;
}
Очевидно, нужно знать о проблемах с поддержкой, проверьте, могу ли я использовать: http://caniuse.com/#search=background-size