Can I build a carousel with multiple bootstrap cards?

Skab Responsive Karruseller med Flere Kort i Bootstrap

27/03/2025

Rating: 4.47 (16290 votes)

I moderne webdesign er interaktive og visuelt tiltalende elementer afgørende for en god brugeroplevelse. En af de mest populære måder at præsentere en samling af indhold på er gennem en karrusel, også kendt som et slideshow. Mens standard Bootstrap-karruseller er fremragende til at vise ét element ad gangen, opstår behovet ofte for at vise flere relaterede elementer, såsom produktkort eller nyhedsartikler, samtidigt. Denne artikel vil dykke ned i, hvordan du kan oprette en responsiv karrusel med flere Bootstrap-kort ved hjælp af Bootstrap 4, og hvordan du sikrer, at den ser fantastisk ud på alle enheder.

What does data-ride 'carousel' mean in Bootstrap?
The data-ride="carousel" attribute tells Bootstrap to begin animating the carousel immediately when the page loads. The "Indicators" part: The indicators are the little dots at the bottom of each slide (which indicates how many slides there are in the carousel, and which slide the user is currently viewing).

At bygge en karrusel, der viser flere elementer, som for eksempel Bootstrap-kort, kan virke komplekst ved første øjekast, men Bootstrap giver os de grundlæggende byggesten til at gøre det relativt ligetil. Ved at kombinere karruselkomponenten med Bootstrap-kortenes fleksibilitet kan vi skabe en kraftfuld og dynamisk præsentation af vores indhold. Målet er at opnå et design, hvor flere kort er synlige på større skærme, mens de tilpasser sig elegant til at vise færre eller kun ét kort på mindre skærme, alt sammen uden at gå på kompromis med brugervenligheden eller æstetikken.

Indholdsfortegnelse

Grundlæggende om Bootstrap Karruseller

Før vi dykker ned i karruseller med flere kort, er det vigtigt at forstå den grundlæggende struktur af en Bootstrap-karrusel. Bootstrap-karrusellen er en fleksibel komponent til at cykle gennem elementer, som et slideshow. Den er bygget op omkring HTML, CSS og JavaScript, og dens funktionalitet aktiveres primært via data-attributter.

Den yderste <div>, der indeholder karrusellen, skal have klassen .carousel og et unikt id. Dette ID er afgørende for, at karruselkontrollerne kan fungere korrekt. Attributten data-ride="carousel" fortæller Bootstrap, at karrusellen skal starte animationen, så snart siden er indlæst. Hvis du ønsker, at karrusellen skal glide mellem elementerne, skal du inkludere klassen .slide; ellers vil skiftet være øjeblikkeligt.

Inden i karrusellen finder vi .carousel-inner, som er wrapperen for alle karrusellens slides. Hver enkelt slide er defineret af en <div> med klassen .carousel-item. Det er vigtigt at bemærke, at én af disse .carousel-item elementer skal have klassen .active for at karrusellen er synlig ved indlæsning. Uden et aktivt element vil karrusellen ikke vises korrekt. Typisk indeholder et .carousel-item et billede, men det kan også indeholde enhver form for HTML-indhold, herunder tekst, knapper eller som i vores tilfælde, Bootstrap-kort.

Karrusellen kan også inkludere navigationskontroller (pilknapper) og indikatorer (de små prikker i bunden). Kontrollerne er typisk <a> tags med klasserne .carousel-control-prev og .carousel-control-next, der peger på karrusellens ID via href-attributten og bruger data-slide="prev" eller data-slide="next". Indikatorerne er en ordnet liste (<ol>) med klassen .carousel-indicators, hvor hvert <li> element peger på karrusellens ID via data-target og angiver slidenummeret med data-slide-to.

Fra Enkelt til Flere Elementer: Introduktion til Kort

Bootstrap-kort er utroligt alsidige komponenter, der giver en fleksibel og udvidelig indholdsbeholder. Et kort kan indeholde en header, et billede, en titel, tekst, links og en footer. De er perfekte til at vise individuelle indholdsenheder på en organiseret måde. Når vi ønsker at fremvise flere kort i en enkelt karruselslide, erstatter vi blot det traditionelle billede inde i .carousel-item med en struktur, der indeholder flere kort.

