twitter-bootstrap-3
Grid-systeem
Zoeken…
Mediavragen
We gebruiken de volgende mediaquery's in onze Less-bestanden om de belangrijkste breekpunten in ons rastersysteem te maken.
/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */
/* Small devices (tablets, 768px and up) */
@media (min-width: @screen-sm-min) { ... }
/* Medium devices (desktops, 992px and up) */
@media (min-width: @screen-md-min) { ... }
/* Large devices (large desktops, 1200px and up) */
@media (min-width: @screen-lg-min) { ... }
Af en toe breiden we deze mediaquery's uit met een maximale breedte om CSS te beperken tot een smallere set apparaten.
@media (max-width: @screen-xs-max) { ... }
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) { ... }
@media (min-width: @screen-lg-min) { ... }
Raster opties
Wat is Bootstrap Grid System
Bootstrap-rastersysteem biedt de snelle en eenvoudige manier om responsieve website-indelingen te maken.
Bootstrap 3 bevat vooraf gedefinieerde rasterklassen voor het snel maken van rasterlay-outs voor verschillende soorten apparaten zoals mobiele telefoons, tablets, laptops en desktops, enz.
U kunt bijvoorbeeld de klasse .col-xs- * gebruiken om rasterkolommen te maken voor extra kleine apparaten zoals mobiele telefoons, op dezelfde manier de klasse .col-sm- * voor apparaten met een klein scherm zoals tablets, de klasse .col-md- * voor middelgrote apparaten zoals desktops en de .col-lg- * voor grote desktopschermen.
De volgende tabel geeft een overzicht van enkele van de belangrijkste functies van het nieuwe rastersysteem
| Extra kleine apparaten Telefoons (<768px) | Tabletten voor kleine apparaten (≥768px) | Medium apparaten Desktops (≥992px) | Grote apparaten Desktops (≥1200px) | |
|---|---|---|---|---|
| Netgedrag | Altijd horizontaal | |||
| Container breedte | Geen (auto) | 750px | 970px | 1170px |
| Klasse voorvoegsel | .col-xs- | .col-sm- | .col-md- | .col-lg- |
| Aantal kolommen | 12 | 12 | 12 | 12 |
| Kolombreedte | Auto | ~ 62px | ~ 81px | ~ 97px |
| breedte van de goot | 30 px (15 px aan elke zijde van een kolom) | |||
| nestbare | Ja | |||
| offsets | Ja | |||
| Kolom bestellen | Ja |
Gestapelde naar horizontale
Met behulp van een enkele set .col-md-* kunt u een .col-md-* maken dat begint gestapeld op mobiele apparaten en tabletapparaten (het extra kleine tot kleine bereik) voordat het horizontaal wordt op desktop (medium) apparaten. Plaats .row in een willekeurige .row .
<div class="row">
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
</div>
<div class="row">
<div class="col-md-8">.col-md-8</div>
<div class="col-md-4">.col-md-4</div>
</div>
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4">.col-md-4</div>
</div>
<div class="row">
<div class="col-md-6">.col-md-6</div>
<div class="col-md-6">.col-md-6</div>
</div>
Vloeistofcontainer
Verander elke rasterlay-out met een vaste breedte in een lay-out met de volledige breedte door uw buitenste .container te .container-fluid in .container-fluid .
<div class="container-fluid">
<div class="row">
...
</div>
</div>
Mobiel en desktop
Wilt u niet dat uw kolommen eenvoudig op kleinere apparaten worden gestapeld? Gebruik de extra kleine en middelgrote apparaatrasterklassen door .col-xs-* .col-md-* aan uw kolommen toe te voegen. Zie het onderstaande voorbeeld voor een beter idee van hoe het allemaal werkt.
<!-- Stack the columns on mobile by making one full-width and the other half-width -->
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
<div class="row">
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
<div class="col-xs-6">.col-xs-6</div>
<div class="col-xs-6">.col-xs-6</div>
</div>
Mobiel, tablet, desktop
Bouw voort op het vorige voorbeeld door nog meer dynamische en krachtige lay-outs te maken met tablet .col-sm-* klassen.
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
<!-- Optional: clear the XS cols if their content doesn't match in height -->
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
</div>
Kolomomwikkeling
Als er meer dan 12 kolommen in een enkele rij worden geplaatst, wordt elke groep extra kolommen, als één eenheid, op een nieuwe regel geplaatst.
<div class="row">
<div class="col-xs-9">.col-xs-9</div>
<div class="col-xs-4">.col-xs-4<br>Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div>
<div class="col-xs-6">.col-xs-6<br>Subsequent columns continue along the new line.</div>
</div>
Responsieve kolom wordt gereset
Met de vier lagen rasters die beschikbaar zijn, stuit je vast op problemen waarbij je kolommen op bepaalde breekpunten niet helemaal kloppen omdat de ene groter is dan de andere. Gebruik hiervoor een combinatie van een .clearfix en onze responsieve hulpprogramma-klassen.
<div class="row">
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
<!-- Add the extra clearfix for only the required viewport -->
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
</div>
Naast het wissen van kolommen op responsieve breekpunten, moet u mogelijk offsets, pushes of pulls opnieuw instellen. Zie dit in actie in het rastervoorbeeld.
<div class="row">
<div class="col-sm-5 col-md-6">.col-sm-5 .col-md-6</div>
<div class="col-sm-5 col-sm-offset-2 col-md-6 col-md-offset-0">.col-sm-5 .col-sm-offset-2 .col-md-6 .col-md-offset-0</div>
</div>
<div class="row">
<div class="col-sm-6 col-md-5 col-lg-6">.col-sm-6 .col-md-5 .col-lg-6</div>
<div class="col-sm-6 col-md-5 col-md-offset-2 col-lg-6 col-lg-offset-0">.col-sm-6 .col-md-5 .col-md-offset-2 .col-lg-6 .col-lg-offset-0</div>
</div>
Kolommen compenseren
Verplaats kolommen naar rechts met de .col-md-offset-* . Deze klassen vergroten de linkermarge van een kolom met * kolommen. Bijvoorbeeld .col-md-offset-4 verplaatst .col-md-4 over vier kolommen.
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
<div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
</div>
U kunt offsets van lagere rasterlagen ook overschrijven met .col-*-offset-0 klassen.
<div class="row">
<div class="col-xs-6 col-sm-4">
</div>
<div class="col-xs-6 col-sm-4">
</div>
<div class="col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-0">
</div>
</div>
Kolommen nesten
Als u uw inhoud met het standaardraster wilt nesten, voegt u een nieuwe .row en set .col-sm-* kolommen toe binnen een bestaande .col-sm-* kolom. Geneste rijen moeten een set kolommen bevatten die maximaal 12 of minder toevoegen (het is niet vereist dat u alle 12 beschikbare kolommen gebruikt).
<div class="row">
<div class="col-sm-9">
Level 1: .col-sm-9
<div class="row">
<div class="col-xs-8 col-sm-6">
Level 2: .col-xs-8 .col-sm-6
</div>
<div class="col-xs-4 col-sm-6">
Level 2: .col-xs-4 .col-sm-6
</div>
</div>
</div>
</div>
Kolom bestellen
Verander eenvoudig de volgorde van onze ingebouwde .col-md-push-* met .col-md-push-* en .col-md-pull-* .
<div class="row">
<div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
<div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
</div>
Minder mixins en variabelen
Naast vooraf gebouwde rasterklassen voor snelle lay-outs, bevat Bootstrap Minder variabelen en mixins voor het snel genereren van uw eigen eenvoudige, semantische lay-outs.
Variabelen
Variabelen bepalen het aantal kolommen, de gootbreedte en het mediaquery-punt waarop beginnen met zwevende kolommen. We gebruiken deze om de vooraf gedefinieerde rasterklassen te genereren die hierboven zijn gedocumenteerd, evenals voor de onderstaande aangepaste mixins.
@grid-columns: 12;
@grid-gutter-width: 30px;
@grid-float-breakpoint: 768px;
mixins
Mixins worden gebruikt in combinatie met de rastervariabelen om semantische CSS voor individuele rasterkolommen te genereren.
// Creates a wrapper for a series of columns
.make-row(@gutter: @grid-gutter-width) {
// Then clear the floated columns
.clearfix();
@media (min-width: @screen-sm-min) {
margin-left: (@gutter / -2);
margin-right: (@gutter / -2);
}
// Negative margin nested rows out to align the content of columns
.row {
margin-left: (@gutter / -2);
margin-right: (@gutter / -2);
}
}
// Generate the extra small columns
.make-xs-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @grid-float-breakpoint) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
// Generate the small columns
.make-sm-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @screen-sm-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
// Generate the small column offsets
.make-sm-column-offset(@columns) {
@media (min-width: @screen-sm-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-sm-column-push(@columns) {
@media (min-width: @screen-sm-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-sm-column-pull(@columns) {
@media (min-width: @screen-sm-min) {
right: percentage((@columns / @grid-columns));
}
}
// Generate the medium columns
.make-md-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @screen-md-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
// Generate the medium column offsets
.make-md-column-offset(@columns) {
@media (min-width: @screen-md-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-md-column-push(@columns) {
@media (min-width: @screen-md-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-md-column-pull(@columns) {
@media (min-width: @screen-md-min) {
right: percentage((@columns / @grid-columns));
}
}
// Generate the large columns
.make-lg-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @screen-lg-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
// Generate the large column offsets
.make-lg-column-offset(@columns) {
@media (min-width: @screen-lg-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-lg-column-push(@columns) {
@media (min-width: @screen-lg-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-lg-column-pull(@columns) {
@media (min-width: @screen-lg-min) {
right: percentage((@columns / @grid-columns));
}
}