Rutenettsystem
Bruk vårt kraftige mobil-første flexbox-nettverk for å bygge oppsett i alle former og størrelser takket være et tolv kolonnesystem, fem standard responsive nivåer, Sass-variabler og -mikser, og dusinvis av forhåndsdefinerte klasser.
Hvordan det fungerer
Bootstraps rutenettsystem bruker en serie beholdere, rader og kolonner for å layoute og justere innhold. Den er bygget med flexbox og er fullstendig responsiv. Nedenfor er et eksempel og en grundig titt på hvordan rutenettet kommer sammen.
Ny eller ukjent med flexbox? Les denne CSS Tricks flexbox-guiden for bakgrunn, terminologi, retningslinjer og kodebiter.
Eksemplet ovenfor oppretter tre like brede kolonner på små, mellomstore, store og ekstra store enheter ved å bruke våre forhåndsdefinerte rutenettklasser. Disse kolonnene er sentrert på siden med den overordnede .container
.
Nedbryting, slik fungerer det:
- Beholdere gir et middel til å sentrere innholdet på nettstedet ditt horisontalt. Bruk
.container
for en responsiv pikselbredde eller.container-fluid
forwidth: 100%
alle visningsporter og enhetsstørrelser. - Rader er omslag for kolonner. Hver søyle har horisontal
padding
(kalt en renne) for å kontrollere avstanden mellom dem. Dettepadding
motvirkes så på radene med negative marginer. På denne måten er alt innholdet i kolonnene dine visuelt justert nedover venstre side. - I et rutenettoppsett må innhold plasseres i kolonner, og bare kolonner kan være umiddelbare underordnede rader.
- Takket være flexbox vil rutenettskolonner uten spesifisert
width
automatisk layout ha samme bredde kolonner. For eksempel vil fire forekomster av.col-sm
hver automatisk være 25 % bred fra det lille bruddpunktet og oppover. Se delen for kolonner for automatisk layout for flere eksempler. - Kolonneklasser angir antall kolonner du vil bruke av de mulige 12 per rad. Så hvis du vil ha tre like brede kolonner på tvers, kan du bruke
.col-4
. - Kolonne
width
er satt i prosenter, slik at de alltid er flytende og i størrelse i forhold til det overordnede elementet. - Kolonner har horisontale
padding
for å lage rennene mellom individuelle kolonner, men du kan fjernemargin
fra rader ogpadding
fra kolonner med.no-gutters
på.row
. - For å gjøre rutenettet responsivt, er det fem rutenettbruddpunkter, ett for hvert responsivt bruddpunkt : alle bruddpunkter (ekstra små), små, middels, store og ekstra store.
- Rutenettbruddpunkter er basert på mediespørringer med minimumsbredde, noe som betyr at de gjelder for det ene bruddpunktet og alle de over det (
.col-sm-4
gjelder f.eks. små, mellomstore, store og ekstra store enheter, men ikke det førstexs
bruddpunktet). - Du kan bruke forhåndsdefinerte rutenettklasser (som
.col-4
) eller Sass-mikser for mer semantisk markering.
Vær oppmerksom på begrensningene og feilene rundt flexbox , som manglende evne til å bruke noen HTML-elementer som flex-beholdere .
Rutenettalternativer
Mens Bootstrap bruker em
s eller rem
s for å definere de fleste størrelser, px
brukes s for grid breakpoints og containerbredder. Dette er fordi visningsportens bredde er i piksler og ikke endres med skriftstørrelsen .
Se hvordan aspekter av Bootstrap-rutenettsystemet fungerer på tvers av flere enheter med en hendig tabell.
Ekstra liten <576px |
Liten ≥576 piksler |
Middels ≥768 piksler |
Stor ≥992 piksler |
Ekstra stor ≥1200px |
|
---|---|---|---|---|---|
Maks beholderbredde | Ingen (auto) | 540 piksler | 720 piksler | 960 piksler | 1140 piksler |
Klasseprefiks | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
antall kolonner | 12 | ||||
Rennebredde | 30px (15px på hver side av en kolonne) | ||||
Nestbar | Ja | ||||
Kolonnebestilling | Ja |
Auto-layout kolonner
Bruk brytepunktspesifikke kolonneklasser for enkel kolonnestørrelse uten en eksplisitt nummerert klasse som .col-sm-6
.
Lik bredde
Her er for eksempel to rutenettoppsett som gjelder for hver enhet og visningsport, fra xs
til xl
. Legg til et hvilket som helst antall enhetsløse klasser for hvert bruddpunkt du trenger, og hver kolonne vil ha samme bredde.
Multilinje med lik bredde
Lag kolonner med lik bredde som spenner over flere linjer ved å sette inn en .w-100
der du vil at kolonnene skal brytes til en ny linje. Gjør pausene responsive ved å blande .w-100
med noen responsive display-verktøy .
Det var en Safari flexbox-feil som forhindret dette i å fungere uten en eksplisitt flex-basis
eller border
. Det finnes løsninger for eldre nettleserversjoner, men de burde ikke være nødvendige hvis målnettleserne dine ikke faller inn i buggy-versjonene.
Innstilling av én kolonnebredde
Automatisk oppsett for flexbox-rutenettskolonner betyr også at du kan stille inn bredden på én kolonne og få søskensøylene automatisk til å endre størrelsen rundt den. Du kan bruke forhåndsdefinerte rutenettklasser (som vist nedenfor), rutenettblandinger eller inline-bredder. Merk at de andre kolonnene vil endre størrelsen uansett bredden på midtkolonnen.
Variabel breddeinnhold
Bruk col-{breakpoint}-auto
klasser til å dimensjonere kolonner basert på den naturlige bredden på innholdet.
Responsive klasser
Bootstraps rutenett inkluderer fem lag med forhåndsdefinerte klasser for å bygge komplekse responsive layouter. Tilpass størrelsen på kolonnene dine på ekstra små, små, mellomstore, store eller ekstra store enheter slik du vil.
Alle bruddpunkter
For rutenett som er like fra den minste enheten til den største, bruk .col
og .col-*
klassene. Angi en nummerert klasse når du trenger en kolonne av særlig størrelse; ellers hold deg gjerne til .col
.
Stablet til vannrett
Ved å bruke et enkelt sett med .col-sm-*
klasser kan du lage et grunnleggende rutenettsystem som starter stablet og blir horisontalt ved det lille bruddpunktet ( sm
).
Mix og match
Vil du ikke at kolonnene dine bare skal stables i noen rutenettlag? Bruk en kombinasjon av forskjellige klasser for hvert nivå etter behov. Se eksemplet nedenfor for en bedre ide om hvordan det hele fungerer.
Takrenner
Takrenner kan responsivt justeres ved hjelp av bruddpunktspesifikk polstring og nytteklasser med negativ margin. For å endre takrennene i en gitt rad, parer du et negativt marginverktøy på .row
og matchende polstringsverktøy på .col
s. Forelderen .container
eller .container-fluid
forelderen må kanskje også justeres for å unngå uønsket overløp, ved å bruke igjen matchende polstringsverktøy.
Her er et eksempel på å tilpasse Bootstrap-rutenettet ved det store ( lg
) bruddpunktet og over. Vi har økt .col
polstringen med .px-lg-5
, motvirket det med .mx-lg-n5
på forelderen .row
og deretter justert .container
omslaget med .px-lg-5
.
Rad kolonner
Bruk de responsive .row-cols-*
klassene til raskt å angi antall kolonner som best gjengir innholdet og oppsettet ditt. Mens normale .col-*
klasser gjelder for de individuelle kolonnene (f.eks. .col-md-4
), er radkolonneklassene satt på overordnet .row
som en snarvei.
Bruk disse radkolonneklassene for raskt å lage grunnleggende rutenettoppsett eller for å kontrollere kortoppsettene dine.
Du kan også bruke den medfølgende Sass mixin row-cols()
,:
Justering
Bruk flexbox-justeringsverktøy for å justere kolonner vertikalt og horisontalt. Internet Explorer 10-11 støtter ikke vertikal justering av flex-elementer når flex-beholderen har en min-height
som vist nedenfor. Se Flexbugs #3 for flere detaljer.
Vertikal justering
Horisontal justering
Ingen takrenner
Rennene mellom søyler i våre forhåndsdefinerte rutenettklasser kan fjernes med .no-gutters
. Dette fjerner negative margin
s fra .row
og horisontale padding
fra alle umiddelbare underordnede kolonner.
Her er kildekoden for å lage disse stilene. Vær oppmerksom på at kolonneoverstyringer kun omfatter de første underordnede kolonnene og målrettes via attributtvelgeren . Selv om dette genererer en mer spesifikk velger, kan kolonneutfylling fortsatt tilpasses ytterligere med avstandsverktøy .
Trenger du et kant-til-kant-design? Slipp forelderen .container
eller .container-fluid
.
I praksis ser det slik ut. Merk at du kan fortsette å bruke dette med alle andre forhåndsdefinerte rutenettklasser (inkludert kolonnebredder, responsive nivåer, ombestillinger og mer).
Kolonneinnpakning
Hvis mer enn 12 kolonner er plassert innenfor en enkelt rad, vil hver gruppe ekstra kolonner, som én enhet, pakkes inn på en ny linje.
Siden 9 + 4 = 13 > 12, blir denne 4-kolonne brede div viklet inn på en ny linje som en sammenhengende enhet.
Påfølgende kolonner fortsetter langs den nye linjen.
Kolonneskift
Å bryte kolonner til en ny linje i flexbox krever et lite hack: legg til et element med width: 100%
hvor du vil pakke kolonnene til en ny linje. Normalt oppnås dette med flere .row
s, men ikke alle implementeringsmetoder kan ta hensyn til dette.
Du kan også bruke denne pausen ved spesifikke pausepunkter med våre responsive displayverktøy .
Ombestilling
Bestill klasser
Bruk .order-
klasser for å kontrollere den visuelle rekkefølgen på innholdet ditt. Disse klassene er responsive, så du kan angi order
etter bruddpunkt (f.eks. .order-1.order-md-2
). Inkluderer støtte for 1
gjennomgående 12
på tvers av alle fem rutenettlagene.
Det er også responsive .order-first
og .order-last
klasser som endrer order
elementet ved å bruke henholdsvis order: -1
og order: 13
( order: $columns + 1
). Disse klassene kan også blandes med de nummererte .order-*
klassene etter behov.
Forskyvning av kolonner
Du kan forskyve rutenettkolonner på to måter: våre responsive .offset-
rutenettklasser og våre marginverktøy . Rutenettklasser er dimensjonert for å matche kolonner, mens marginer er mer nyttige for raske oppsett der bredden på forskyvningen er variabel.
Offsetklasser
Flytt kolonner til høyre ved å bruke .offset-md-*
klasser. Disse klassene øker venstre marg i en kolonne med *
kolonner. .offset-md-4
Flytter for eksempel .col-md-4
over fire kolonner.
I tillegg til kolonnetømming ved responsive bruddpunkter, kan det hende du må tilbakestille forskyvninger. Se dette i aksjon i rutenetteksemplet .
Marginverktøy
Med overgangen til flexbox i v4 kan du bruke marginverktøy som .mr-auto
å tvinge søskenkolonner bort fra hverandre.
Hekking
For å legge innholdet ditt med standardrutenettet, legg til en ny .row
og et sett med .col-sm-*
kolonner i en eksisterende .col-sm-*
kolonne. Nestede rader bør inneholde et sett med kolonner som summerer seg til 12 eller færre (det er ikke nødvendig at du bruker alle de 12 tilgjengelige kolonnene).
Sass blandinger
Når du bruker Bootstraps kilde Sass-filer, har du muligheten til å bruke Sass-variabler og mixins for å lage tilpassede, semantiske og responsive sideoppsett. Våre forhåndsdefinerte rutenettklasser bruker de samme variablene og miksene for å gi en hel serie med klar-til-bruk-klasser for raske responsive oppsett.
Variabler
Variabler og kart bestemmer antall kolonner, takrennebredden og mediespørringspunktet der flytende kolonner skal begynne. Vi bruker disse til å generere de forhåndsdefinerte rutenettklassene som er dokumentert ovenfor, så vel som for de tilpassede miksene som er oppført nedenfor.
Mixins
Mixins brukes sammen med rutenettvariablene for å generere semantisk CSS for individuelle rutenettkolonner.
Eksempel bruk
Du kan endre variablene til dine egne tilpassede verdier, eller bare bruke mixins med standardverdiene deres. Her er et eksempel på bruk av standardinnstillingene for å lage en to-kolonne layout med et gap mellom.
Tilpasse rutenettet
Ved å bruke våre innebygde rutenett Sass-variabler og kart, er det mulig å tilpasse de forhåndsdefinerte rutenettklassene fullstendig. Endre antall nivåer, mediespørringsdimensjonene og beholderbreddene – og kompiler deretter på nytt.
Søyler og takrenner
Antall rutenettkolonner kan endres via Sass-variabler. $grid-columns
brukes til å generere breddene (i prosent) av hver enkelt søyle mens $grid-gutter-width
den angir bredden for søylerennene.
Rutenettlag
Når du går utover selve kolonnene, kan du også tilpasse antall rutenettlag. Hvis du bare ville ha fire rutenettnivåer, ville du oppdatere $grid-breakpoints
og $container-max-widths
til noe som dette:
Når du gjør endringer i Sass-variablene eller kartene, må du lagre endringene og kompilere på nytt. Hvis du gjør det, vil du få et helt nytt sett med forhåndsdefinerte rutenettklasser for kolonnebredder, forskyvninger og rekkefølge. Responsive synlighetsverktøy vil også bli oppdatert for å bruke de tilpassede bruddpunktene. Sørg for å angi rutenettverdier i px
(ikke rem
, em
, eller %
).