CSS-egenskaper som är relaterade till kolumnlayout

CSS-egenskaper som är relaterade till kolumnlayout

Den här artikeln förklarar CSS-egenskaper som är relaterade till kolumnlayout.

Du kan lära dig hur man beskriver kolumnlayouter.

YouTube Video

HTML för förhandsgranskning

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>

Kolumnlayout

kolumner

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}

CSS-egenskapen columns erbjuder ett enkelt sätt att visa innehåll uppdelat i flera kolumner. Med en enda deklaration kan du enkelt ställa in kolumnbredd och antal kolumner, vilket gör det lämpligt för responsiv design. Det är särskilt effektivt när en layout krävs där text visas långt vertikalt och arrangeras i flera kolumner, som i tidningar eller magasin.

  • I det här exemplet delas innehållet in i 3 kolumner med ett 20px mellanrum och en 2px linje mellan kolumnerna. Dessutom sträcker sig h5-elementet över flera kolumner.

columns är en förkortning för egenskaperna column-width och column-count.

Syntax för egenskapen columns

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

columns följer detta format.

  • <column-width>: Anger bredden på varje kolumn. Du kan använda auto eller vilken längdenhet som helst (t.ex. px, em, %, etc.) som värde.
  • <column-count>: Anger antalet kolumner. Uttryckt som ett numeriskt värde.
Egenskapen column-width
1.container {
2  column-width: 250px;
3}

column-width är en egenskap som anger den minsta bredden för varje kolumn. När den används tillsammans med column-count blir automatisk placering och justering av kolumner möjlig. Webbläsaren tar hänsyn till behållarens bredd och beräknar automatiskt det erforderliga antalet kolumner.

  • I det här exemplet är bredden per kolumn 250px, och det optimala antalet kolumner beräknas baserat på behållarens bredd.
column-count Egenskap
1.container {
2  column-count: 3;
3}

column-count är en egenskap som uttryckligen anger hur många kolumner det angivna elementet delas in i. Till skillnad från column-width fastställer detta antalet kolumner.

  • I det här exemplet delas innehållet i containern upp i tre kolumner.
column-gap Egenskap
1.container {
2  column-gap: 20px;
3}

column-gap är en egenskap som anger utrymmet (gapet) mellan varje kolumn. Det finns också en gemensam egenskap med CSS Grid kallad gap, men column-gap är användbar när du vill anpassa endast marginalerna mellan kolumner.

  • I det här exemplet finns det en 20px marginal mellan varje kolumn. Standardvärdet är 16px.
column-rule Egenskap
1.container {
2  column-rule: 2px solid #333;
3}

column-rule är en egenskap för att rita linjer mellan kolumner. Den har en syntax liknande border-egenskapen och låter dig ange linjens bredd, stil och färg.

  • I det här exemplet visas en solid svart linje med en bredd på 2px mellan kolumnerna. column-rule kan delas upp i följande tre egenskaper.
    • column-rule-width: Anger linjens bredd.
    • column-rule-style: Anger linjens stil. Till exempel finns solid, dashed, dotted med flera.
    • column-rule-color: Anger linjens färg.
column-span Egenskap
1h5 {
2  column-span: all;
3}

column-span är en egenskap som ställer in ett specifikt element så att det sträcker sig över flera kolumner. Den används främst för element som rubriker eller titlar. Det finns två möjliga värden:. - none: Elementet sträcker sig inte över kolumner och passar inom en kolumn. Det här är standardvärdet. - all: Elementet visas över alla kolumner.

  • I det här exemplet visas h5-elementet så att det sträcker sig över flera kolumner.
column-fill Egenskap
1.container {
2  column-fill: balance;
3}

column-fill är en egenskap som kontrollerar hur innehåll fördelas över kolumner. Normalt fylls kolumnerna så jämnt som möjligt, men denna egenskap låter dig ange en annan fördelning. Följande värden är tillgängliga:. - balance: Innehållet arrangeras för att fylla kolumnerna jämnt. Det här är standardvärdet. - auto: Kolumner fylls automatiskt. Den sista kolumnen kan bli längre.

  • Denna inställning justerar så att innehållet fördelas jämnt.
