Nowoczesny CSS3 (zalecany na przyszłość i prawdopodobnie najlepsze rozwiązanie)
.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. */
}
Maks. rozciąganie bez przycinania i deformacji (może nie wypełniać tła) : background-size: contain;
Wymuś rozciągnięcie bezwzględne (może powodować deformację, ale bez przycięcia) : background-size: 100% 100%;
„Stary” CSS „zawsze działający” sposób
Bezwzględne pozycjonowanie obrazu jako pierwszego dziecka (pozycjonowanego względnie) rodzica i rozciąganie go do rozmiaru rodzica.
HTML
<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>
Odpowiednik CSS3 background-size: cover;
:
Aby osiągnąć to dynamicznie, musiałbyś użyć odwrotności metody zawierającej alternatywę (patrz poniżej), a jeśli chcesz wyśrodkować przycięty obraz, potrzebujesz JavaScript, aby zrobić to dynamicznie - np. Używając jQuery:
$('.selector img').each(function(){
$(this).css({
"left": "50%",
"margin-left": "-"+( $(this).width()/2 )+"px",
"top": "50%",
"margin-top": "-"+( $(this).height()/2 )+"px"
});
});
Praktyczny przykład:
Odpowiednik CSS3 background-size: contain;
:
To może być trochę trudne - wymiar tła, który przepełniłby rodzica, będzie miał CSS ustawiony na 100%, drugi na auto.
Praktyczny przykład:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}
Odpowiednik CSS3 background-size: 100% 100%;
:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}
PS: Aby wykonać odpowiedniki pokrycia / zawierania w „stary” sposób całkowicie dynamicznie (więc nie będziesz musiał przejmować się przepełnieniami / współczynnikami), musisz użyć javascript do wykrycia współczynników i ustawienia wymiarów zgodnie z opisem. ..