Современный CSS3 (рекомендуется на будущее и, вероятно, лучшее решение)
.selector{
background-size: cover;
/* stretches background WITHOUT deformation so it would fill the background space,
it may crop the image if the image's dimensions are in different ratio,
than the element dimensions. */
}
Максимум. растянуть без обрезки и деформации (может не заполнять фон) : background-size: contain;
Принудительное абсолютное растяжение (может вызвать деформацию, но не обрезать) : background-size: 100% 100%;
"Старый" CSS "всегда работает"
Абсолютное позиционирование изображения как первого дочернего элемента (относительного позиционирования) родителя и растягивание его до родительского размера.
HTML
<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>
Эквивалент CSS3 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"
});
});
Практический пример:
Эквивалент CSS3 background-size: contain;
:
Это может быть немного сложно - размер вашего фона, который переполняет родительский, будет иметь CSS, установленный на 100%, а другой - на автоматический.
Практический пример:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}
Эквивалент CSS3 background-size: 100% 100%;
:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}
PS: Чтобы сделать эквиваленты cover / contain «старым» способом полностью динамически (так что вам не нужно будет заботиться о переполнениях / соотношениях), вам нужно будет использовать javascript для определения соотношений для вас и установить размеры, как описано. ..