System siatki
Wykorzystaj naszą potężną siatkę flexbox zoptymalizowaną pod kątem urządzeń mobilnych, aby tworzyć układy o różnych kształtach i rozmiarach dzięki systemowi dwunastu kolumn, pięciu domyślnym, responsywnym warstwom, zmiennym i domieszkom Sass oraz dziesiątkom predefiniowanych klas.
Jak to działa
System siatki Bootstrap wykorzystuje szereg kontenerów, wierszy i kolumn do układania i wyrównywania zawartości. Jest zbudowany z flexbox i jest w pełni responsywny. Poniżej znajduje się przykład i dogłębne spojrzenie na to, jak łączy się siatka.
Nowy lub nie znasz flexboxa? Przeczytaj ten przewodnik po sztuczkach CSS flexbox, aby poznać tło, terminologię, wytyczne i fragmenty kodu.
Powyższy przykład tworzy trzy kolumny o równej szerokości na małych, średnich, dużych i bardzo dużych urządzeniach przy użyciu naszych predefiniowanych klas siatek. Te kolumny są wyśrodkowane na stronie z elementem nadrzędnym .container
.
Rozbijając to, oto jak to działa:
- Kontenery umożliwiają wyśrodkowanie i wyrównanie zawartości witryny w poziomie. Użyj
.container
, aby uzyskać responsywną szerokość w pikselach lub.container-fluid
wewidth: 100%
wszystkich widocznych obszarach i rozmiarach urządzeń. - Wiersze to opakowania dla kolumn. Każda kolumna ma poziomą
padding
(zwaną rynną) do kontrolowania przestrzeni między nimi. Jestpadding
to następnie przeciwdziałane w rzędach z ujemnymi marginesami. W ten sposób cała zawartość Twoich kolumn jest wizualnie wyrównana do lewej strony. - W układzie siatki zawartość musi być umieszczona w kolumnach, a tylko kolumny mogą być bezpośrednimi elementami podrzędnymi wierszy.
- Dzięki flexbox, kolumny siatki bez określonego
width
zostaną automatycznie ustawione jako kolumny o równej szerokości. Na przykład cztery wystąpienia.col-sm
będą automatycznie miały szerokość 25% od małego punktu przerwania w górę. Zobacz sekcję kolumn z automatycznym układem , aby uzyskać więcej przykładów. - Klasy kolumn wskazują liczbę kolumn, których chcesz użyć z możliwych 12 na wiersz. Jeśli więc potrzebujesz trzech kolumn o równej szerokości, możesz użyć
.col-4
. - Kolumny
width
są ustawiane w procentach, więc zawsze są płynne i mają rozmiar w stosunku do elementu nadrzędnego. - Kolumny są poziome,
padding
aby utworzyć rynny między poszczególnymi kolumnami, jednak możesz usunąćmargin
z wierszy ipadding
kolumn za.no-gutters
pomocą przycisku.row
. - Aby siatka była responsywna, istnieje pięć punktów przerwania siatki, po jednym dla każdego reagującego punktu przerwania : wszystkie punkty przerwania (bardzo małe), małe, średnie, duże i bardzo duże.
- Punkty przerwania siatki są oparte na zapytaniach o media o minimalnej szerokości, co oznacza, że mają zastosowanie do tego jednego punktu przerwania i wszystkich powyżej niego (np.
.col-sm-4
dotyczą małych, średnich, dużych i bardzo dużych urządzeń, ale nie pierwszegoxs
punktu przerwania). - Możesz użyć predefiniowanych klas siatek (takich jak
.col-4
) lub domieszek Sass, aby uzyskać bardziej semantyczne znaczniki.
Bądź świadomy ograniczeń i błędów związanych z flexboxem , takich jak niemożność użycia niektórych elementów HTML jako elastycznych kontenerów .
Opcje siatki
Podczas gdy Bootstrap używa em
s lub rem
s do definiowania większości rozmiarów, px
s są używane do punktów przerwania siatki i szerokości kontenerów. Dzieje się tak, ponieważ szerokość widocznego obszaru jest wyrażona w pikselach i nie zmienia się wraz z rozmiarem czcionki .
Zobacz, jak różne aspekty systemu Bootstrap działają na wielu urządzeniach za pomocą poręcznej tabeli.
Bardzo mały <576px |
Mały ≥576 pikseli |
Średni ≥768px |
Duży ≥992px |
Bardzo duże ≥1200px |
|
---|---|---|---|---|---|
Maksymalna szerokość pojemnika | Brak (automatycznie) | 540px | 720px | 960px | 1140px |
Prefiks klasy | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# kolumn | 12 | ||||
Szerokość rynny | 30px (15px z każdej strony kolumny) | ||||
Gniazdowy | TAk | ||||
Kolejność kolumn | TAk |
Kolumny z automatycznym układem
Korzystaj z klas kolumn specyficznych dla punktów przerwania, aby łatwo zmieniać rozmiar kolumn bez jawnej klasy numerowanej, takiej jak .col-sm-6
.
Równej szerokości
Na przykład oto dwa układy siatki, które mają zastosowanie do każdego urządzenia i rzutni, od xs
do xl
. Dodaj dowolną liczbę klas bez jednostek dla każdego potrzebnego punktu przerwania, a każda kolumna będzie miała tę samą szerokość.
Wiele linii o równej szerokości
Utwórz kolumny o równej szerokości, które obejmują wiele wierszy, wstawiając znak w miejscu, w .w-100
którym kolumny mają być łamane do nowego wiersza. Spraw, aby przerwy były responsywne, mieszając je .w-100
z niektórymi narzędziami do wyświetlania .
Wystąpił błąd Safari flexbox , który uniemożliwiał działanie bez wyraźnego flex-basis
lub border
. Istnieją obejścia dla starszych wersji przeglądarek, ale nie powinny być one konieczne, jeśli docelowe przeglądarki nie są objęte błędami.
Ustawianie szerokości jednej kolumny
Automatyczne rozmieszczenie kolumn siatki Flexbox oznacza również, że możesz ustawić szerokość jednej kolumny i automatycznie zmienić rozmiar kolumn wokół niej. Możesz użyć predefiniowanych klas siatek (jak pokazano poniżej), mixinów siatek lub szerokości w linii. Zwróć uwagę, że inne kolumny zmienią rozmiar bez względu na szerokość kolumny środkowej.
Zawartość o zmiennej szerokości
Użyj col-{breakpoint}-auto
klas, aby określić rozmiar kolumn na podstawie naturalnej szerokości ich zawartości.
Klasy responsywne
Siatka Bootstrap zawiera pięć poziomów predefiniowanych klas do budowania złożonych, responsywnych układów. Dostosuj rozmiar swoich kolumn na bardzo małych, małych, średnich, dużych lub bardzo dużych urządzeniach według własnego uznania.
Wszystkie punkty przerwania
W przypadku siatek, które są takie same od najmniejszego urządzenia do największego, użyj klas .col
i . .col-*
Określ numerowaną klasę, gdy potrzebujesz kolumny o szczególnie dużym rozmiarze; w przeciwnym razie możesz trzymać się .col
.
Ułożone w poziomie
Używając pojedynczego zestawu .col-sm-*
klas, możesz utworzyć podstawowy system siatki, który zaczyna się ułożony w stos i staje się poziomy w małym punkcie przerwania ( sm
).
Mieszać i łączyć
Nie chcesz, aby Twoje kolumny po prostu układały się w niektóre poziomy siatki? W razie potrzeby użyj kombinacji różnych klas dla każdego poziomu. Zobacz poniższy przykład, aby lepiej zrozumieć, jak to wszystko działa.
Rynny
Rynny mogą być odpowiednio dostosowywane przez dopełnienie specyficzne dla punktu przerwania i klasy użyteczności ujemnego marginesu. Aby zmienić rynny w danym rzędzie, sparuj narzędzie ujemnego marginesu na .row
i pasujące narzędzia dopełniania na .col
s. Może zaistnieć potrzeba dostosowania elementu lub rodzica, aby uniknąć niepożądanego przepełnienia, używając ponownie narzędzia dopasowującego dopełnianie .container
..container-fluid
Oto przykład dostosowywania siatki Bootstrap w dużym punkcie lg
przerwania ( ) i powyżej. Zwiększyliśmy .col
dopełnienie za pomocą .px-lg-5
, przeciwdziałaliśmy temu za .mx-lg-n5
pomocą elementu nadrzędnego .row
, a następnie dostosowaliśmy .container
opakowanie za pomocą .px-lg-5
.
Kolumny wierszy
Użyj .row-cols-*
klas responsywnych, aby szybko ustawić liczbę kolumn, które najlepiej renderują treść i układ. Podczas gdy normalne .col-*
klasy odnoszą się do poszczególnych kolumn (np. .col-md-4
), klasy kolumn wierszy są ustawiane na rodzicu .row
jako skrót.
Użyj tych klas kolumn wierszy, aby szybko utworzyć podstawowe układy siatki lub kontrolować układy kart.
Możesz również użyć dołączonego mixinu Sass, row-cols()
:
Wyrównanie
Użyj narzędzi do wyrównywania flexbox, aby wyrównać kolumny w pionie i poziomie. Internet Explorer 10-11 nie obsługuje pionowego wyrównania elementów elastycznych, gdy kontener elastyczny ma min-height
pokazany poniżej. Zobacz Flexbugs #3 po więcej szczegółów.
Wyrównanie w pionie
Wyrównanie w poziomie
Brak rynien
Rynny między kolumnami w naszych predefiniowanych klasach siatki można usunąć za pomocą .no-gutters
. Spowoduje to usunięcie ujemnych margin
s .row
i poziomych padding
ze wszystkich najbliższych kolumn podrzędnych.
Oto kod źródłowy do tworzenia tych stylów. Zwróć uwagę, że nadpisania kolumn dotyczą tylko pierwszych kolumn podrzędnych i są kierowane za pomocą selektora atrybutów . Chociaż generuje to bardziej szczegółowy selektor, dopełnienie kolumn można nadal dostosowywać za pomocą narzędzi do ustawiania odstępów .
Potrzebujesz projektu od krawędzi do krawędzi? Usuń rodzica .container
lub .container-fluid
.
W praktyce tak to wygląda. Pamiętaj, że możesz nadal używać tego ze wszystkimi innymi predefiniowanymi klasami siatki (w tym szerokościami kolumn, warstwami responsywnymi, zmianą kolejności i nie tylko).
Zawijanie kolumn
Jeśli w jednym rzędzie znajduje się więcej niż 12 kolumn, każda grupa dodatkowych kolumn, jako jedna jednostka, zawinie się w nowy wiersz.
Ponieważ 9 + 4 = 13 > 12, ten czterokolumnowy div jest umieszczany w nowej linii jako jedna ciągła jednostka.
Kolejne kolumny są kontynuowane wzdłuż nowej linii.
Łamanie kolumn
Łamanie kolumn do nowej linii w flexboksie wymaga małego hacka: dodaj element z width: 100%
dowolnym miejscem, w którym chcesz zawinąć kolumny do nowej linii. Zwykle odbywa się to za pomocą wielu .row
s, ale nie każda metoda implementacji może to wyjaśnić.
Możesz również zastosować to przerwanie w określonych punktach przerwania za pomocą naszych narzędzi do responsywnego wyświetlania .
Zmiana kolejności
Zamów zajęcia
Użyj .order-
klas do kontrolowania wizualnej kolejności treści. Te klasy są responsywne, więc możesz ustawić je order
według punktu przerwania (np .order-1.order-md-2
. ). Obejmuje wsparcie dla 1
wszystkich 12
pięciu poziomów siatki.
Istnieją również responsywne .order-first
i .order-last
klasy, które zmieniają order
element poprzez zastosowanie odpowiednio order: -1
i order: 13
( order: $columns + 1
). Klasy te można również mieszać z .order-*
klasami ponumerowanymi w razie potrzeby.
Przesunięcie kolumn
Możesz przesunąć kolumny siatki na dwa sposoby: nasze responsywne .offset-
klasy siatki i nasze narzędzia do tworzenia marginesów . Klasy siatki są dopasowane do kolumn, podczas gdy marginesy są bardziej przydatne w przypadku szybkich układów, w których szerokość przesunięcia jest zmienna.
Klasy offsetowe
Przenieś kolumny w prawo za pomocą .offset-md-*
klas. Te klasy zwiększają lewy margines kolumny o *
kolumny. Na przykład .offset-md-4
porusza się .col-md-4
po czterech kolumnach.
Oprócz czyszczenia kolumn w responsywnych punktach przerwania może być konieczne zresetowanie odsunięć. Zobacz to w akcji w przykładzie siatki .
Narzędzia depozytowe
Po przejściu na flexbox w wersji 4 możesz używać narzędzi do marżowania, takich jak .mr-auto
odsuwanie od siebie kolumn rodzeństwa.
Zagnieżdżanie
Aby zagnieździć zawartość z domyślną siatką, dodaj nową .row
i zestaw .col-sm-*
kolumn w istniejącej .col-sm-*
kolumnie. Wiersze zagnieżdżone powinny zawierać zestaw kolumn, które sumują się do 12 lub mniej (nie jest wymagane użycie wszystkich 12 dostępnych kolumn).
Mieszanki Sass
Korzystając ze źródłowych plików Sass Bootstrap, masz możliwość używania zmiennych Sass i domieszek do tworzenia niestandardowych, semantycznych i responsywnych układów stron. Nasze predefiniowane klasy grid wykorzystują te same zmienne i domieszki, aby zapewnić cały zestaw gotowych do użycia klas dla szybkich, responsywnych układów.
Zmienne
Zmienne i mapy określają liczbę kolumn, szerokość rynny i punkt zapytania o media, od którego mają się zaczynać kolumny swobodne. Używamy ich do generowania wcześniej zdefiniowanych klas siatek opisanych powyżej, a także do niestandardowych domieszek wymienionych poniżej.
Mieszanki
Domieszki są używane w połączeniu ze zmiennymi siatki do generowania semantycznego CSS dla poszczególnych kolumn siatki.
Przykładowe użycie
Możesz modyfikować zmienne do własnych wartości niestandardowych lub po prostu użyć domieszek z ich wartościami domyślnymi. Oto przykład użycia ustawień domyślnych do utworzenia układu dwukolumnowego z przerwą między nimi.
Dostosowywanie siatki
Korzystając z naszych wbudowanych zmiennych i map siatki Sass, można całkowicie dostosować predefiniowane klasy siatki. Zmień liczbę poziomów, wymiary zapytań o media i szerokości kontenerów, a następnie dokonaj ponownej kompilacji.
Kolumny i rynny
Liczbę kolumn siatki można modyfikować za pomocą zmiennych Sass. $grid-columns
służy do generowania szerokości (w procentach) poszczególnych słupów, podczas gdy $grid-gutter-width
ustawia szerokość rynien słupów.
Poziomy siatki
Wychodząc poza same kolumny, możesz również dostosować liczbę poziomów siatki. Jeśli chcesz mieć tylko cztery poziomy siatki, zaktualizuj $grid-breakpoints
i $container-max-widths
do czegoś takiego:
Wprowadzając jakiekolwiek zmiany w zmiennych Sass lub mapach, musisz je zapisać i ponownie skompilować. Spowoduje to wygenerowanie zupełnie nowego zestawu wstępnie zdefiniowanych klas siatki dla szerokości kolumn, przesunięć i kolejności. Responsywne narzędzia widoczności również zostaną zaktualizowane, aby korzystać z niestandardowych punktów przerwania. Pamiętaj, aby ustawić wartości siatki w px
(nie rem
, em
lub %
).