Webapplikationer er chat-layouts, en uundværlig del af mange platforme. I denne vejledning vil du lære, hvordan du kan oprette et simpelt chat-layout med HTML og CSS ved hjælp af Flexbox. Flexbox gør det muligt at designe layout fleksibelt og responsivt, hvilket især er uundværligt i dagens samfund. Her vil jeg forklare dig de nødvendige trin for at oprette et brugervenligt chat-layout.
Vigtigste pointer
- Flexbox er ideel til at arrangere elementer i et layout.
- Med CSS-klasser kan du style forskellige beskeder efter afsender og modtager.
- Input-elementer og knapper kan positioneres fleksibelt.
Trin-for-trin vejledning
Først ser vi på HTML-grundstrukturen, som vi har brug for til vores chat-layout.
Du starter med at oprette et div med klassen root, som fungerer som en container til dit layout. Inden i dette div er der yderligere containere som beskeder og området til indtastning.

For at vise beskederne, opretter du en anden div med klassen messages. Her vises beskederne under hinanden. Hver besked vises gennem div-elementer med klassen MSG, hvor du skifter mellem own (for egne beskeder) og other (for beskeder fra chatpartnere).
Nu fokuserer vi på indtastningsområdet. Dette skal placeres i et div med klassen MSG Input. Sæt display: flex for dette område for at arrangere indtastningsfelterne og knappen. Du bør angive flex-basis for container-elementet til 40 pixel, da dette udgør højden.

Inde i dette indtastningsområde er det vigtigt at sætte align-items til stretch for at sikre, at indtastningsfeltet og knappen strækkes ensartet. Desuden bør du tilføje lidt padding og en baggrundsfarve for at fremhæve elementerne.

Nu kommer beskedområdet. Her er det også hensigtsmæssigt at bruge display: flex. Sørg for, at containeren optager den resterende tilgængelige højde ved at angive flex: 1. Inden for dette område bør du lade beskederne vises i en lodret rækkefølge, altså flex-direction: column.

For at styre layoutet af beskederne, indstil justify-content til optionen flex-end. Dette får de modtagne beskeder til at vises i bunden af containeren, hvilket er mere intuitivt for brugeren, når de vil skrive nye beskeder.

Næste skridt er at designe selve beskederne. Her skal du sikre, at hver besked har afrundede hjørner. Til dette kan du indstille egenskaber som border-radius og padding. Derudover bør du definere en maksimal bredde, f.eks. 450 pixel, så beskederne ikke bliver for brede.

For de forskellige typer beskeder (egne og andre) er det vigtigt at anvende forskellige CSS-klasser. For egne beskeder, sæt align-self: flex-end, så de vises højrejusteret, mens du for andre beskeder bruger align-self: flex-start, så de vises venstrejusteret.
Til sidst skal du sikre, at indtastningsfeltet har flex: 1, så det optager al den tilgængelige plads i indtastningsområdet. Knappen skal derimod kun optage den plads, der er nødvendig for teksten.

Layoutet er nu grundlæggende klar. De sidste overvejelser vedrører den logik, du eventuelt vil tilføje til webappen for at behandle input og beskeder.
Opsamling
I denne vejledning har du lært, hvordan du ved hjælp af Flexbox kan oprette et simpelt chat-layout. Du har lært strukturen af HTML-dokumentet samt de CSS-stilarter, der er nødvendige for de forskellige områder.
Ofte stillede spørgsmål
Hvad er Flexbox?Flexbox er et CSS-modul, der muliggør en fleksibel placering af elementer i et layout.
Hvordan kan jeg sortere beskederne?Ved at anvende forskellige CSS-klasser til egne og andre beskeder kan du placere dem til højre og venstre.
Kan jeg gøre layoutet responsivt?Ja, ved brug af Flexbox tilpasser layoutet sig dynamisk til skærmstørrelsen.