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.
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 .
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 |
Korzystaj z klas kolumn specyficznych dla punktów przerwania, aby łatwo zmieniać rozmiar kolumn bez jawnej klasy numerowanej, takiej jak .col-sm-6
.
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ść.
Kolumny o równej szerokości można podzielić na wiele wierszy, ale był 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 jesteś na bieżąco.
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.
Użyj col-{breakpoint}-auto
klas, aby określić rozmiar kolumn na podstawie naturalnej szerokości ich zawartoś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ą się dzielić do nowego wiersza. Spraw, aby przerwy były responsywne, łącząc je .w-100
z niektórymi narzędziami do wyświetlania .
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.
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ż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
).
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.
Użyj narzędzi do wyrównywania flexbox, aby wyrównać kolumny w pionie i poziomie.
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 z szerokościami kolumn, warstwami responsywnymi, zmianami kolejności i nie tylko).
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 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 .
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.
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.
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 .
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.
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).
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 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.
Domieszki są używane w połączeniu ze zmiennymi siatki do generowania semantycznego CSS dla poszczególnych kolumn siatki.
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.
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.
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.
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 %
).