Kao web programer, velika je vjerojatnost da ste naišli na dva neprijatelja ovog članka: slike i rokove . Ponekad se iz nekih razloga vaše slike ne uklapaju u raspored i ne želite se satima zamatati oko toga.
Ova situacija dogodila mi se mnogo puta i učio sam na svojim greškama. Nema više hakiranja crne magije - evo mojih pet omiljenih tehnika za rukovanje veličinom slike.
na način "OMG TREBA MI OVO KOLIKO prije"
U petak je 17:00, morate završiti ovu stranicu, ali slike neće odgovarati rasporedu. Vrijeme je da iskoristite svoj čarobni trik!
.myImg { background-image: url("my-image.png"); background-size: cover; }
Zvuči poznato? Svi smo to već jednom učinili, ne osjećate li se kao da vas varam?
Korištenje background
svojstava vrlo je korisno, oni jednostavno rade. Ipak, imajte na umu da biste ih trebali koristiti samo za slike bez sadržaja ili kao zamjenu za tekst, a u nekim određenim slučajevima.
Put iz budućnosti
Što ako vam kažem da ova vrsta magije postoji i za
elemente? Pozdravi svojstvo objekta prilagođenog - koje, inače, također radi i za videozapise!
.myImg { object-fit: cover; width: 320px; height: 180px; }
To je sve narode! Pogledajte kako kada dohvatimo prijateljsku vrijednost cover
, također možemo koristiti contain
.
Ok, u čemu je zamka?
Nažalost object-fit
, neće raditi na IE i starijim verzijama Safarija, ali postoji polifil.

Način "Netflix"
Možda mislite "lijep trik, još jedan način koji ne funkcionira u starim preglednicima poput IE-a?". Ne brinite, ovaj radi svugdje i meni je najdraži! Morat ćete omotati svoju sliku s relativno podstavljenim roditeljem.
Zadržat ćemo omjer slike s postotkom na padding
imanju. Vaša će slika biti apsolutno dijete pune veličine.
Kôd izgleda ovako:
.wrapper { position: relative; padding-top: 56.25%; /* 16:9 Aspect Ratio */ } img { position: absolute; left: 0; top: 0; width: 100%; height: auto; }
"Hej čovječe, izgleda komplicirano."
Jednom kada dobijete koncept, tehnika je jednostavna i široko se koristi. Netflix to koristi!

Mali demo:
Jednostavan način
Možda već znate ovaj:
img { height: auto; width: 100%; /* even more control with max-width */ max-width: 720px; }
Ako vaš raspored nije previše kompliciran, u većini slučajeva uspije.
Način izvedbe (napredni)
Pod izvedbom mislim na vremena učitavanja. Velika slika heroja može je pokvariti i učiniti da se vaša stranica osjeća usporeno, posebno na mobilnim uređajima.
Jeste li znali da u modernim preglednicima možete promijeniti izvor slike ovisno o širini stranice? Za to srcset
je stvoreno!
Možete ih kombinirati s oznakom HTML 5 , koja se graciozno razgrađuje s
.
Ukratko
- Koristite
background-image
ako vaša slika nije dio sadržaja stranice. - Koristite
object-fit
ako vam nije stalo do IE. - Tehnika podstavljenih kontejnera, koju koristi Netflix, djeluje svugdje.
- U većini slučajeva samo dodajte
height: auto;
CSS. - Ako trebate brzo vrijeme učitavanja, upotrijebite
srcset
za učitavanje manjih slika na mobitel.