Pracuję nad responsywnym projektem, który prezentuje zdjęcia w siatce. Same zdjęcia mogą mieć różne proporcje i rozmiary. Co więcej, komórki siatki, w których są umieszczone, również nie mają stałej szerokości, są skalowane podczas zmiany rozmiaru przeglądarki. Co więcej, każda komórka siatki, choć dynamiczna na szerokość i wysokość, ma taki sam rozmiar, niezależnie od obrazu w środku.Czy istnieje odpowiednik img (javascript) w rozmiarze tła: okładka?
Aby prawidłowo pokazać zdjęcia w tej bardzo dynamicznej sytuacji, znalazłem działający przepis: każde zdjęcie to w zasadzie element div z obrazem ustawionym jako obraz tła. Aby poprawnie skalować nieznaną szerokość/wysokość obrazu wewnątrz siatki o dynamicznym rozmiarze, korzystam z funkcji tło-rozmiar: okładka CSS3.
Efekt końcowy jest fantastyczny, robi dokładnie to, co chcę pod względem interfejsu i wyświetlacza. Mimo to nie jestem zadowolony z ograniczonej dostępności tego rozwiązania: nie jest ono przyjazne SEO i nie jest przyjazne dla wtyczek (pomyśl o wtyczkach społecznościowych). Dlatego próbuję odtworzyć sytuację, w której pracuję, ale tym razem używając dobrych starych tagów img zamiast CSS.
Wiem, że są IE8 i poniżej polyfills dla wielkości tła: okładka, ale nie szukam, szukam rozwiązania opartego na znacznikach img. Znalazłem również artykuły wykorzystujące techniki bezwzględnego pozycjonowania, a także właściwość klipu CSS, ale pamiętaj, że mój projekt nie ma absolutnej wielkości.
Domyślam się, że szukam javascriptowego rutyny, który ma logikę wielkości tła: pokrycie dynamicznego rozmiaru, w sytuacji, gdy zarówno źródło (wymiary obrazu) jak i cel (pole wyświetlania) są dynamiczne w rozmiar.
Czy istnieje taki odpowiednik javascript dla tła: cover, który działa na znacznikach img?
powinieneś być w stanie użyć szerokości: 100% lub wysokości: 100%, aby uzyskać jak największy efekt w rozmiarze tła: okładka. To może nie działać, jeśli masz mieszankę bardzo różnych współczynników proporcji. –
@LieRyan Dzięki, dodałem jedno dodatkowe wymaganie do mojej odpowiedzi: każda komórka siatki ma ten sam rozmiar, dynamiczny rozmiar oparty na szerokości okna. Ustawienie jednego wymiaru na 100% częściowo wykona zadanie, ale nie wyśrodkuje obrazu tak, jak ma to miejsce w przypadku "okładki". – Ferdy
Czy po prostu ustawienie "img {max-width: 100%;}" może nie zrobić tego, czego szukasz? –