What is a responsive Bootstrap carousel?
A responsive Bootstrap carousel is a carousel that shows 4 items, slides one-at-a-time, and shows only a single slide on smaller screens.

For at gruppere flere kort inden for et .carousel-item, kan vi introducere en ny wrapper-<div>, for eksempel med klassen .cards-wrapper. Denne wrapper vil indeholde de individuelle Bootstrap-kort. Ved at anvende CSS Flexbox på denne .cards-wrapper kan vi nemt arrangere kortene horisontalt og centrere dem, hvilket er essentielt for en multi-kort karrusel. Dette skaber grundlaget for, at hver "slide" i karrusellen faktisk består af en gruppe af kort, der bevæger sig sammen.

Trin-for-Trin Guide til Flere Kort i Karrusellen

Lad os nu gennemgå processen med at bygge en responsiv Bootstrap-karrusel med flere kort.

Trin 1: Den Grundlæggende Karrusel Struktur

Vi starter med den standard Bootstrap 4 karrusel-struktur. Dette er fundamentet, som vi vil bygge videre på. Sørg for at have de nødvendige Bootstrap CSS- og JS-filer inkluderet i dit projekt. Husk, at Bootstrap 4 kræver jQuery og Popper.js for fuld funktionalitet.

<div id="carouselExampleControls" class="carousel slide" data-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <img src="..." class="d-block w-100" alt="..."> </div> <div class="carousel-item"> <img src="..." class="d-block w-100" alt="..."> </div> <div class="carousel-item"> <img src="..." class="d-block w-100" alt="..."> </div> </div> <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Forrige</span> </a> <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Næste</span> </a> </div>

Dette er skelettet for en enkel karrusel, der viser ét billede ad gangen. Vores opgave er nu at erstatte <img>-tagget med vores samling af kort.

Trin 2: Integrering af Kort i Karrusellen

Nu erstatter vi billederne i hvert .carousel-item med en .cards-wrapper, der indeholder tre Bootstrap-kort. Hvert kort vil have sin egen titel, tekst og en knap. Denne struktur giver os mulighed for at fremvise flere indholdsenheder pr. slide.

<div class="carousel-item active"> <div class="cards-wrapper"> <div class="card"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">Kort Titel</h5> <p class="card-text">Noget hurtig eksempeltekst til at bygge på kortets titel og udgøre hovedparten af kortets indhold.</p> <a href="#" class="btn btn-primary">Gå et sted hen</a> </div> </div> <div class="card"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">Kort Titel</h5> <p class="card-text">Noget hurtig eksempeltekst til at bygge på kortets titel og udgøre hovedparten af kortets indhold.</p> <a href="#" class="btn btn-primary">Gå et sted hen</a> </div> </div> <div class="card"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">Kort Titel</h5> <p class="card-text">Noget hurtig eksempeltekst til at bygge på kortets titel og udgøre hovedparten af kortets indhold.</p> <a href="#" class="btn btn-primary">Gå et sted hen</a> </div> </div> </div> </div>

For at få kortene til at ligge horisontalt i stedet for vertikalt, tilføjer vi simpel CSS til .cards-wrapper:

.cards-wrapper { display: flex; justify-content: center; } .card img { max-width: 100%; max-height: 100%; }

Dette bruger Flexbox til at arrangere kortene på en række og centrere dem. max-width og max-height på billederne sikrer, at de skalerer korrekt inden for kortene.

How to create a multi-slide carousel using bootstrap JS?

Trin 3: Styling og Visuel Forbedring

For at give karrusellen og kortene et mere poleret udseende, kan vi tilføje yderligere styling. En subtil skygge og lidt afstand mellem kortene kan gøre en stor forskel. Vi kan også tilføje padding til .carousel-inner for at give indholdet lidt luft.

.card { margin: 0 0.5em; box-shadow: 2px 6px 8px 0 rgba(22, 22, 26, 0.18); border: none; border-radius: 0; } .carousel-inner { padding: 1em; }

Disse stilarter forbedrer kortenes visuelle appel og får dem til at fremstå mere adskilte og professionelle.

Trin 4: Tilpasning af Karruselkontroller

Standard Bootstrap karruselkontroller kan nogle gange være svære at se, især mod et lyst baggrundsbillede eller farverigt indhold. For at gøre dem mere tydelige og æstetisk tiltalende, kan vi tilpasse deres udseende. Dette omfatter ændring af baggrundsfarve, form og position.

