twitter-bootstrap-3
System sieci
Szukaj…
Zapytania o media
Korzystamy z poniższych zapytań o media w naszych plikach Less, aby utworzyć kluczowe punkty przerwania w naszym systemie grid.
/* 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) { ... }
Czasami rozszerzamy te zapytania o media, aby uwzględnić maksymalną szerokość, aby ograniczyć CSS do węższego zestawu urządzeń.
@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) { ... }
Opcje siatki
Co to jest Bootstrap Grid System
System siatki Bootstrap zapewnia szybki i łatwy sposób tworzenia responsywnych układów strony.
Bootstrap 3 zawiera predefiniowane klasy siatki do szybkiego tworzenia układów siatki dla różnych typów urządzeń, takich jak telefony komórkowe, tablety, laptopy i komputery stacjonarne itp.
Na przykład można użyć klasy .col-xs- *, aby utworzyć kolumny siatki dla bardzo małych urządzeń, takich jak telefony komórkowe, podobnie jak klasa .col-sm- * dla urządzeń z małym ekranem, takich jak tablety, klasa .col-md- * dla średnich urządzeń, takich jak komputery stacjonarne i .col-lg- * dla dużych ekranów biurowych.
Poniższa tabela zawiera podsumowanie niektórych kluczowych funkcji nowego systemu siatki
| Bardzo małe urządzenia Telefony (<768px) | Małe urządzenia Tablety (≥768px) | Średnie urządzenia Komputery stacjonarne (≥992px) | Duże urządzenia Komputery stacjonarne (≥ 1200 pikseli) | |
|---|---|---|---|---|
| Zachowanie siatki | Zawsze poziomo | |||
| Szerokość pojemnika | Brak (auto) | 750px | 970px | 1170px |
| Prefiks klasy | .col-xs- | .col-sm- | .col-md- | .col-lg- |
| Liczba kolumn | 12 | 12 | 12 | 12 |
| Szerokość kolumny | Automatyczny | ~ 62px | ~ 81px | ~ 97px |
| Szerokość rynny | 30px (15px po każdej stronie kolumny) | |||
| Nestable | tak | |||
| Przesunięcia | tak | |||
| Kolejność kolumn | tak |
Ułożone poziomo
Korzystając z jednego zestawu klas grid .col-md-* , możesz stworzyć podstawowy system grid, który zaczyna się na stosie na urządzeniach mobilnych i tabletach (od bardzo małego do małego), zanim zostanie ustawiony poziomo na urządzeniach stacjonarnych (średnich). Umieść kolumny siatki w dowolnym .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>
Pojemnik na płyn
Zamień dowolny układ siatki o stałej szerokości w układ o pełnej szerokości, zmieniając swój najbardziej zewnętrzny .container na .container-fluid .
<div class="container-fluid">
<div class="row">
...
</div>
</div>
Mobilne i stacjonarne
Nie chcesz, aby kolumny po prostu układały się na mniejszych urządzeniach? Użyj dodatkowych małych i średnich klas siatki urządzeń, dodając .col-xs-* .col-md-* do swoich kolumn. Zobacz poniższy przykład, aby zobaczyć, jak to wszystko działa.
<!-- 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>
Telefon komórkowy, tablet, komputer stacjonarny
Oprzyj się na poprzednim przykładzie, tworząc jeszcze bardziej dynamiczne i wydajne układy za pomocą .col-sm-* tabletu .col-sm-* .
<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>
Zawijanie kolumn
Jeśli więcej niż 12 kolumn jest umieszczonych w jednym rzędzie, każda grupa dodatkowych kolumn, jako jedna jednostka, zostanie zawinięta w nowy wiersz.
<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>
Reaktywne resetowanie kolumn
Z czterema dostępnymi poziomami siatek możesz napotkać problemy, w których w niektórych punktach przerwania Twoje kolumny nie są całkowicie czyste, ponieważ jedna jest wyższa od drugiej. Aby to naprawić, użyj kombinacji .clearfix i naszych responsywnych klas narzędzi.
<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>
Oprócz czyszczenia kolumn w czułych punktach przerwania może być konieczne zresetowanie przesunięć, przesunięć lub wyciągnięć. Zobacz to w akcji na przykładzie siatki.
<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>
Przesunięcie kolumn
Przesuń kolumny w prawo, używając .col-md-offset-* . Klasy te zwiększają lewy margines kolumny o * kolumny. Na przykład .col-md-offset-4 przenosi .col-md-4 na cztery kolumny.
<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>
Można również przesłonić przesunięcia z niższych warstw siatki za pomocą .col-*-offset-0 .
<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>
Zagnieżdżanie kolumn
Aby zagnieździć zawartość za pomocą domyślnej siatki, dodaj nowy .row i zestaw .col-sm-* w istniejącej .col-sm-* . Zagnieżdżone wiersze powinny zawierać zestaw kolumn, które dodają maksymalnie 12 lub mniej (nie jest wymagane użycie wszystkich 12 dostępnych kolumn).
<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>
Kolejność kolumn
Łatwo zmieniaj kolejność naszych wbudowanych kolumn siatki za .col-md-push-* klas modyfikatorów .col-md-push-* i .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>
Mniej mixin i zmiennych
Oprócz wstępnie zbudowanych klas siatki do szybkich układów, Bootstrap zawiera Mniej zmiennych i miksów do szybkiego generowania własnych prostych układów semantycznych.
Zmienne
Zmienne określają liczbę kolumn, szerokość rynny i punkt zapytania o media, od którego mają się zacząć kolumny swobodne. Używamy ich do generowania predefiniowanych klas siatki udokumentowanych powyżej, a także do niestandardowych miksów wymienionych poniżej.
@grid-columns: 12;
@grid-gutter-width: 30px;
@grid-float-breakpoint: 768px;
Mixiny
Mixiny są używane w połączeniu ze zmiennymi siatki do generowania semantycznego CSS dla poszczególnych kolumn siatki.
// 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));
}
}