Proprietà CSS relative al layout a colonne

Proprietà CSS relative al layout a colonne

Questo articolo spiega le proprietà CSS relative al layout a colonne.

Puoi imparare come descrivere i layout a colonne.

YouTube Video

HTML per Anteprima

css-columns.html
 1<!DOCTYPE html>
 2<html lang="en">
 3<head>
 4    <meta charset="UTF-8">
 5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6    <title>CSS Properties Example</title>
 7    <link rel="stylesheet" href="css-base.css">
 8    <link rel="stylesheet" href="css-columns.css">
 9</head>
10<body>
11    <!-- Header -->
12    <header>
13        <h1>CSS Properties For Columns</h1>
14    </header>
15
16    <!-- Main content -->
17    <main>
18        <header>
19            <h2>Layout Related Properties</h2>
20        </header>
21        <article>
22            <h3>columns</h3>
23            <section style="width: 100%; height: 350px;">
24                <h4>Columns Example</h4>
25                <header><h4>columns: 100px 3; column-gap: 20px; column-rule: 2px solid #333;</h4></header>
26                <section class="sample-view">
27                    <section class="columns-container">
28                        <h5>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id odio sit amet eros feugiat semper.</h5>
29                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id odio sit amet eros feugiat semper.</p>
30                        <p>Donec vehicula est non sapien sollicitudin, id tincidunt velit volutpat.</p>
31                        <p>Pellentesque malesuada diam eu sem finibus scelerisque.</p>
32                        <p>Integer eget dolor nec est dignissim fermentum ut eget nunc.</p>
33                        <p>Morbi in nibh in lorem vestibulum sollicitudin.</p>
34                    </section>
35                </section>
36            </section>
37        </article>
38        <article>
39            <h3>order</h3>
40            <section style="height: 300px;">
41                <header><h4>column-width: 250px</h4></header>
42                <section class="sample-view">
43                    <div class="container">
44                        <div class="item item-1">Item 1</div>
45                        <div class="item item-2">Item 2</div>
46                        <div class="item item-3">Item 3</div>
47                    </div>
48                </section>
49            </section>
50        </article>
51    </main>
52</body>
53</html>

Layout a Colonne

colonne

1.columns-container {
2    columns: 100px 3;
3    column-gap: 20px;
4    column-rule: 2px solid #333;
5}
6
7h5 {
8  column-span: all;
9}

La proprietà CSS columns fornisce un modo pratico per visualizzare contenuti suddivisi in più colonne. Con una sola dichiarazione, puoi facilmente impostare la larghezza delle colonne e il numero di colonne, rendendolo adatto al design responsivo. È particolarmente efficace quando è richiesto un layout in cui il testo è visualizzato lungo verticalmente e disposto in più colonne, come nei giornali o nelle riviste.

  • In questo esempio, il contenuto è suddiviso in 3 colonne con uno spazio di 20px e una linea di 2px tra le colonne. Inoltre, l'elemento h5 si estende su più colonne.

columns è una scorciatoia per le proprietà column-width e column-count.

Sintassi della proprietà columns

1columns: <column-width> <column-count>;

columns segue questo formato.

  • <column-width>: Specifica la larghezza di ogni colonna. Puoi usare auto o qualsiasi unità di lunghezza (es., px, em, %, ecc.) come valore.
  • <column-count>: Specifica il numero di colonne. Espresso come valore numerico.
Proprietà column-width
1.container {
2  column-width: 250px;
3}

column-width è una proprietà che specifica la larghezza minima di ogni colonna. Quando utilizzata con column-count, è possibile posizionare e regolare automaticamente le colonne. Il browser tiene conto della larghezza del contenitore e calcola automaticamente il numero richiesto di colonne.

  • In questo esempio, la larghezza per colonna è di 250px e il numero ottimale di colonne è calcolato in base alla larghezza del contenitore.
column-count Proprietà
1.container {
2  column-count: 3;
3}

column-count è una proprietà che determina esplicitamente in quante colonne è suddiviso l'elemento specificato. A differenza di column-width, questa proprietà fissa il numero di colonne.

  • In questo esempio, il contenuto all'interno del contenitore è suddiviso in tre colonne.
column-gap Proprietà
1.container {
2  column-gap: 20px;
3}

column-gap è una proprietà che specifica lo spazio (il divario) tra ogni colonna. Esiste anche una proprietà comune con CSS Grid chiamata gap, ma column-gap è utile quando si desidera personalizzare solo i margini tra le colonne.

  • In questo esempio, c'è un margine di 20px tra ogni colonna. Il valore predefinito è 16px.
column-rule Proprietà
1.container {
2  column-rule: 2px solid #333;
3}

column-rule è una proprietà utilizzata per disegnare linee tra le colonne. Ha una sintassi simile alla proprietà border e consente di specificare la larghezza, lo stile e il colore della linea.

  • In questo esempio, è mostrata una linea nera continua con una larghezza di 2px tra le colonne. column-rule può essere suddivisa nelle seguenti tre proprietà.
    • column-rule-width: Specifica la larghezza della linea.
    • column-rule-style: Specifica lo stile della linea. Ad esempio, ci sono solid, dashed, dotted, ecc.
    • column-rule-color: Specifica il colore della linea.
column-span Proprietà
1h5 {
2  column-span: all;
3}

column-span è una proprietà che imposta uno specifico elemento in modo che si estenda su più colonne. È utilizzata principalmente per elementi come intestazioni o titoli. Ci sono due valori possibili:. - none: L'elemento non si estende su più colonne e si adatta a una sola colonna. Questo è il valore predefinito. - all: L'elemento viene visualizzato estendendosi su tutte le colonne.

  • In questo esempio, l'elemento h5 viene visualizzato estendendosi su più colonne.