.carousel-control-prev, .carousel-control-next { background-color: #e1e1e1; width: 5vh; height: 5vh; border-radius: 50%; top: 50%; transform: translateY(-50%); }

Ved at gøre kontrollerne til runde knapper med en neutral baggrundsfarve og centrere dem vertikalt, sikrer vi, at de er nemme at finde og klikke på, hvilket forbedrer brugeroplevelsen.

Trin 5: Responsivitet i Praksis

En karrusel med tre kort ser godt ud på en stor skærm, men på mindre skærme kan kortene blive for små og ulæselige. For at løse dette problem skal vi implementere responsivitet, så karrusellen tilpasser sig forskellige skærmstørrelser. Bootstrap's responsive utility classes er her en stor hjælp.

Vi ønsker at skjule to af kortene på små skærme, så kun ét kort vises tydeligt. Dette kan opnås ved at tilføje klasserne d-none d-md-block til de kort, vi ønsker at skjule på mindre skærme (d-none skjuler elementet som standard, og d-md-block viser det igen på medium skærme og derover).

What is Bootstrap 4 carousel plugin?
More in this category... A lightweight extension to the Bootstrap 4 carousel component that allows for multiple items per slide and advances one slide at a time. The plugin also supports responsive breakpoints that dynamically checks the screen width using CSS media queries and shows 3 items on desktop, 2 items on tablet, 1 item on mobile.
<div class="card d-none d-md-block">...</div>

Det fulde HTML for et .carousel-item med responsivitet vil se således ud:

<div class="carousel-item active"> <div class="cards-wrapper"> <div class="card"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">Kort Titel</h5> <p class="card-text">Noget hurtig eksempeltekst...</p> <a href="#" class="btn btn-primary">Gå et sted hen</a> </div> </div> <div class="card d-none d-md-block"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">Kort Titel</h5> <p class="card-text">Noget hurtig eksempeltekst...</p> <a href="#" class="btn btn-primary">Gå et sted hen</a> </div> </div> <div class="card d-none d-md-block"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">Kort Titel</h5> <p class="card-text">Noget hurtig eksempeltekst...</p> <a href="#" class="btn btn-primary">Gå et sted hen</a> </div> </div> </div> </div>

For at forhindre indholdet under karrusellen i at hoppe op og ned, når kontrollerne klikkes, kan vi give billederne en fast højde på større skærme via en medieforespørgsel:

@media (min-width: 768px) { .card img { height: 11em; } }

Denne tilpasning sikrer en glat og forudsigelig brugeroplevelse på tværs af alle enheder.

Avancerede Overvejelser og Bedste Praksis

Ud over de grundlæggende trin er der flere overvejelser, der kan forbedre din multi-kort karrusel yderligere.

  • Unikke ID'er: Hvis du har flere karruseller på den samme side, er det absolut afgørende, at hver karrusel har et unikt ID. Dette sikrer, at JavaScript'en kan differentiere mellem dem, og at kontrollerne kun påvirker den tilsigtede karrusel.
  • Ydeevne: Karruseller, især dem med mange billeder eller komplekse kort, kan påvirke sidens indlæsningstid. Optimer altid dine billeder for webbrug (komprimer dem, og brug passende formater som WebP). Overvej lazy loading af billeder, der ikke er synlige i den første slide, for at fremskynde indlæsningen.
  • Tilgængelighed: Husk at inkludere alt-tekst for billeder og .sr-only (screen reader only) tekst for kontrollerne. Dette sikrer, at din karrusel er tilgængelig for brugere, der anvender skærmlæsere, og forbedrer den samlede tilgængelighed af din hjemmeside. Attributter som aria-hidden="true" på visuelle ikoner er også vigtige for at undgå redundans for skærmlæsere.
  • Interaktion: Overvej, om karrusellen skal starte automatisk (data-ride="carousel") eller kræve brugerinteraktion. Du kan også tilføje data-interval="false" for at deaktivere automatisk fremrykning og give brugeren fuld kontrol.

Sammenligning: Standard vs. Multi-Kort Karrusel

For at opsummere fordelene ved en multi-kort karrusel, lad os sammenligne den med en standard karrusel:

FunktionStandard Bootstrap KarruselMulti-Kort Karrusel (Manuel)
Antal elementer pr. slideÉnFlere (f.eks. 3 på desktop)
KompleksitetLavModerat (kræver mere CSS/HTML)
IndholdstypePrimært billederFleksibel (kort, tekst, billeder, knapper)
ResponsivitetAutomatisk tilpasning af ét elementKræver manuel justering (CSS medieforespørgsler, Bootstrap utility classes)
AnvendelsesområdeStore hero-billeder, simple slideshowsProduktoversigter, nyhedsfeeds, porteføljer

Som tabellen viser, tilbyder multi-kort karrusellen en rigere præsentation af indhold, men kræver en smule mere opsætning for at opnå optimal responsivitet.

Bootstrap 4 Karrusel Plugin (Avanceret Mulighed)

For dem, der søger en mere avanceret og automatiseret løsning til multi-item karruseller, findes der plugins, der udvider Bootstrap 4's standard karruselkomponent. Disse plugins er ofte designet til at håndtere responsivitet og antal elementer pr. slide mere dynamisk, baseret på CSS medieforespørgsler, og kan vise for eksempel 3 elementer på desktop, 2 på tablet og 1 på mobil uden omfattende manuel CSS.

Et sådant plugin ville typisk kræve, at du inkluderer dets JavaScript-fil efter Bootstrap's egen JS. Markup'en ville ligne den standard Bootstrap karrusel, men med specifikke klasser og potentielt en anden indre struktur for at understøtte plugin'ets funktionalitet. Den responsive adfærd ville derefter blive håndteret af plugin'ets indbyggede logik og tilhørende CSS.

Selvom denne artikel fokuserer på den manuelle tilgang for bedre at forstå de underliggende principper, er det værd at undersøge eksisterende plugins, hvis dit projekt kræver meget specifikke responsive breakpoints eller en hurtigere implementering af komplekse multi-item karruseller.

How to create a multi-slide carousel using bootstrap JS?

Ofte Stillede Spørgsmål (OSS)

Kan jeg bruge videoer i stedet for kort i en karrusel?

Ja, du kan sagtens placere videoelementer (f.eks. indlejrede YouTube-videoer eller HTML5 <video> tags) inde i dine .carousel-item eller endda inden i dine kort. Husk at styre videoafspilningen med JavaScript, så den kun afspilles, når sliden er aktiv, og pauser, når sliden skifter.

Hvordan stopper jeg karrusellen fra at køre automatisk?

Du kan forhindre karrusellen i at køre automatisk ved at fjerne data-ride="carousel" attributten fra den yderste karrusel-<div>, eller ved at tilføje data-interval="false", hvilket specifikt deaktiverer den automatiske fremrykning.

Hvad hvis jeg har for mange kort til at vise på én slide?

Hvis du har mange kort, der skal vises, er det bedst at opdele dem i flere .carousel-item'er. Hvert .carousel-item vil indeholde en gruppe af kort. For eksempel, hvis du vil vise 3 kort pr. slide, og du har 9 kort i alt, ville du have 3 .carousel-item'er, hver med 3 kort indeni. Karrusellen vil derefter cykle gennem disse grupper af kort.

Er denne guide kun for Bootstrap 4?

Denne guide er specifikt skrevet med Bootstrap 4 i tankerne, da de medfølgende kodeeksempler og klasser er fra denne version. Principperne for at bygge multi-kort karruseller er dog overførbare til nyere versioner som Bootstrap 5, men visse klassenavne eller JavaScript-initialiseringer kan variere. For Bootstrap 5 ville du for eksempel ofte bruge data-bs-ride i stedet for data-ride.

Konklusion

At skabe en responsiv multi-kort karrusel i Bootstrap 4 er en kraftfuld måde at præsentere dit indhold på en engagerende og brugervenlig måde. Ved at følge de trin, der er beskrevet i denne guide, og anvende Bootstrap's fleksible komponenter og responsive utility classes, kan du bygge dynamiske karruseller, der tilpasser sig elegant til enhver skærmstørrelse. Husk altid at teste din karrusel grundigt på forskellige enheder for at sikre en optimal brugeroplevelse. Med disse teknikker i hånden er du godt rustet til at tage din webudvikling til det næste niveau.

Hvis du vil læse andre artikler, der ligner Skab Responsive Karruseller med Flere Kort i Bootstrap, kan du besøge kategorien Teknologi.

Go up