Ответ 1
добавлять
background-size:100% 100%;
к вашему css под фоновым изображением.
Вы также можете указать точные размеры, а именно:
background-size: 30px 40px;
Здесь: JSFiddle
Я хочу установить фоновое изображение для разных div, но мои проблемы:
Как я могу растянуть фоновое изображение, чтобы заполнить весь фон div?
#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
height:180px;
width:200px;
border: 1px solid red;
}
добавлять
background-size:100% 100%;
к вашему css под фоновым изображением.
Вы также можете указать точные размеры, а именно:
background-size: 30px 40px;
Здесь: JSFiddle
Вы можете использовать:
background-size: cover;
Или просто используйте большое фоновое изображение с помощью:
background: url('../images/teaser.jpg') no-repeat center #eee;
.selector{
background-size: cover;
/* stretches background WITHOUT deformation so it would fill the background space,
it may crop the image if the image dimensions are in different ratio,
than the element dimensions. */
}
Максимум. растянуть без обрезки или деформации (не может заполнить фон): background-size: contain;
Усилие абсолютного растяжения (может вызвать деформацию, но не обрезать): background-size: 100% 100%;
Абсолютное позиционирование изображения как первого потомка (относительно позиционированного) родителя и растяжение его до родительского размера.
HTML
<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>
background-size: cover;
:Чтобы добиться этого динамически, вам придется использовать альтернативу метода метода размещения (см. Ниже), и если вам нужно центрировать обрезанное изображение, вам потребуется JavaScript для этого динамически - например, с помощью jQuery:
$('.selector img').each(function(){
$(this).css({
"left": "50%",
"margin-left": "-"+( $(this).width()/2 )+"px",
"top": "50%",
"margin-top": "-"+( $(this).height()/2 )+"px"
});
});
Практический пример:
background-size: contain;
: Это может быть немного сложнее - размер вашего фона, который переполняет родительский элемент, будет иметь CSS, установленный на 100%, а другой - на автоматический. Практический пример:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}
background-size: 100% 100%;
:.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}
PS: Чтобы сделать эквиваленты покрытия/содержания "старым" способом полностью динамически (чтобы вам не приходилось заботиться о переполнениях/соотношениях), вам придется использовать javascript, чтобы определить соотношения для себя и установить размеры, как описано...
Для этого вы можете использовать свойство CSS3 background-size
. Напишите вот так:
#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
-moz-background-size:100% 100%;
-webkit-background-size:100% 100%;
background-size:100% 100%;
height:180px;
width:200px;
border: 1px solid red;
}
Проверьте это: http://jsfiddle.net/qdzaw/1/
Вы можете добавить:
#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
background-size: 100% 100%;
height:180px;
width:200px;
border: 1px solid red;
}
Подробнее об этом можно прочитать здесь: css3 background-size
body{
margin:0;
background:url('image.png') no-repeat 50% 50% fixed;
background-size: cover;
}
используя свойство css:
background-size: cover;
Использование: background-size: 100% 100%; Чтобы сделать фоновое изображение соответствующим размеру div.
Чтобы сохранить соотношение сторон, используйте background-size: 100% auto;
div {
background-image: url('image.jpg');
background-size: 100% auto;
width: 150px;
height: 300px;
}
Попробуйте что-то вроде этого:
div {
background-image: url(../img/picture1.jpg);
height: 30em;
background-repeat: no-repeat;
width: 100%;
background-position: center;
}