Proprietà column-fill
1.container {
2  column-fill: balance;
3}

column-fill è una proprietà che controlla come il contenuto è distribuito tra le colonne. Normalmente, le colonne sono riempite in modo il più equo possibile, ma questa proprietà consente di specificare una disposizione diversa. Sono disponibili i seguenti valori:. - balance: I contenuti sono disposti per riempire uniformemente le colonne. Questo è il valore predefinito. - auto: Le colonne verranno riempite automaticamente. L'ultima colonna potrebbe diventare più lunga.

  • Questa impostazione regola affinché il contenuto sia distribuito equamente.
Utilizzo con le Media Query
1.container {
2  columns: 200px 3;
3}
4
5@media (max-width: 600px) {
6  .container {
7    columns: 1;
8  }
9}

La proprietà columns può essere combinata con le media query per supportare il design responsivo. È possibile modificare in modo flessibile il numero di colonne e le larghezze delle colonne in base alle diverse dimensioni dello schermo.

  • In questo esempio, quando la larghezza dello schermo è 600px o meno, ci sarà 1 sola colonna. Per schermi più ampi, verrà diviso in 3 colonne con una larghezza di 200px ciascuna.

Riepilogo

La proprietà CSS columns è uno strumento potente per implementare facilmente layout che utilizzano più colonne. È particolarmente utile per il design responsivo e i layout di testo che danno priorità alla leggibilità. Combinando le proprietà correlate, puoi personalizzare in modo flessibile il numero e la larghezza delle colonne, gli spazi, le decorazioni, ecc.

Questo consente un'implementazione semplice di design più sofisticati, quindi approfittane.

ordine

 1.container {
 2    all:initial;
 3    display: flex;
 4}
 5.item {
 6    padding: 10px;
 7    background-color: lightblue;
 8    margin: 5px;
 9}
10.item-1 {
11    order: 3;
12}
13.item-2 {
14    order: 1;
15}
16.item-3 {
17    order: 2;
18}

La proprietà CSS order è utilizzata per controllare l'ordine di visualizzazione degli elementi quando si utilizzano layout Flexbox o Grid. Normalmente, gli elementi vengono resi secondo il markup HTML, ma è possibile modificare il loro ordine visivo con la proprietà order. Questa proprietà aiuta a progettare interfacce utente flessibili e a creare design responsivi.

  • In questo esempio, gli elementi sono marcati in HTML come Item 1, Item 2, Item 3, ma l'ordine di visualizzazione cambia in Item 2, Item 3, Item 1 a causa della proprietà CSS order.

Basi della proprietà order

La proprietà order viene applicata agli elementi all'interno di contenitori Flexbox o Grid. Definisci l'ordine di posizionamento impostando valori interi per ogni elemento. Per impostazione predefinita, l'attributo order di tutti gli elementi è impostato su 0. Modificando questo valore, puoi specificare l'ordine in cui vengono visualizzati gli elementi.

Sintassi di Base
1.item {
2  order: <integer>;
3}
  • Puoi specificare qualsiasi numero intero per il valore di order. Possono essere utilizzati valori positivi, negativi o zero. Più piccolo è il valore, prima viene visualizzato l'elemento; più grande è il valore, più tardi viene visualizzato.

Utilizzo di Valori Positivi e Negativi

Puoi anche assegnare valori negativi alla proprietà order. Gli elementi con valori negativi vengono visualizzati prima dell'ordine predefinito.

1.item-1 {
2    order: -1;
3}
4.item-2 {
5    order: 2;
6}
7.item-3 {
8    order: 1;
9}

In questo esempio, Item 1 ha il valore order: -1, quindi viene visualizzato per primo. Al contrario, Item 3 ha il valore order: 1 e Item 2 ha il valore order: 2, quindi appaiono in quell'ordine.

order nel design responsivo

Nel design responsivo, è possibile cambiare l'ordine degli elementi in base alla dimensione dello schermo. Ad esempio, nella visualizzazione per dispositivi mobili, è possibile modificare l'ordine degli elementi per mostrare prima le informazioni importanti.

 1.item-1 {
 2    order: 1;
 3}
 4.item-2 {
 5    order: 2;
 6}
 7.item-3 {
 8    order: 3;
 9}
10
11/* Change the order on screens with a width of 800px or less */
12@media (max-width: 800px) {
13    .item-1 {
14        order: 3;
15    }
16    .item-2 {
17        order: 1;
18    }
19    .item-3 {
20        order: 2;
21    }
22}

In questo esempio, nella visualizzazione normale, gli elementi vengono visualizzati nell'ordine Item 1, Item 2, Item 3, ma quando la larghezza dello schermo è inferiore a 600px, Item 2 appare per primo, poi Item 3, e infine Item 1.

Considerazioni sull'utilizzo di order

L'utilizzo della proprietà order può generare un ordine visivo diverso rispetto all'ordine nel DOM tree. Ciò può influire sugli strumenti di accessibilità, come gli screen reader. Quando l'ordine cambia, la navigazione tramite tastiera e altre tecnologie assistive potrebbero non funzionare come previsto. Pertanto, è necessario considerare attentamente l'impatto sull'esperienza utente quando si utilizza order.

Conclusione

La proprietà CSS order è uno strumento potente che ti consente di controllare facilmente l'ordine di visualizzazione degli elementi nei layout Flexbox o Grid. Utilizzando valori positivi o negativi, puoi cambiare l'ordine degli elementi in modo flessibile, il che è particolarmente utile nel design responsivo. Tuttavia, è necessario prestare attenzione all'accessibilità e alla divergenza tra l'ordine visivo e la struttura HTML. Se questi aspetti vengono considerati adeguatamente, la proprietà order può essere utile per creare layout più dinamici e flessibili.

Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.

YouTube Video