Autor Zpráva
marvays
Profil
Přeji dobrý den.

Snažím se nastylovat obrázek, který bude sloužit jako výplň divu. Potřebuji vytvořit css obrázku, který vyplní kompletně celý div o velikosti 255px na 255px stím, že chci dosáhnout toho, že daný obrázek se bude podle potřeby zmenšovat a posouvat na souřadnice tak, aby daný div vyplnil bezezbytku a zbytek co přeteče nebude zobrazen.

Přiznám se, že jsem do toho šel jako s jednoduchou záležitostí, ale po hodině usilovného zkoušení jsem se do toho celkem zamotal a už nevím, kde mi hlava stojí. poradí mi někdo?
Bude to sloužit jako součást stránek, kde nejsem schopen zajistit to, aby obrázky byly nahrávány ve čtvercovém formátu. A nechci tam mít po bocích bílá místa. Celé to chci připravit, že si kod poradí s obrázkem na výšku i na šířku.

Nemáte někdo ze zkušených už něco hotového? Moc by mi to pomohlo.
T-fon
Profil
Asi hledáš cover, ne?
marvays
Profil
Ten obrázek nemám jako pozadí. Ten obrázek v tom divu leží.


Začal jsem s tímto:
Ale evidentně tam něco chybí :)

HTML
<div class="rollOverWrapper">
   <img src="/images/product/102796.jpg" alt="produkt" class="BrowseProductImage>"
</div>

CSS
.rollOverWrapper {
    width: 255px;
    height: 255px;
    overflow: hidden;
}

img.BrowseProductImage {
    min-width: 255px;
    min-height: 255px;
    text-align: center;
    margin: 0 auto;
}
Kcko
Profil
marvays:
A je problém to tak udělat? Tj. dá t ho jako pozadí a nastavit mu background-size: cover?

Eventuelně můžeš použít object-fit: cover ale tam je o dost horší podpora.
marvays
Profil
Kcko:
A je problém to tak udělat? Tj. dá t ho jako pozadí a nastavit mu background-size: cover?
To bych musel zasahovat do kodu. A to není moje hřiště :) Navíc by to nemuselo být kompatibilní s následnými aktualizacemi systému. Ale určitě je to taky možnost.
T-fon
Profil
Btw. proč vlastně když ty obrázky mají furt stejnou velkost, tak se rovnou neukládají v téhle velikosti? A máš po starostech....
marvays
Profil
Asi nerozumím, jak to myslíš. Obrázky na vstupu mají různou velikost a různý poměr stran. to bohužel nezměním. umím změnit velikost, ale poměr stran ne.
T-fon
Profil
Vstupní obrázek vezmeš, pomocí nějaký knihovny ho ořízneš/zvětšíš/zmenšíš/... na výslednou velikost 255x255 při zachování poměru stran.
Tomáš123
Profil
marvays:
Riešili sme pred časom rovnaký problém. Jednalo sa o galériu fotiek, ktorá je ale prívetivejšia pre vyhľadávače s HTML obrázkom ako jednoduchší ekvivalent v CSS.

Po nahratí obrázku zo strany užívateľa sa zmeria pomer medzi výškou a šírkou (v PHP na to sú funkcie). V tvojom prípade budeš rozlišovať či je pomer (povedzme) šírky ku výške väčší alebo menší ako 1 a priraďovať podľa toho nejakému prvku nadradenému obrázku nejakú triedu. Ak je pomer práve 1, užívateľ nahral štvorec a v prípade správnej implementácie je jedno, či a ktorú z dvojice tried priradíš. Nepriradiť žiadnu a vyhnúť sa 2D transformáciám ak má obrázok správny pomer stojí za zváženie, viď podporu nižšie.

Ukážka riešenia: Živá ukázka
Pre funkčnosť je treba, aby prehliadač podporoval 2D transformácie (IE9+).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0