Användning med mediaval
1.container {
2  columns: 200px 3;
3}
4
5@media (max-width: 600px) {
6  .container {
7    columns: 1;
8  }
9}

columns-egenskapen kan kombineras med mediaval för att stödja responsiv design. Du kan flexibelt ändra antalet kolumner och kolumnbredder beroende på olika skärmstorlekar.

  • I detta exempel kommer det att finnas 1 kolumn när skärmbredden är 600px eller mindre. För bredare skärmar kommer det att delas upp i 3 kolumner med en bredd på 200px vardera.

Sammanfattning

CSS-egenskapen columns är ett kraftfullt verktyg för att enkelt implementera layouter med flera kolumner. Det är särskilt användbart för responsiv design och textlayouter som prioriterar läsbarhet. Genom att kombinera relaterade egenskaper kan du flexibelt anpassa antalet och bredden på kolumner, mellanrum, dekorationer etc.

Detta möjliggör enkel implementering av mer sofistikerade designer, så dra nytta av det.

ordning

 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}

CSS-egenskapen order används för att kontrollera visningsordningen för element när man använder Flexbox eller Grid-layouter. Normalt återges element enligt HTML-strukturen, men du kan ändra deras visuella ordning med hjälp av order-egenskapen. Denna egenskap hjälper till att designa flexibla användargränssnitt och skapa responsiva designer.

  • I detta exempel är elementen märkta i HTML som Item 1, Item 2, Item 3, men visningsordningen ändras till Item 2, Item 3, Item 1 på grund av CSS-egenskapen order.

Grunderna i order-egenskapen

order-egenskapen tillämpas på objekt inom Flexbox- eller Grid-kontainrar. Du definierar placeringen genom att ange heltalsvärden för varje objekt. Som standard är order för alla objekt inställd på 0. Genom att ändra detta värde kan du ange i vilken ordning objekten visas.

Grundläggande syntax
1.item {
2  order: <integer>;
3}
  • Du kan ange vilket heltal som helst för order-värdet. Positiva, negativa eller nollvärden kan användas. Ju mindre värde, desto tidigare visas elementet, och ju större värde, desto senare visas det.

Att använda positiva och negativa värden

Du kan också tilldela negativa värden till order-egenskapen. Element med negativa värden visas före den förvalda ordningen.

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

I detta exempel är Item 1 inställt på order: -1, så det visas först. Däremot är Item 3 inställt på order: 1 och Item 2order: 2, så de visas i den ordningen.

order i responsiv design

I responsiv design är det möjligt att ändra elementens ordning beroende på skärmstorlek. Till exempel, i mobilvy kan du ändra elementens ordning för att visa viktig information först.

 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}

I detta exempel visas objekten i normalvy i ordningen Item 1, Item 2, Item 3, men när skärmbredden är under 600px visas Item 2 först, därefter Item 3 och till sist Item 1.

Överväganden för order

Att använda order-egenskapen kan resultera i en visuell ordning som skiljer sig från ordningen i DOM-trädet. Detta kan påverka hjälpmedel, såsom skärmläsare. När ordningen ändras kan tangentbordsnavigering och annan stödteknik fungera oväntat. Därför är det nödvändigt att noggrant överväga påverkan på användarupplevelsen när du använder order.

Slutsats

CSS-egenskapen order är ett kraftfullt verktyg som låter dig enkelt kontrollera visningsordningen för element i Flexbox- eller Grid-layouts. Genom att använda positiva eller negativa värden kan du flexibelt ändra elementens ordning, vilket är särskilt användbart i responsiv design. Dock måste man ta hänsyn till tillgänglighet och skillnaden mellan visuell ordning och HTML-struktur. Om dessa aspekter övervägs noggrant kan order-egenskapen vara användbar för att skapa mer dynamiska och flexibla layouter.

Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.

YouTube Video