Bootstrap jest zbudowany na responsywnej 12-kolumnowej siatce. Zawarliśmy również układy o stałej i płynnej szerokości oparte na tym systemie.
Bootstrap korzysta z elementów HTML i właściwości CSS, które wymagają użycia doctype HTML5. Pamiętaj, aby umieścić go na początku każdej strony Bootstrapped w swoim projekcie.
- <!DOCTYPE html>
- <html lang = "pl" >
- ...
- </html>
W pliku scaffolding.less ustawiamy podstawowe globalne style wyświetlania, typografii i linków. W szczególności:
background-color: white;
nabody
@baseFontFamily
, @baseFontSize
, i @baseLineHeight
atrybutów jako naszej bazy typograficznej@linkColor
i zastosuj podkreślenia linków tylko na:hover
Począwszy od Bootstrap 2, tradycyjny reset CSS ewoluował, aby wykorzystać elementy z Normalize.css , projektu Nicolasa Gallaghera , który obsługuje również HTML5 Boilerplate .
Nowy reset nadal można znaleźć w reset.less , ale z wieloma elementami usuniętymi dla zwięzłości i dokładności.
Domyślny system siatki dostępny w Bootstrap wykorzystuje 12 kolumn , które renderują się w szerokościach 724px, 940px (domyślnie bez responsywnego CSS) i 1170px. Poniżej okien widocznych 767 pikseli kolumny stają się płynne i układają się pionowo.
- <div class = "wiersz" >
- <div class = "span4" > ... </div>
- <div class = "span8" > ... </div>
- </div>
Jak pokazano tutaj, podstawowy układ można utworzyć za pomocą dwóch „kolumn”, z których każda obejmuje liczbę z 12 kolumn fundamentowych, które zdefiniowaliśmy jako część naszego systemu siatki.
- <div class = "wiersz" >
- <div class = "span4" > ... </div>
- <div class = "span4 offset4" > ... </div>
- </div>
Dzięki statycznemu (nie płynnemu) systemowi siatki w Bootstrap, zagnieżdżanie jest łatwe. Aby zagnieździć treść, po prostu dodaj nową .row
i zestaw .span*
kolumn w istniejącej .span*
kolumnie.
Zagnieżdżone wiersze powinny zawierać zestaw kolumn, które sumują się do liczby kolumn jego rodzica. Na przykład dwie zagnieżdżone .span3
kolumny powinny być umieszczone w .span6
.
- <div class = "wiersz" >
- <div class = "span6" >
- Kolumna poziomu 1
- <div class = "wiersz" >
- <div class = "span3" > Poziom 2 </div>
- <div class = "span3" > Poziom 2 </div>
- </div>
- </div>
- </div>
System płynnej siatki używa wartości procentowych dla szerokości kolumn zamiast stałych pikseli. Ma również te same responsywne warianty, co nasz system stałej siatki, zapewniając odpowiednie proporcje dla kluczowych rozdzielczości ekranu i urządzeń.
Spraw, aby dowolny wiersz był płynny, po prostu zmieniając .row
na .row-fluid
. Kolumny pozostają dokładnie takie same, dzięki czemu przełączanie między układami stałymi i płynnymi jest bardzo proste.
- <div class = "row-fluid" >
- <div class = "span4" > ... </div>
- <div class = "span8" > ... </div>
- </div>
Zagnieżdżanie za pomocą elastycznych siatek jest nieco inne: liczba zagnieżdżonych kolumn nie musi odpowiadać wartości nadrzędnej. Zamiast tego Twoje kolumny są resetowane na każdym poziomie, ponieważ każdy wiersz zajmuje 100% kolumny nadrzędnej.
- <div class = "row-fluid" >
- <div class = "span12" >
- Poziom 1 kolumny
- <div class = "row-fluid" >
- <div class = "span6" > Poziom 2 </div>
- <div class = "span6" > Poziom 2 </div>
- </div>
- </div>
- </div>
Zmienny | Domyślna wartość | Opis |
---|---|---|
@gridColumns |
12 | Liczba kolumn |
@gridColumnWidth |
60px | Szerokość każdej kolumny |
@gridGutterWidth |
20px | Ujemna przestrzeń między kolumnami |
W Bootstrap wbudowana jest garść zmiennych do dostosowywania domyślnego systemu siatki 940px, udokumentowana powyżej. Wszystkie zmienne dla siatki są przechowywane w Variable.less.
Modyfikacja siatki oznacza zmianę trzech @grid*
zmiennych i ponowną kompilację Bootstrapa. Zmień zmienne siatki w Variable.less i użyj jednego z czterech udokumentowanych sposobów ponownej kompilacji . Jeśli dodajesz więcej kolumn, pamiętaj, aby dodać CSS dla tych w grid.less.
Dostosowywanie siatki działa tylko na domyślnym poziomie, siatce 940px. Aby zachować responsywne aspekty Bootstrap, musisz również dostosować siatki w responsive.less.
Domyślny i prosty układ o szerokości 940 pikseli, wyśrodkowany dla niemal każdej witryny lub strony dostarczonej przez pojedynczą witrynę <div class="container">
.
- <ciało>
- <div class = "kontener" >
- ...
- </div>
- </body>
<div class="container-fluid">
zapewnia elastyczną strukturę strony, minimalną i maksymalną szerokość oraz lewy pasek boczny. Świetnie nadaje się do aplikacji i dokumentów.
- <div class = "pojemnik-płyn" >
- <div class = "row-fluid" >
- <div class = "span2" >
- <!--Zawartość paska bocznego-->
- </div>
- <div class = "span10" >
- <!--Zawartość treści-->
- </div>
- </div>
- </div>
Zapytania o media pozwalają na niestandardowy CSS oparty na wielu warunkach – proporcjach, szerokościach, typie wyświetlania itp. – ale zwykle skupiają się wokół min-width
i max-width
.
Korzystaj z zapytań o media w sposób odpowiedzialny i tylko jako początek dla odbiorców mobilnych. W przypadku większych projektów należy rozważyć dedykowane bazy kodu, a nie warstwy zapytań o media.
Bootstrap obsługuje kilka zapytań o media w jednym pliku, aby Twoje projekty były bardziej odpowiednie na różnych urządzeniach i rozdzielczościach ekranu. Oto, co zawiera:
Etykieta | Szerokość układu | Szerokość kolumny | Szerokość rynny |
---|---|---|---|
Smartfony | 480px i mniej | Kolumny płynne, bez stałych szerokości | |
Smartfony na tablety | 767 pikseli i mniej | Kolumny płynne, bez stałych szerokości | |
Tablety portretowe | 768px i więcej | 42px | 20px |
Domyślna | 980 pikseli i więcej | 60px | 20px |
Duży wyświetlacz | 1200px i więcej | 70px | 30px |
Aby upewnić się, że urządzenia prawidłowo wyświetlają strony responsywne, dołącz metatag viewport.
- <meta name = „viewport” content = „width=szerokość-urządzenia, początkowa skala=1.0” >
Bootstrap nie uwzględnia automatycznie tych zapytań o media, ale ich zrozumienie i dodanie jest bardzo łatwe i wymaga minimalnej konfiguracji. Masz kilka opcji włączenia responsywnych funkcji Bootstrap:
Dlaczego po prostu tego nie uwzględnić? Prawdę mówiąc, nie wszystko musi być responsywne. Zamiast zachęcać programistów do usunięcia tej funkcji, uważamy, że najlepiej jest ją włączyć.
- /* Telefony poziome i dół */
- @media ( max - szerokość : 480px ) { ... }
- /* Z telefonu w orientacji poziomej do tabletu w orientacji pionowej */
- @media ( max - szerokość : 767px ) { ... }
- /* Z tabletu w orientacji pionowej na poziomą i na komputer */
- @media ( min - szerokość : 768px ) i ( max - szerokość : 979px ) { ... }
- /* Duży pulpit */
- @media ( min - szerokość : 1200px ) { ... }
Aby przyspieszyć programowanie przyjazne dla urządzeń mobilnych, użyj tych podstawowych klas narzędzi do wyświetlania i ukrywania treści według urządzenia.
Używaj w ograniczonym zakresie i unikaj tworzenia zupełnie różnych wersji tej samej witryny. Zamiast tego użyj ich do uzupełnienia prezentacji każdego urządzenia.
Na przykład możesz wyświetlić <select>
element nawigacji w układach mobilnych, ale nie na tabletach lub komputerach stacjonarnych.
Pokazano tutaj tabelę obsługiwanych przez nas klas i ich wpływ na dany układ zapytań o media (oznaczony według urządzenia). Można je znaleźć w responsive.less
.
Klasa | Telefony480px i mniej | Tablety767 pikseli i mniej | Komputery stacjonarne768px i więcej |
---|---|---|---|
.visible-phone |
Widoczny | Ukryty | Ukryty |
.visible-tablet |
Ukryty | Widoczny | Ukryty |
.visible-desktop |
Ukryty | Ukryty | Widoczny |
.hidden-phone |
Ukryty | Widoczny | Widoczny |
.hidden-tablet |
Widoczny | Ukryty | Widoczny |
.hidden-desktop |
Widoczny | Widoczny | Ukryty |
Zmień rozmiar przeglądarki lub załaduj na różnych urządzeniach, aby przetestować powyższe klasy.
Zielone znaczniki wyboru wskazują, że klasa jest widoczna w bieżącym oknie roboczym.
W tym przypadku zielone znaczniki wyboru wskazują, że klasa jest ukryta w bieżącym oknie roboczym.