Torna al blog

Implementare Flex Layout in Angular: una guida pratica

Implementare Flex Layout in Angular: una guida pratica

Introduzione

CSS Flex Layout viene utilizzato per creare layout fluidi e flessibili. Tuttavia, quando si utilizza Angular ci sono scenari in cui abbiamo bisogno di un controllo più dinamico sui layout. Inoltre, l'uso di CSS Flexbox richiede uno styling complicato che può essere difficile per molti sviluppatori. Flex Layout è un motore di componenti che mira a risolvere questo problema. Fornisce un set di direttive disponibili per l'implementazione nelle tue applicazioni.

Flex Layout utilizza Typescript rendendolo ideale per le applicazioni Angular. Non sono necessari fogli di stile esterni e si possono utilizzare diverse direttive per creare layout reattivi. In questo tutorial, creeremo una semplice applicazione Angular e inietteremo Flex Layout per disporre i nostri componenti.

Cominciamo!

Prerequisiti

Configurazione del progetto

Qui dobbiamo eseguire due passaggi:

  • Dobbiamo configurare una nuova applicazione Angular.
  • Dovremo installare Flex Layout da npx in modo da poterlo importare e utilizzare nella nostra applicazione.

Per creare una nuova applicazione Angular, apri il terminale ed esegui il comando seguente:

Qui stiamo creando una nuova applicazione Angular utilizzando @angular/cli. Il nome della nostra applicazione è angular-flex-example. Useremo CSS anziché Sass o Less per lo stile. Inoltre, specificheremo che non abbiamo bisogno del routing. Non ci interessano nemmeno i test, quindi salteremo anche quelli.

Ora che la tua applicazione è pronta, naviga nella directory dell'applicazione ed esegui il comando seguente per installare Flex Layout:

Una volta che il comando precedente ha completato l'installazione, aggiungi il codice seguente nel modulo della tua app per importare FlexLayoutModule:

Successivamente, esegui il comando seguente per assicurarti che tutto funzioni come previsto:

La tua applicazione sarà servita su localhost:4200 per impostazione predefinita. Naviga su questo URL nel browser web. Vedrai il messaggio: angular-flex-example is running!. Una volta completata questa configurazione, progettiamo il nostro template utilizzando Flex Layout.

Creare il Flex Layout

Qui aggiungeremo del codice in app.component.html per utilizzare il Flex Layout con FlexLayoutModule. Il nostro risultato finale sarà simile alla figura seguente:

Flex Layout in Angular image 1

Per ottenere il risultato sopra indicato, apri il file app.component.css nel tuo editor e aggiungi le righe di codice seguenti:

Ora che hai aggiunto il codice sopra, apri il file app.component.html e aggiungi il seguente codice. Questo codice ha due div container e cinque div interni:

Dopodiché, compila ed esegui la tua applicazione. Vedrai cinque div impilati l'uno sull'altro perché finora non abbiamo fornito alcun layout. Per aggiungere il fxLayout aggiungi il codice qui sotto:

Nel codice sopra, dopo aver applicato questo fxLayout, gli stili delle proprietà CSS display:flex e flex-direction:row  vengono applicati al container divs. Ora, quando esegui l'applicazione, avrai tre div sulla prima riga e due div sulla riga inferiore.

Successivamente, aggiungiamo fxLayoutAlign e fxLayoutGap per migliorare il nostro layout:

Questo applicherà gli stili place-content: stretch center e align-items: stretch al contenitore div. Applicherà anche 10px di spazio tra gli elementi flex.

Ora che abbiamo applicato fxLayout, è il momento di rendere il nostro layout responsivo:

Questo codice imposterà il breakpoint per gli schermi extra piccoli xs. Lo schermo cambierà il layout da riga predefinita a colonna e la dimensione dello spazio si ridurrà da 10px a 0px negli schermi extra piccoli. Puoi testarlo eseguendo l'applicazione e ridimensionando la finestra a xs (meno di 599px di larghezza). Osserverai la modifica dello stile.

Per varie dimensioni dello schermo abbiamo diversi suffissi:

  • sm  – piccolo

  • md  – medio

  • lg  – grande

  • xl  – extra-grande

Abbiamo anche direttive per gli elementi figli. Aggiungi fxFlex  come nel codice qui sotto:

Questo applicherà flex-grow: 1, flex-shrink: 1, e flex-basis: 100% al layout. Se specifichi il valore di larghezza, applicherà la max-width proprietà.

Aggiungiamo fxFlexOrder e fxFlexOffset:

Utilizzando questo codice abbiamo applicato order: 3 al secondo elemento. Imposterà anche il margin-left: 50px al quarto elemento. Ora, se esegui l'applicazione, vedrai che il secondo elemento si trova nella terza posizione della riga, mentre il quarto elemento ottiene uno spazio di 30px dall'inizio.

In sintesi

In questo tutorial abbiamo imparato come implementare Flex Layout nelle app Angular. Questo sarà utile in quanto saremo in grado di utilizzare layout CSS Flexbox pronti all'uso senza dover codificare lo stile da soli. Se hai bisogno di ulteriori informazioni, fai riferimento al Flex Layout Wiki sulla pagina GitHub.

Per mantenere le cose semplici in questo tutorial, non abbiamo utilizzato il binding per associare i valori nella classe del componente. Tuttavia, sia il binding unidirezionale che quello bidirezionale sono possibili nella classe del componente [fxLayout]="la tua direzione del layout". Questo ti darà un maggiore controllo per creare layout e consentirà di gestire casi d'uso dinamici.

Le app Angular utilizzano Node.js come runtime. Se vuoi saperne di più su Node.js e su come distribuire applicazioni Node.js su Docker, dai un'occhiata al nostro Come distribuire un'app Node.js (Express.js) con Docker su Ubuntu 20.04 tutorial. Per saperne di più su Angular, dai un'occhiata al nostro tutorial  Navigazione con RouterLink, Navigate e NavigateByUrl in Angular Router.

Buona programmazione!

author

Hark Labs

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.