Próbuję uzyskać obraz (umieszczony dynamicznie, bez ograniczeń co do wymiarów) tak szeroki, jak jego nadrzędny element div, ale tylko wtedy, gdy ta szerokość nie jest szersza niż jego własna szerokość w 100%. Próbowałem tego bezskutecznie:
img {
width: 100%;
height: auto;
max-width: 100%;
}
Wiele z tych obrazów jest znacznie szerszych niż ich nadrzędny element div, dlatego chciałbym, aby odpowiednio zmieniły rozmiar, ale kiedy pojawia się tam mały obraz i zostaje przeskalowany poza normalne wymiary, wygląda to naprawdę okropnie. Czy jest na to sposób?
max-width: 100%
?Odpowiedzi:
Po prostu określ
max-width: 100%
sam, to powinno wystarczyć.źródło
Znalazłem ten post w wyszukiwarce Google i rozwiązałem mój problem dzięki odpowiedzi @jwal, ale dodałem jeden dodatek do jego rozwiązania.
W związku z powyższym zmieniłem max-width na wymiary kontenera treści, w którym znajduje się mój obraz. W tym przypadku jest to: szerokość kontenera - dopełnienie - obrzeże = max szerokość
W ten sposób mój obraz nie wyrwie się z zawierającego div, a nadal mogę umieścić obraz wewnątrz elementu div zawartości.
Testowałem w IE 9, FireFox 18.0.2 i Chrome 25.0.1364.97, Safari iOS i wydaje się, że działa.
Dodatkowe: przetestowałem to na obrazie o szerokości 1024 pikseli wyświetlanym przy 678px (maksymalna szerokość) i obrazie o szerokości 500px wyświetlanym przy 500px (szerokość obrazu).
źródło
width:auto !important;
rozwiązało problem w IE11, gdzie obraz byłby większy niż jego kontener, a IE11 nie zmniejszał obrazu. Ustawienie tego wimg
selektorze posortowało problem w IE11. Jednak ustawieniewidth:100%;
bez drugiej reguły nic nie dało w IE11. Zatem „przesłonięcie” musi zostać uwzględnione, aby obraz został przeskalowany do rozmiaru jego kontenera.Ustawienie szerokości 100% to pełna szerokość elementu div, w którym się on znajduje, a nie oryginalny pełnowymiarowy obraz. Nie da się tego zrobić bez JavaScript lub innego języka skryptowego, który może zmierzyć obraz. Jeśli możesz mieć stałą szerokość lub stałą wysokość elementu div (np. Szerokość 200 pikseli), nie powinno być zbyt trudno nadać obrazowi zakres do wypełnienia. Ale jeśli umieścisz obraz 20x20 pikseli w polu 200x300 pikseli, nadal będzie on zniekształcony.
źródło
źródło
Powinieneś ustawić maksymalną szerokość, a jeśli chcesz, możesz również ustawić wyściółkę na jednej ze stron. W moim przypadku max-width: 100% była dobra, ale obraz znajdował się tuż obok końca ekranu.
źródło
Miałem również ten sam problem, ale ustawiłem wartość wysokości w moim CSS na auto i to rozwiązało mój problem. Nie zapomnij też zrobić właściwości display.
źródło
Znalazłem odpowiedź, która zadziałała dla mnie i można ją znaleźć pod następującym linkiem:
Kontenery o pełnej szerokości u rodziców o ograniczonej szerokości
źródło
Jeśli obraz jest mniejszy niż rodzic ...
źródło
Korzystałbym z nieruchomości
display: table-cell
Oto link
źródło