Introduzione
È sempre una buona idea avere elementi visivi su un sito Web o un'applicazione Web perché aiutano a coinvolgere un utente, ma quando queste immagini sono così grandi che un utente deve scorrere, distorcendo l'intera pagina, si ottiene l'effetto opposto.
In questo articolo impareremo come ridimensionare le immagini con React utilizzando diversi approcci possibili.
Il ridimensionamento delle immagini in React è molto simile al ridimensionamento delle immagini nell'HTML tradizionale perché utilizziamo gli stili CSS (stile interno, in linea o esterno) tramite className
oppure style
attributo. Possiamo anche usare il height
ed width
attributi sul img
tagga direttamente.
Nota: In React, non utilizziamo class
come facciamo in HTML, invece, utilizziamo className
, che svolge la stessa funzione di classe e accetta valori di stringa.
Il codice generalmente assomiglierebbe a qualcosa sulla falsariga di:
<!-- index.css -->
img {
width: 500px;
height: 600px;
}
E la nostra immagine sarebbe simile a questa:
<!-- App.js -->
import Logo from './images/react-logo.png';
import './index.css';
const App = () => {
return (
<div>
<img src={Logo} alt="React Logo" />
</div>
);
};
Nota: abbiamo usato img
come selettore, possiamo decidere di dargli a className
e usalo come selettore.
Come ridimensionare un'immagine con stili in linea
Abbiamo usato lo stile esterno nell'esempio precedente, ma proprio come nell'HTML tradizionale, possiamo usare il style
attributo per aggiungere uno stile CSS. Il style
il valore dell'attributo deve essere un oggetto JavaScript con coppie chiave-valore:
import Logo from './images/react-logo.png';
const App = () => {
return (
<div>
<img style={{ width: 500, height: 600 }} src={Logo} alt="React Logo" />
</div>
);
};
Per impostazione predefinita, l'unità di base è in pixel, ma supponiamo di voler utilizzare altre unità come rem
, %
, vh
, ecc. Useremo string per il valore chiave degli stili:
import Logo from './images/react-logo.png';
const App = () => {
return (
<div>
<img style={{ width: "500%", height: "600%" }} src={Logo} alt="React Logo" />
</div>
);
};
Se abbiamo molte immagini che necessitano di uno stile simile e non vogliamo usare uno stile esterno, potremmo creare un oggetto per contenere questi oggetti di stile e quindi aggiungere l'oggetto al styles
attributo:
import Logo from './images/react-logo.png';
const App = () => {
const myImageStyle = { width: '500px', height: '600px' };
return (
<div>
<img style={myImageStyle} src={Logo} alt="" />
</div>
);
};
Come ridimensionare un'immagine con larghezza E altre ancora… altezza attributi
Nell'HTML tradizionale, un modo per ridimensionare le immagini è utilizzare il file height
ed width
proprietà con il img
tag e questo funziona anche con React:
Dai un'occhiata alla nostra guida pratica e pratica per l'apprendimento di Git, con le migliori pratiche, gli standard accettati dal settore e il cheat sheet incluso. Smetti di cercare su Google i comandi Git e in realtà imparare esso!
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>
);
};
Lo svantaggio principale di questo metodo è che giocherellare con l'altezza e la larghezza tende a distorcere le immagini, facendole restringere, allungare o altrimenti perdere il loro rapporto. Questo può essere risolto utilizzando object-fit: cover;
.
Stile delle nostre immagini
Quando usiamo il height
, width
, max-height
e altre proprietà CSS per ridimensionare le nostre immagini, tendono a distorcerle, facendole restringere o allungare.
È sempre una buona idea includere il object-fit
proprietà, che specifica come ridimensionare un'immagine per adattarla al suo contenitore. Questa proprietà può accettare una varietà di valori come contain
, cover
, fill
, none
ed scale-down
.
Altre proprietà CSS, come max-width
, min-width
, max-height
e min-height
, può definire i valori massimo e minimo che un'immagine può raggiungere, limitando la distorsione.
Conclusione
In questo articolo, abbiamo imparato come ridimensionare le immagini in React esaminando le varie opzioni a nostra disposizione.
Tuttavia, è preferibile utilizzare gli stili CSS piuttosto che dover impostare attributi fissi su queste immagini a meno che non sia assolutamente necessario quando si desidera ricevere questi valori in modo dinamico, nel qual caso è possibile utilizzare anche lo stile inline.