Grid-systeem
Gebruik ons krachtige mobile-first flexbox-raster om lay-outs in alle soorten en maten te bouwen dankzij een systeem met twaalf kolommen, vijf standaard responsieve lagen, Sass-variabelen en mixins, en tientallen vooraf gedefinieerde klassen.
Hoe het werkt
Het rastersysteem van Bootstrap gebruikt een reeks containers, rijen en kolommen om inhoud op te delen en uit te lijnen. Het is gebouwd met flexbox en is volledig responsief. Hieronder ziet u een voorbeeld en een diepgaande blik op hoe het raster tot stand komt.
Nieuw of onbekend met flexbox? Lees deze CSS Tricks flexbox-handleiding voor achtergrond, terminologie, richtlijnen en codefragmenten.
In het bovenstaande voorbeeld worden drie kolommen van gelijke breedte gemaakt op kleine, middelgrote, grote en extra grote apparaten met behulp van onze vooraf gedefinieerde rasterklassen. Die kolommen zijn gecentreerd op de pagina met het bovenliggende .container
.
Het opsplitsen, hier is hoe het werkt:
- Met containers kunt u de inhoud van uw site centreren en horizontaal opvullen. Gebruik
.container
voor een responsieve pixelbreedte of.container-fluid
voorwidth: 100%
alle viewport- en apparaatformaten. - Rijen zijn wrappers voor kolommen. Elke kolom heeft een horizontale
padding
(goot genoemd) om de ruimte ertussen te regelen. Ditpadding
wordt dan tegengegaan op de rijen met negatieve marges. Op deze manier wordt alle inhoud in uw kolommen visueel uitgelijnd aan de linkerkant. - In een rasterlay-out moet inhoud binnen kolommen worden geplaatst en mogen alleen kolommen directe onderliggende rijen zijn.
- Dankzij flexbox worden rasterkolommen zonder een opgegeven
width
automatisch opgemaakt als kolommen met gelijke breedte. Bijvoorbeeld, vier instanties van.col-sm
zullen elk automatisch 25% breed zijn vanaf het kleine breekpunt en hoger. Zie de sectie kolommen voor automatische opmaak voor meer voorbeelden. - Kolomklassen geven het aantal kolommen aan dat u wilt gebruiken van de mogelijke 12 per rij. Dus als u drie kolommen van gelijke breedte wilt, kunt u
.col-4
. - Kolom
width
s zijn ingesteld in percentages, dus ze zijn altijd vloeiend en hebben een grootte ten opzichte van hun bovenliggende element. - Kolommen hebben horizontaal
padding
om de goten tussen afzonderlijke kolommen te maken, maar u kunt demargin
uit rijen enpadding
uit kolommen verwijderen met.no-gutters
op de.row
. - Om het raster responsief te maken, zijn er vijf rasteronderbrekingspunten, één voor elk responsief breekpunt : alle breekpunten (extra klein), klein, medium, groot en extra groot.
- Grid-onderbrekingspunten zijn gebaseerd op mediaquery's met een minimale breedte, wat betekent dat ze van toepassing zijn op dat ene breekpunt en al die daarboven (bijvoorbeeld van
.col-sm-4
toepassing op kleine, middelgrote, grote en extra grote apparaten, maar niet op het eerstexs
breekpunt). - U kunt vooraf gedefinieerde rasterklassen (zoals
.col-4
) of Sass-mixins gebruiken voor meer semantische opmaak.
Wees je bewust van de beperkingen en bugs rond flexbox , zoals het onvermogen om sommige HTML-elementen als flexcontainers te gebruiken .
Rasteropties
Terwijl Bootstrap em
s of rem
s gebruikt voor het definiëren van de meeste formaten, px
worden s gebruikt voor rasteronderbrekingspunten en containerbreedten. Dit komt omdat de breedte van de viewport in pixels is en niet verandert met de lettergrootte .
Bekijk hoe aspecten van het Bootstrap-rastersysteem werken op meerdere apparaten met een handige tabel.
Extra klein <576px |
Klein ≥576px |
Gemiddeld ≥768px |
Groot (992px) |
Extra groot (1200px) |
|
---|---|---|---|---|---|
Maximale containerbreedte | Geen (automatisch) | 540px | 720px | 960px | 1140px |
Klasse voorvoegsel | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# kolommen | 12 | ||||
breedte van de goot | 30px (15px aan elke kant van een kolom) | ||||
Nestbaar | Ja | ||||
Kolomvolgorde | Ja |
Kolommen voor automatische opmaak
Gebruik breekpuntspecifieke kolomklassen voor eenvoudige kolomgrootte zonder een expliciete genummerde klasse zoals .col-sm-6
.
gelijke breedte
Hier zijn bijvoorbeeld twee rasterlay-outs die van toepassing zijn op elk apparaat en kijkvenster, van xs
tot xl
. Voeg een willekeurig aantal eenheidsloze klassen toe voor elk breekpunt dat u nodig hebt en elke kolom zal dezelfde breedte hebben.
Gelijke breedte multi-lijn
Maak kolommen met gelijke breedte die meerdere regels overspannen door een in te voegen op de plaats .w-100
waar u wilt dat de kolommen op een nieuwe regel eindigen. Maak de pauzes responsief door te mixen .w-100
met enkele responsieve weergavehulpprogramma's .
Er was een Safari flexbox-bug waardoor dit niet werkte zonder een expliciete flex-basis
of border
. Er zijn oplossingen voor oudere browserversies, maar deze zouden niet nodig moeten zijn als uw doelbrowsers niet onder de buggyversies vallen.
Eén kolombreedte instellen
Automatische lay-out voor flexbox-rasterkolommen betekent ook dat u de breedte van één kolom kunt instellen en dat de kolommen van de zusterkolommen er automatisch omheen kunnen worden vergroot. U kunt vooraf gedefinieerde rasterklassen (zoals hieronder weergegeven), rastermixins of inline-breedten gebruiken. Merk op dat de grootte van de andere kolommen zal veranderen, ongeacht de breedte van de middelste kolom.
Variabele breedte inhoud
Gebruik col-{breakpoint}-auto
klassen om kolommen te rangschikken op basis van de natuurlijke breedte van hun inhoud.
Responsieve lessen
Het raster van Bootstrap bevat vijf niveaus van vooraf gedefinieerde klassen voor het bouwen van complexe responsieve lay-outs. Pas de grootte van uw kolommen aan op extra kleine, kleine, middelgrote, grote of extra grote apparaten, zoals u dat wilt.
Alle breekpunten
Voor rasters die hetzelfde zijn van de kleinste apparaten tot de grootste, gebruikt u de .col
en .col-*
klassen. Geef een genummerde klasse op wanneer u een kolom met een bijzonder formaat nodig hebt; blijf anders gerust bij .col
.
Gestapeld naar horizontaal
Met behulp van een enkele set .col-sm-*
klassen kunt u een basisrastersysteem maken dat gestapeld begint en horizontaal wordt bij het kleine breekpunt ( sm
).
Mix en match
Wilt u niet dat uw kolommen eenvoudig in een aantal rasterlagen worden gestapeld? Gebruik indien nodig een combinatie van verschillende klassen voor elke laag. Zie het onderstaande voorbeeld voor een beter idee van hoe het allemaal werkt.
dakgoten
Dakgoten kunnen responsief worden aangepast door breekpuntspecifieke opvulling en hulpprogrammaklassen met negatieve marges. Om de goten in een bepaalde rij te wijzigen, koppelt u een hulpprogramma voor negatieve marge op de .row
en bijpassende opvulhulpprogramma's op de .col
s. De .container
of .container-fluid
ouder moet mogelijk ook worden aangepast om ongewenste overloop te voorkomen, door opnieuw een passend opvulhulpprogramma te gebruiken.
Hier is een voorbeeld van het aanpassen van het Bootstrap-raster op het grote ( lg
) breekpunt en daarboven. We hebben de .col
opvulling verhoogd met .px-lg-5
, dat tegengegaan met .mx-lg-n5
op de ouder en vervolgens de omslag .row
aangepast met ..container
.px-lg-5
Rij kolommen
Gebruik de responsieve .row-cols-*
klassen om snel het aantal kolommen in te stellen dat uw inhoud en lay-out het beste weergeeft. Terwijl normale .col-*
klassen van toepassing zijn op de afzonderlijke kolommen (bijv. .col-md-4
), worden de rijkolommenklassen .row
als snelkoppeling op de ouder ingesteld.
Gebruik deze rijkolommenklassen om snel basisrasterlay-outs te maken of om uw kaartlay-outs te beheren.
Je kunt ook de bijbehorende Sass mixin gebruiken, row-cols()
:
Uitlijning
Gebruik flexbox-uitlijnhulpprogramma's om kolommen verticaal en horizontaal uit te lijnen. Internet Explorer 10-11 ondersteunt geen verticale uitlijning van flexitems wanneer de flexcontainer een heeft min-height
zoals hieronder weergegeven. Zie Flexbugs #3 voor meer details.
Verticale uitlijning
Horizontale uitlijning
Geen goten
De goten tussen kolommen in onze vooraf gedefinieerde rasterklassen kunnen worden verwijderd met .no-gutters
. Dit verwijdert de negatieve margin
s van .row
en de horizontale padding
van alle directe onderliggende kolommen.
Hier is de broncode voor het maken van deze stijlen. Houd er rekening mee dat kolomoverschrijvingen alleen betrekking hebben op de eerste onderliggende kolommen en worden getarget via attribuutselector . Hoewel dit een meer specifieke selector genereert, kan kolomopvulling nog verder worden aangepast met spatiëringshulpprogramma's .
Een edge-to-edge ontwerp nodig? Laat de ouder vallen .container
of .container-fluid
.
In de praktijk ziet het er zo uit. Merk op dat u dit kunt blijven gebruiken met alle andere vooraf gedefinieerde rasterklassen (inclusief kolombreedten, responsieve lagen, herschikkingen en meer).
Kolomterugloop
Als er meer dan 12 kolommen in een enkele rij worden geplaatst, zal elke groep extra kolommen, als één geheel, op een nieuwe regel worden geplaatst.
Aangezien 9 + 4 = 13 > 12, wordt deze 4-koloms brede div als één aaneengesloten eenheid op een nieuwe regel gewikkeld.
Volgende kolommen gaan verder langs de nieuwe regel.
Kolomeinden
Het afbreken van kolommen naar een nieuwe regel in flexbox vereist een kleine hack: voeg een element toe met width: 100%
waar u uw kolommen naar een nieuwe regel wilt wikkelen. Normaal gesproken wordt dit bereikt met meerdere .row
s, maar niet elke implementatiemethode kan hier rekening mee houden.
U kunt deze onderbreking ook toepassen op specifieke onderbrekingspunten met onze hulpprogramma's voor responsieve weergave .
Opnieuw ordenen
Bestel lessen
Gebruik .order-
klassen om de visuele volgorde van uw inhoud te bepalen. Deze klassen zijn responsief, dus u kunt het order
by-breakpoint instellen (bijv. .order-1.order-md-2
). Bevat ondersteuning voor 1
alle 12
vijf rasterlagen.
Er zijn ook responsieve klassen .order-first
en .order-last
klassen die het order
element van een element wijzigen door respectievelijk order: -1
en order: 13
( order: $columns + 1
) toe te passen. Deze klassen kunnen indien nodig ook worden vermengd met de genummerde .order-*
klassen.
Kolommen compenseren
U kunt rasterkolommen op twee manieren verschuiven: onze responsieve .offset-
rasterklassen en onze margehulpprogramma's . De grootte van rasterklassen is afgestemd op kolommen, terwijl marges nuttiger zijn voor snelle lay-outs waarbij de breedte van de offset variabel is.
Offset klassen
Verplaats kolommen naar rechts met behulp van .offset-md-*
klassen. Deze klassen vergroten de linkermarge van een kolom met *
kolommen. .offset-md-4
Beweegt bijvoorbeeld .col-md-4
over vier kolommen.
Naast het wissen van kolommen bij responsieve onderbrekingspunten, moet u mogelijk de offsets opnieuw instellen. Zie dit in actie in het rastervoorbeeld .
Marge-hulpprogramma's
Met de overstap naar flexbox in v4, kunt u margehulpprogramma's gebruiken .mr-auto
om kolommen van broers en zussen van elkaar af te dwingen.
Nesten
Als u uw inhoud wilt nesten met het standaardraster, voegt u een nieuwe .row
en een reeks .col-sm-*
kolommen toe binnen een bestaande .col-sm-*
kolom. Geneste rijen moeten een set kolommen bevatten die optellen tot 12 of minder (het is niet vereist dat u alle 12 beschikbare kolommen gebruikt).
Sass mixins
Wanneer u de Sass-bronbestanden van Bootstrap gebruikt, hebt u de mogelijkheid om Sass-variabelen en mixins te gebruiken om aangepaste, semantische en responsieve paginalay-outs te maken. Onze vooraf gedefinieerde rasterklassen gebruiken dezelfde variabelen en mixins om een hele reeks kant-en-klare klassen te bieden voor snel reagerende lay-outs.
Variabelen
Variabelen en kaarten bepalen het aantal kolommen, de gootbreedte en het mediaquerypunt waarop zwevende kolommen moeten beginnen. We gebruiken deze om de vooraf gedefinieerde rasterklassen te genereren die hierboven zijn gedocumenteerd, evenals voor de aangepaste mixins die hieronder worden vermeld.
Mixins
Mixins worden gebruikt in combinatie met de rastervariabelen om semantische CSS voor individuele rasterkolommen te genereren.
Voorbeeld gebruik
U kunt de variabelen wijzigen in uw eigen aangepaste waarden of gewoon de mixins gebruiken met hun standaardwaarden. Hier is een voorbeeld van het gebruik van de standaardinstellingen om een lay-out met twee kolommen te maken met een tussenruimte.
Het raster aanpassen
Met behulp van onze ingebouwde Sass-variabelen en kaarten voor rasters is het mogelijk om de vooraf gedefinieerde rasterklassen volledig aan te passen. Wijzig het aantal lagen, de afmetingen van de mediaquery's en de containerbreedten en compileer vervolgens opnieuw.
Kolommen en goten
Het aantal rasterkolommen kan worden gewijzigd via Sass-variabelen. $grid-columns
wordt gebruikt om de breedte (in procent) van elke afzonderlijke kolom te genereren, terwijl $grid-gutter-width
de breedte voor de kolomgoten wordt ingesteld.
Rasterlagen
Als u verder gaat dan de kolommen zelf, kunt u ook het aantal rasterlagen aanpassen. Als je slechts vier rasterlagen wilt, zou je de $grid-breakpoints
en bijwerken $container-max-widths
naar zoiets als dit:
Wanneer u wijzigingen aanbrengt in de Sass-variabelen of -kaarten, moet u uw wijzigingen opslaan en opnieuw compileren. Als u dit doet, wordt een geheel nieuwe set vooraf gedefinieerde rasterklassen voor kolombreedten, offsets en volgorde weergegeven. Hulpprogramma's voor responsieve zichtbaarheid worden ook bijgewerkt om de aangepaste onderbrekingspunten te gebruiken. Zorg ervoor dat u rasterwaarden instelt in px
(niet rem
, em
, of %
).