14/09/2023
I nutidens digitale landskab er det afgørende, at websites tilpasser sig elegant til enhver skærmstørrelse. Det er her, Bootstrap grid systemet kommer ind som en sand game-changer. Dette kraftfulde værktøj er rygraden i responsivt webdesign med Bootstrap og giver udviklere mulighed for at skabe dynamiske og fleksible layouts med forbavsende lethed. Baseret på en robust 12-kolonne struktur, forenkler det processen med at arrangere og størrelsesjustere dit indhold, så din hjemmeside ser professionel og indbydende ud, uanset om den vises på en smartphone, tablet eller en stor desktop-skærm. Forestil dig at kunne designe én gang og vide, at dit indhold automatisk vil omarrangere sig for at give den bedste brugeroplevelse – det er præcis, hvad Bootstrap grid systemet tilbyder.
Grid Classes: The Bootstrap grid system has four classes that can be combined to make more flexible layouts: xs (<576px): For Portrait Mobile Phones. Note: Output can be little difference as shown, it depend on your screen size. Components of Grid System: We will be learning the Components of the Grid system one-by-one:[/caption]
For at drage fuld fordel af dette system er det vigtigt at forstå dets grundlæggende principper og de klasser, det stiller til rådighed. Fra de overordnede 'containere' til de specifikke 'kolonner' og 'rækker', arbejder alle elementer sammen for at skabe en harmonisk og funktionel struktur. Dette er ikke blot en teknisk gennemgang, men en dybdegående udforskning af, hvordan du kan udnytte Bootstrap's grid til at bygge moderne, effektive og visuelt tiltalende websteder.
Hvad er Bootstrap Grid Systemet?
Bootstrap grid systemet er fundamentet for responsivt design i Bootstrap. Det er et fleksibelt, mobil-først, flydende grid system, der skalerer op til tolv kolonner, efterhånden som enheden eller viewport-størrelsen øges. Systemet er designet til at gøre det utroligt nemt at opdele dit layout i rækker og kolonner, hvilket gør det muligt for indholdet at justere sig dynamisk og tilpasse sig forskellige skærmstørrelser. Forestil dig et gitter, hvor du kan placere dine elementer – tekster, billeder, videoer – og vide, at de vil falde pænt på plads, uanset skærmens dimensioner. Denne 12-kolonne struktur giver en enorm fleksibilitet. Hvis du for eksempel ønsker tre lige store kolonner, kan du give hver kolonne en bredde på 4 (fordi 3 * 4 = 12). Ønsker du to kolonner, kan du give dem en bredde på 6 hver. Mulighederne er mange, og det er netop denne fleksibilitet, der gør grid systemet så kraftfuldt.
Princippet om responsivt design er centralt. Det handler om at sikre, at dit website ikke blot skrumper eller strækker sig, men faktisk omarrangerer sit indhold for at optimere læsbarheden og interaktionen for brugeren. Dette opnås gennem brugen af forskellige 'breakpoints', som vi vil udforske i næste afsnit. Disse breakpoints definerer, hvornår layoutet skal ændre sig, og hvordan elementerne skal opføre sig ved forskellige skærmbredder.
De Vigtigste Grid Klasser (Breakpoints)
Bootstrap grid systemet er udstyret med fem foruddefinerede klasser, der hver især repræsenterer et specifikt breakpoint for skærmstørrelser. Disse klasser er afgørende for at skabe et responsivt design, da de fortæller browseren, hvordan dit indhold skal arrangeres på tværs af forskellige enheder. Ved at kombinere disse klasser kan du skræddersy dit layout til at fungere optimalt på alt fra små mobiltelefoner til store desktops.
Her er de fem grid klasser og deres tilsvarende skærmstørrelser:
xs(ekstra lille): For skærme mindre end 576px. Dette er typisk for opretstående mobiltelefoner (portrait mode). Hvis du bruger en klasse uden et breakpoint-suffiks (f.eks.col-4), vil den automatisk gælde forxsog opad.sm(lille): For skærme lig med eller større end 576px. Dette dækker ofte liggende mobiltelefoner (landscape mode) og små tablets.md(medium): For skærme lig med eller større end 768px. Ideelt til tablets og phablets i både opretstående og liggende tilstand.lg(stor): For skærme lig med eller større end 992px. Bruges typisk til små desktops og laptops, hvor der er mere plads til indhold.xl(ekstra stor): For skærme lig med eller større end 1200px. Designet til større desktops og laptops, hvilket giver mulighed for mere komplekse layouts og mere indhold på én gang.
Disse breakpoints giver dig en finmasket kontrol over, hvordan dine kolonner opfører sig. Du kan for eksempel specificere, at en kolonne skal fylde halvdelen af skærmen på en tablet (col-md-6), men hele skærmen på en mobil (col-sm-12), og en tredjedel på en stor desktop (col-lg-4). Denne fleksibilitet er nøglen til at levere en optimal brugeroplevelse på tværs af alle enheder.
Her er en oversigtstabel over grid klasserne:
| Klasse | Skærmstørrelse | Typisk Enhed | Beskrivelse |
|---|---|---|---|
.col-xs-* | < 576px | Opretstående mobiltelefoner | Standard for små skærme, ofte implicit i .col-*. |
.col-sm-* | ≥ 576px | Liggende mobiltelefoner, små tablets | Layout tilpasset små skærme. |
.col-md-* | ≥ 768px | Tablets, phablets | Layout tilpasset mellemstore skærme. |
.col-lg-* | ≥ 992px | Små desktops, laptops | Layout tilpasset store skærme. |
.col-xl-* | ≥ 1200px | Større desktops, laptops | Layout tilpasset ekstra store skærme. |
Det er vigtigt at bemærke, at en klasse som col-md-6 ikke kun gælder for medium skærme, men også for store (lg) og ekstra store (xl) skærme, medmindre du overskriver den med en specifikere klasse for de større breakpoints. Dette 'mobile-first' princip betyder, at du designer for den mindste skærm først og derefter skalerer op.
Grundlæggende Komponenter i Grid Systemet
For at forstå Bootstrap grid systemet fuldt ud, skal vi se nærmere på dets tre grundlæggende komponenter: Containere, Rækker og Kolonner. Disse elementer arbejder sammen i en hierarkisk struktur for at danne det responsive layout.
Containere
Containere er de yderste indpakningselementer i Bootstrap's grid system. De er fundamentet, der omgiver dit websteds indhold og holder grid systemet på plads. Uden en container vil dit grid ikke fungere korrekt, da det er containeren, der styrer den maksimale bredde og polstring af dit indhold.
Bootstrap tilbyder to primære typer containere:
.container: Denne klasse skaber en responsiv container med en fast bredde. Det betyder, at dens bredde vil ændre sig ved hvert Bootstrap breakpoint (sm, md, lg, xl), men den vil altid have en maksimal bredde, hvilket giver en pæn og centreret layout på større skærme. Dette er ideelt, når du ønsker, at dit indhold skal have en bestemt, læsevenlig bredde, uanset skærmstørrelsen..container-fluid: Denne klasse skaber en fuldbredde container, der strækker sig over hele viewportens bredde. Den er altid 100% bred og har ingen faste breakpoints. Brug denne, når du ønsker, at dit indhold skal udnytte al den tilgængelige plads på skærmen, hvilket ofte ses i fuldbredde bannere eller sektioner.
En god tommelfingerregel er at bruge .container til det meste af dit primære indhold, hvor læsbarhed er vigtig, og .container-fluid til brede sektioner, der strækker sig fra kant til kant. Hver container er en 'beholder' for rækkeelementer, som igen er 'beholdere' for kolonneelementer.
Eksempel på brug af containere:
<div class="container"> <p>Dette indhold er indeholdt i en responsiv, fast bredde container.</p> </div> <div class="container-fluid"> <p>Dette indhold strækker sig over hele skærmens bredde.</p> </div>Rækker (Rows)
Rækker er de næste byggeklodser i grid systemet. De skal altid placeres inden i en .container eller .container-fluid for korrekt justering og polstring. Rækker bruges til at skabe horisontale grupper af kolonner. Det er vigtigt at forstå, at det er rækkerne, der definerer de horisontale bånd, hvor dine kolonner vil sidde. En række fungerer som en flex-container for kolonnerne, hvilket sikrer, at de fordeles korrekt og justeres inden for rækken.
Hver række kan indeholde op til 12 kolonneenheder. Hvis summen af dine kolonners bredde overstiger 12 inden for en enkelt række, vil de overskydende kolonner automatisk 'bryde' til den næste linje. Dette er en vigtig mekanisme for at forstå, hvordan indholdet ombrydes på mindre skærme.
Eksempel på rækker:
<div class="container"> <div class="row"> <div class="bg-info text-white p-2 mb-2">Første række - fylder hele bredden</div> </div> <div class="row"> <div class="bg-success text-white p-2">Anden række - fylder hele bredden</div> </div> </div>Kolonner (Columns)
Kolonner er de faktiske indholdselementer, der udgør dit layout. De placeres inden i rækker og er de elementer, der indeholder dit faktiske indhold. Grid kolonner oprettes ved at specificere, hvor mange af de tolv tilgængelige kolonneenheder du ønsker, at de skal spænde over. For eksempel, hvis du ønsker tre lige store kolonner, ville hver kolonne bruge fire enheder, angivet som col-sm-4.
Den virkelige styrke ved kolonner kommer frem, når du kombinerer forskellige grid klasser for at opnå responsivitet. Du kan definere, hvordan en kolonne skal opføre sig på forskellige breakpoints, hvilket giver dig fuld kontrol over dit layout på tværs af enheder. For eksempel:
<div class="container"> <div class="row"> <div class="col-sm-4 bg-danger text-white p-3">1. Kolonne (sm-4)</div> <div class="col-sm-4 bg-warning text-dark p-3">2. Kolonne (sm-4)</div> <div class="col-sm-4 bg-secondary text-white p-3">3. Kolonne (sm-4)</div> </div> </div>Dette eksempel viser tre kolonner, der hver optager 4 af de 12 tilgængelige enheder på skærme, der er små (sm) og større. På skærme mindre end sm (dvs. xs), vil disse kolonner automatisk stable sig oven på hinanden, da col-sm-4 kun gælder fra 576px og opad.
For at skabe endnu mere dynamiske layouts kan du kombinere flere grid klasser i samme kolonne. Dette giver dig mulighed for at definere forskellige bredder for den samme kolonne baseret på skærmstørrelsen. Overvej følgende eksempel:
<div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2 bg-success text-white p-3">Første Kolonne</div> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2 bg-danger text-white p-3">Anden Kolonne</div> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2 bg-warning text-dark p-3">Tredje Kolonne</div> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2 bg-primary text-white p-3">Fjerde Kolonne</div> </div> </div>Hvad betyder dette?
col-xs-12: På ekstra små skærme (under 576px) vil hver kolonne fylde hele bredden (12 af 12 enheder), hvilket får dem til at stable sig vertikalt.col-sm-6: På små skærme (>= 576px) vil hver kolonne fylde halvdelen af bredden (6 af 12 enheder), hvilket resulterer i to kolonner per række.col-md-4: På medium skærme (>= 768px) vil hver kolonne fylde en tredjedel af bredden (4 af 12 enheder), hvilket resulterer i tre kolonner per række.col-lg-3: På store skærme (>= 992px) vil hver kolonne fylde en fjerdedel af bredden (3 af 12 enheder), hvilket resulterer i fire kolonner per række.col-xl-2: På ekstra store skærme (>= 1200px) vil hver kolonne fylde en sjettedel af bredden (2 af 12 enheder), hvilket giver seks kolonner per række.
Dette demonstrerer den utrolige fleksibilitet, du får ved at kombinere grid klasser, og hvordan dit layout kan transformeres fuldstændigt for at passe til forskellige enheder, hvilket sikrer en optimal brugeroplevelse.
Avancerede Grid Teknikker
Ud over de grundlæggende komponenter tilbyder Bootstrap grid systemet også avancerede teknikker, der kan hjælpe dig med at finjustere dine layouts og løse almindelige designudfordringer.
Kolonne Nulstilling (Column Resets)
En almindelig udfordring med flertiers grids er, at kolonner nogle gange ikke 'klarer' hinanden korrekt ved bestemte breakpoints, især hvis en kolonne er højere (har mere tekst eller indhold) end en anden. Dette kan føre til uønskede mellemrum eller forkert justering i dit layout. For at afhjælpe dette problem kan du bruge en kommando kaldet clearfix.
clearfix hjælper med at tvinge en ny linje efter en gruppe af kolonner, hvilket effektivt 'nulstiller' den flydende kontekst. Du placerer blot en div med klassen .clearfix efter den kolonne, hvor problemet opstår. Men hvis du vil have, at clearfix kun skal gælde for specifikke viewports (f.eks. kun for md og sm skærme, men ikke for lg og xs), kan du kombinere den med responsive display-klasser som d-none og d-md-block. Dette gør det muligt at skjule eller vise clearfix elementet selektivt baseret på skærmstørrelsen, hvilket giver dig præcis kontrol over, hvornår kolonnerne skal nulstilles.
<div class="container"> <div class="row"> <div class="col-sm-6 col-md-4 bg-info text-white p-3">Kolonne 1 - Meget indhold, der gør den høj.</div> <div class="col-sm-6 col-md-4 bg-success text-white p-3">Kolonne 2</div> <!-- Nulstiller kolonnerne for sm og md viewports, men ikke andre --> <div class="clearfix d-none d-sm-block d-md-block d-lg-none d-xl-none"></div> <div class="col-sm-6 col-md-4 bg-warning text-dark p-3">Kolonne 3</div> <div class="col-sm-6 col-md-4 bg-primary text-white p-3">Kolonne 4</div> </div> </div>Kolonne Forskydninger (Column Offsets)
Nogle gange ønsker du at flytte en kolonne til højre med et bestemt antal kolonneenheder. Dette kan opnås ved at bruge offset-klasser. Ved at tilføje col-md-offset-x til din kolonneklasse kan du skubbe kolonnen til højre med 'x' antal kolonner. For eksempel vil col-lg-offset-2 skabe et mellemrum på 2 kolonneenheder før din kolonne, når skærmen er 'stor' (lg) eller større.
Dette er særligt nyttigt, når du ønsker at centrere indhold, der ikke fylder hele 12 kolonneenheder, eller når du ønsker at skabe specifikke layoutmønstre med tomme rum. Ligesom med andre grid klasser, kan offset-klasser også være responsive, så du kan definere forskellige forskydninger for forskellige skærmstørrelser.
<div class="container"> <div class="row"> <div class="col-md-6 col-md-offset-3 bg-secondary text-white p-3"> <p>Denne kolonne er forskudt med 3 enheder på medium skærme.</p> </div> </div> <div class="row mt-3"> <div class="col-xs-3 col-sm-4 col-md-6 col-lg-1 col-lg-offset-2 bg-info text-white p-3"> <p>Eksempel på kompleks forskydning.</p> </div> </div> </div>I det andet eksempel resulterer col-lg-offset-2 i en forskydning på 2 grid kolonner, der placeres før den fjerde kolonne, når skærmen er stor (lg) eller større.
Indlejring af Kolonner (Nesting Columns)
Bootstrap's grid system giver dig også mulighed for at indlejre kolonner inden i andre kolonner. Dette er en kraftfuld teknik til at skabe mere komplekse og hierarkiske layouts. For at indlejre kolonner skal du blot tilføje en ny .row og et nyt sæt kolonner inden i en eksisterende kolonne.
Det er vigtigt at huske, at de indlejrede rækker og kolonner stadig skal overholde 12-kolonne systemet. Det betyder, at summen af de indlejrede kolonner inden for den nye række skal lægge op til 12 eller mindre. Bredden af de indlejrede kolonner beregnes i forhold til den forældrekolonne, de befinder sig i, ikke hele sidens bredde.
<div class="container"> <div class="row"> <div class="col-sm-6 bg-primary text-white p-3 mb-2"> <p>Forældrekolonne 1.</p> </div> <div class="col-sm-6 bg-secondary text-white p-3 mb-2"> <p>Forældrekolonne 2 med indlejrede kolonner:</p> <div class="row mt-2"> <div class="col-md-6 bg-success text-white p-2"> <p>Indlejret Kolonne A</p> </div> <div class="col-md-6 bg-info text-white p-2"> <p>Indlejret Kolonne B</p> </div> </div> </div> </div> </div>I dette eksempel er 'Indlejret Kolonne A' og 'Indlejret Kolonne B' placeret inden i 'Forældrekolonne 2'. De indlejrede kolonner deler den tilgængelige plads (som er 6 enheder fra den ydre grid) i to lige store dele med col-md-6 klassen.
Ofte Stillede Spørgsmål om Bootstrap Grid Systemet
- Hvor mange kolonner er der i Bootstrap's grid system?
- Bootstrap's grid system er baseret på en 12-kolonne struktur, hvilket giver stor fleksibilitet i layoutdesign.
- Hvad er forskellen på
.containerog.container-fluid? .containerskaber en responsiv container med en fast, maksimal bredde, der ændrer sig ved breakpoints..container-fluidskaber en fuldbredde container, der altid strækker sig over 100% af viewportens bredde.- Hvornår skal jeg bruge
col-md-offset-x? - Du skal bruge
col-md-offset-x(eller den mere moderneoffset-md-x) når du ønsker at skubbe en kolonne til højre med et bestemt antal kolonneenheder for at skabe tomme rum eller centrere indhold på en specifik skærmstørrelse (hermdog opad). - Kan jeg indlejre kolonner i Bootstrap?
- Ja, du kan indlejre kolonner ved at tilføje en ny
.rowog et sæt kolonner inden i en eksisterende kolonne. Husk, at de indlejrede kolonner skal summe op til 12 eller mindre inden for deres forældrekolonne. - Hvilken grid klasse bruges typisk til små mobilskærme?
- Klassen
.col-xs-*(eller blot.col-*uden et breakpoint-suffiks) bruges til ekstra små skærme (under 576px), hvilket dækker opretstående mobiltelefoner..col-sm-*tager over for liggende mobiltelefoner og opad.
Bootstrap grid systemet er et uundværligt værktøj for enhver webudvikler, der ønsker at bygge moderne og responsive websites. Ved at mestre brugen af containere, rækker og kolonner, samt de forskellige breakpoint-klasser, kan du skabe layouts, der elegant tilpasser sig enhver enhed. De avancerede teknikker som kolonne nulstilling, forskydninger og indlejring giver dig yderligere kontrol og fleksibilitet til at løse komplekse designudfordringer. Med denne viden er du godt rustet til at designe websteder, der ikke kun ser fantastiske ud, men også leverer en fremragende brugeroplevelse på tværs af hele det digitale spektrum. Øv dig med disse koncepter, eksperimenter med forskellige kombinationer, og du vil hurtigt opdage den sande kraft i Bootstrap's grid system.
Hvis du vil læse andre artikler, der ligner Bootstrap Grid System: Skab Responsive Layouts, kan du besøge kategorien Teknologi.
