Wprowadzenie
Zawsze dobrze jest mieć wizualizacje w witrynie lub aplikacji internetowej, ponieważ pomagają zaangażować użytkownika, ale gdy te obrazy są tak duże, że użytkownik musi je przewijać, zniekształcając całą stronę, uzyskuje się odwrotny efekt.
W tym artykule dowiemy się, jak zmieniać rozmiar obrazów za pomocą Reacta, korzystając z kilku możliwych podejść.
Zmiana rozmiaru obrazów w React jest bardzo podobna do zmiany rozmiaru obrazów w tradycyjnym HTML, ponieważ używamy stylów CSS (wewnętrznych, wbudowanych lub zewnętrznych) poprzez className
albo style
atrybut. Możemy również użyć height
i width
atrybuty na img
tag bezpośrednio.
Uwaga: W React nie używamy class
tak jak robimy w HTML, zamiast tego używamy className
, który pełni tę samą funkcję co klasa i akceptuje wartości łańcuchowe.
Kod ogólnie wyglądałby mniej więcej tak:
<!-- index.css -->
img {
width: 500px;
height: 600px;
}
A nasz obraz wyglądałby tak:
<!-- App.js -->
import Logo from './images/react-logo.png';
import './index.css';
const App = () => {
return (
<div>
<img src={Logo} alt="React Logo" />
</div>
);
};
Uwaga: użyliśmy img
jako selektor możemy zdecydować się na nadanie mu className
i użyj go jako selektora.
Jak zmienić rozmiar obrazu za pomocą stylów wbudowanych
W poprzednim przykładzie użyliśmy zewnętrznych stylów, ale podobnie jak w tradycyjnym HTML, możemy użyć style
atrybut, aby dodać styl CSS. The style
wartość atrybutu musi być obiektem JavaScript z parami klucz-wartość:
import Logo from './images/react-logo.png';
const App = () => {
return (
<div>
<img style={{ width: 500, height: 600 }} src={Logo} alt="React Logo" />
</div>
);
};
Domyślnie podstawową jednostką są piksele, ale załóżmy, że chcemy użyć innych jednostek, takich jak rem
, %
, vh
, itp. Użyjemy string jako wartości klucza stylów:
import Logo from './images/react-logo.png';
const App = () => {
return (
<div>
<img style={{ width: "500%", height: "600%" }} src={Logo} alt="React Logo" />
</div>
);
};
Jeśli mamy wiele obrazów, które wymagają podobnej stylizacji i nie chcemy używać zewnętrznych stylów, możemy utworzyć obiekt do przechowywania obiektów tych stylów, a następnie dodać obiekt do styles
atrybut:
import Logo from './images/react-logo.png';
const App = () => {
const myImageStyle = { width: '500px', height: '600px' };
return (
<div>
<img style={myImageStyle} src={Logo} alt="" />
</div>
);
};
Jak zmienić rozmiar obrazu za pomocą szerokość oraz wysokość Atrybuty
W tradycyjnym HTML jednym ze sposobów zmiany rozmiaru obrazów jest użycie height
i width
nieruchomość z img
tag i działa to również z React:
Zapoznaj się z naszym praktycznym, praktycznym przewodnikiem dotyczącym nauki Git, zawierającym najlepsze praktyki, standardy przyjęte w branży i dołączoną ściągawkę. Zatrzymaj polecenia Google Git, a właściwie uczyć się to!
import Logo from './images/react-logo.png';
const App = () => {
return (
<div>
<img src={Logo} width="500" height="600" alt="" />
<img src={Logo} width={500} height={600} alt="" />
</div>
);
};
Główną wadą tej metody jest to, że manipulowanie wysokością i szerokością ma tendencję do zniekształcania obrazów, powodując ich kurczenie się, rozciąganie lub w inny sposób utratę proporcji. Można to naprawić za pomocą object-fit: cover;
.
Stylizacja naszych obrazów
Kiedy korzystamy z height
, width
, max-height
i inne właściwości CSS, aby zmienić rozmiar naszych obrazów, mają tendencję do ich zniekształcania, powodując ich kurczenie się lub rozciąganie.
Zawsze dobrym pomysłem jest uwzględnienie object-fit
właściwość, która określa, w jaki sposób obraz powinien być zmieniany, aby pasował do jego kontenera. Ta właściwość może przyjmować różne wartości, takie jak contain
, cover
, fill
, none
i scale-down
.
Inne właściwości CSS, takie jak max-width
, min-width
, max-height
, min-height
, może określić maksymalne i minimalne wartości, na jakie może trafić obraz, ograniczając zniekształcenia.
Wnioski
W tym artykule dowiedzieliśmy się, jak zmieniać rozmiar obrazów w React, przyglądając się różnym dostępnym opcjom.
Jednak lepiej jest używać stylów CSS, niż ustawiać stałe atrybuty dla tych obrazów, chyba że jest to absolutnie konieczne, gdy chcesz otrzymywać te wartości dynamicznie, w takim przypadku można również użyć stylów wbudowanych.