Mrežni sistem
Uporabite našo zmogljivo mrežo flexbox za mobilne naprave, da ustvarite postavitve vseh oblik in velikosti zahvaljujoč sistemu dvanajstih stolpcev, petim privzetim odzivnim nivojem, spremenljivkam Sass in miksinom ter desetinam vnaprej določenih razredov.
Mrežni sistem Bootstrapa uporablja niz vsebnikov, vrstic in stolpcev za postavitev in poravnavo vsebine. Zgrajen je s flexboxom in je popolnoma odziven. Spodaj je primer in podroben pogled na to, kako se mreža združi.
Ste novi ali ne poznate flexbox? Preberite ta priročnik za CSS Tricks flexbox za ozadje, terminologijo, smernice in delčke kode.
<div class="container">
<div class="row">
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
</div>
</div>
Zgornji primer ustvari tri enako široke stolpce na majhnih, srednjih, velikih in zelo velikih napravah z uporabo naših vnaprej določenih mrežnih razredov. Ti stolpci so na sredini strani z nadrejenim .container
.
Če razčlenimo, deluje takole:
- Vsebniki omogočajo sredinsko in vodoravno oblazinjenje vsebine vašega spletnega mesta. Uporabite
.container
za odzivno širino slikovnih pik ali.container-fluid
zawidth: 100%
vsa vidna okna in velikosti naprav. - Vrstice so ovoji za stolpce. Vsak stolpec ima vodoravno
padding
(imenovano žleb) za nadzor prostora med njimi. Topadding
se nato izniči v vrsticah z negativnimi robovi. Na ta način je vsa vsebina v vaših stolpcih vizualno poravnana po levi strani. - V mrežni postavitvi mora biti vsebina postavljena znotraj stolpcev in samo stolpci so lahko neposredni podrejeni vrsticam.
- Zahvaljujoč flexboxu bodo stolpci mreže brez določenega
width
samodejno razporejeni kot stolpci enake širine. Na primer, štirje primerki.col-sm
bodo samodejno široki 25 % od majhne prelomne točke naprej. Za več primerov si oglejte razdelek o stolpcih s samodejno postavitvijo . - Razredi stolpcev označujejo število stolpcev, ki jih želite uporabiti od možnih 12 na vrstico. Torej, če želite tri enako široke stolpce čez, lahko uporabite
.col-4
. - Stolpci
width
so nastavljeni v odstotkih, tako da so vedno tekoči in velikosti glede na njihov nadrejeni element. - Stolpci so vodoravni
padding
za ustvarjanje žlebov med posameznimi stolpci, vendar lahko odstranitemargin
iz vrstic inpadding
iz stolpcev z.no-gutters
na.row
. - Da bi bila mreža odzivna, obstaja pet prelomnih točk mreže, ena za vsako odzivno prelomno točko : vse prelomne točke (zelo majhne), majhne, srednje, velike in zelo velike.
- Prelomne točke mreže temeljijo na medijskih poizvedbah z najmanjšo širino, kar pomeni, da veljajo za to eno prelomno točko in vse tiste nad njo (npr.
.col-sm-4
velja za majhne, srednje velike in zelo velike naprave, vendar ne za prvoxs
prelomno točko). - Za več semantičnega označevanja lahko uporabite vnaprej določene razrede mreže (kot je
.col-4
) ali mešanice Sass .
Zavedajte se omejitev in napak okoli flexboxa , kot je nezmožnost uporabe nekaterih elementov HTML kot vsebnikov flex .
Medtem ko Bootstrap uporablja em
s ali rem
s za definiranje večine velikosti, px
se s uporabljajo za prelomne točke mreže in širine vsebnika. To je zato, ker je širina vidnega polja v slikovnih pikah in se ne spreminja z velikostjo pisave .
Oglejte si, kako vidiki mrežnega sistema Bootstrap delujejo v več napravah s priročno tabelo.
Zelo majhen <576 slikovnih pik |
Majhna ≥576 slikovnih pik |
Srednje ≥768 slikovnih pik |
Velika ≥992 slikovnih pik |
Zelo velik ≥1200 slikovnih pik |
|
---|---|---|---|---|---|
Največja širina posode | Brez (samodejno) | 540 slikovnih pik | 720 slikovnih pik | 960 slikovnih pik | 1140 slikovnih pik |
Predpona razreda | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# stolpcev | 12 | ||||
Širina žleba | 30 slikovnih pik (15 slikovnih pik na vsaki strani stolpca) | ||||
Nestabilen | ja | ||||
Urejanje stolpcev | ja |
Uporabite razrede stolpcev, specifične za prekinitvene točke, za preprosto določanje velikosti stolpcev brez izrecnega oštevilčenega razreda, kot je .col-sm-6
.
Tukaj sta na primer dve postavitvi mreže, ki veljata za vsako napravo in vidno polje, od xs
do xl
. Dodajte poljubno število razredov brez enot za vsako prelomno točko, ki jo potrebujete, in vsak stolpec bo enako širok.
<div class="container">
<div class="row">
<div class="col">
1 of 2
</div>
<div class="col">
2 of 2
</div>
</div>
<div class="row">
<div class="col">
1 of 3
</div>
<div class="col">
2 of 3
</div>
<div class="col">
3 of 3
</div>
</div>
</div>
Stolpce z enako širino je mogoče razdeliti na več vrstic, vendar je prišlo do napake Safari flexbox , ki je preprečila, da bi to delovalo brez izrecnega flex-basis
ali border
. Obstajajo rešitve za starejše različice brskalnika, vendar ne bi smele biti potrebne, če ste posodobljeni.
<div class="container">
<div class="row">
<div class="col">Column</div>
<div class="col">Column</div>
<div class="w-100"></div>
<div class="col">Column</div>
<div class="col">Column</div>
</div>
</div>
Samodejna postavitev za stolpce mreže flexbox pomeni tudi, da lahko nastavite širino enega stolpca in samodejno spremenite velikost sorodnih stolpcev okoli njega. Uporabite lahko vnaprej določene mrežne razrede (kot je prikazano spodaj), mešane mreže ali širine vrstic. Upoštevajte, da se bo velikost drugih stolpcev spremenila ne glede na širino osrednjega stolpca.
<div class="container">
<div class="row">
<div class="col">
1 of 3
</div>
<div class="col-6">
2 of 3 (wider)
</div>
<div class="col">
3 of 3
</div>
</div>
<div class="row">
<div class="col">
1 of 3
</div>
<div class="col-5">
2 of 3 (wider)
</div>
<div class="col">
3 of 3
</div>
</div>
</div>
Uporabite col-{breakpoint}-auto
razrede za določanje velikosti stolpcev glede na naravno širino njihove vsebine.
<div class="container">
<div class="row justify-content-md-center">
<div class="col col-lg-2">
1 of 3
</div>
<div class="col-md-auto">
Variable width content
</div>
<div class="col col-lg-2">
3 of 3
</div>
</div>
<div class="row">
<div class="col">
1 of 3
</div>
<div class="col-md-auto">
Variable width content
</div>
<div class="col col-lg-2">
3 of 3
</div>
</div>
</div>
Ustvarite enako široke stolpce, ki obsegajo več vrstic, tako da vstavite a .w-100
kjer želite, da se stolpci prelomijo v novo vrstico. Naredite odmore odzivne tako, da jih združite .w-100
z nekaterimi pripomočki za odziven zaslon .
<div class="row">
<div class="col">col</div>
<div class="col">col</div>
<div class="w-100"></div>
<div class="col">col</div>
<div class="col">col</div>
</div>
Bootstrapova mreža vključuje pet stopenj vnaprej določenih razredov za gradnjo kompleksnih odzivnih postavitev. Prilagodite velikost svojih stolpcev na zelo majhnih, majhnih, srednjih, velikih ali zelo velikih napravah, kakor se vam zdi primerno.
Za mreže, ki so enake od najmanjše naprave do največje, uporabite razrede .col
in . .col-*
Podajte oštevilčen razred, ko potrebujete stolpec posebne velikosti; sicer pa se držite .col
.
<div class="row">
<div class="col">col</div>
<div class="col">col</div>
<div class="col">col</div>
<div class="col">col</div>
</div>
<div class="row">
<div class="col-8">col-8</div>
<div class="col-4">col-4</div>
</div>
Z uporabo enega nabora .col-sm-*
razredov lahko ustvarite osnovni mrežni sistem, ki se začne zloženo, preden postane vodoraven z majhno prelomno točko ( sm
).
<div class="row">
<div class="col-sm-8">col-sm-8</div>
<div class="col-sm-4">col-sm-4</div>
</div>
<div class="row">
<div class="col-sm">col-sm</div>
<div class="col-sm">col-sm</div>
<div class="col-sm">col-sm</div>
</div>
Ne želite, da bi bili vaši stolpci preprosto zloženi v nekaj mrežnih nivojih? Po potrebi uporabite kombinacijo različnih razredov za vsako raven. Oglejte si spodnji primer za boljšo predstavo o tem, kako vse skupaj deluje.
<!-- Stack the columns on mobile by making one full-width and the other half-width -->
<div class="row">
<div class="col-12 col-md-8">.col-12 .col-md-8</div>
<div class="col-6 col-md-4">.col-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-6 col-md-4">.col-6 .col-md-4</div>
<div class="col-6 col-md-4">.col-6 .col-md-4</div>
<div class="col-6 col-md-4">.col-6 .col-md-4</div>
</div>
<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
<div class="col-6">.col-6</div>
<div class="col-6">.col-6</div>
</div>
Za navpično in vodoravno poravnavo stolpcev uporabite pripomočke za poravnavo flexbox.
<div class="container">
<div class="row align-items-start">
<div class="col">
One of three columns
</div>
<div class="col">
One of three columns
</div>
<div class="col">
One of three columns
</div>
</div>
<div class="row align-items-center">
<div class="col">
One of three columns
</div>
<div class="col">
One of three columns
</div>
<div class="col">
One of three columns
</div>
</div>
<div class="row align-items-end">
<div class="col">
One of three columns
</div>
<div class="col">
One of three columns
</div>
<div class="col">
One of three columns
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col align-self-start">
One of three columns
</div>
<div class="col align-self-center">
One of three columns
</div>
<div class="col align-self-end">
One of three columns
</div>
</div>
</div>
<div class="container">
<div class="row justify-content-start">
<div class="col-4">
One of two columns
</div>
<div class="col-4">
One of two columns
</div>
</div>
<div class="row justify-content-center">
<div class="col-4">
One of two columns
</div>
<div class="col-4">
One of two columns
</div>
</div>
<div class="row justify-content-end">
<div class="col-4">
One of two columns
</div>
<div class="col-4">
One of two columns
</div>
</div>
<div class="row justify-content-around">
<div class="col-4">
One of two columns
</div>
<div class="col-4">
One of two columns
</div>
</div>
<div class="row justify-content-between">
<div class="col-4">
One of two columns
</div>
<div class="col-4">
One of two columns
</div>
</div>
</div>
Žlebove med stolpci v naših vnaprej določenih mrežnih razredih lahko odstranite z .no-gutters
. S tem se odstranijo negativni margin
s .row
in vodoravna črta padding
iz vseh neposrednih podrejenih stolpcev.
Tukaj je izvorna koda za ustvarjanje teh slogov. Upoštevajte, da so preglasitve stolpcev omejene samo na prve podrejene stolpce in so ciljane prek izbirnika atributov . Medtem ko to ustvari bolj specifičen izbirnik, je oblazinjenje stolpcev še vedno mogoče dodatno prilagoditi s pripomočki za razmik .
Potrebujete dizajn od roba do roba? Izpustite nadrejeno .container
ali .container-fluid
.
V praksi je takole videti. Upoštevajte, da lahko to še naprej uporabljate z vsemi drugimi vnaprej določenimi razredi mreže (vključno s širinami stolpcev, odzivnimi stopnjami, preurejanjem in drugim).
<div class="row no-gutters">
<div class="col-12 col-sm-6 col-md-8">.col-12 .col-sm-6 .col-md-8</div>
<div class="col-6 col-md-4">.col-6 .col-md-4</div>
</div>
Če je v eni vrstici več kot 12 stolpcev, bo vsaka skupina dodatnih stolpcev kot ena enota prešla v novo vrstico.
Ker je 9 + 4 = 13 > 12, se ta div s 4 stolpci zavije v novo vrstico kot ena sosednja enota.
Naslednji stolpci se nadaljujejo v novi vrstici.
<div class="row">
<div class="col-9">.col-9</div>
<div class="col-4">.col-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-6">.col-6<br>Subsequent columns continue along the new line.</div>
</div>
Prekinitev stolpcev v novo vrstico v flexboxu zahteva majhen vdor: dodajte element s katerimkoli mestom width: 100%
želite zaviti svoje stolpce v novo vrstico. Običajno se to doseže z več .row
s-ji, vendar tega ne more upoštevati vsaka implementacijska metoda.
<div class="row">
<div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
<div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
<!-- Force next columns to break to new line -->
<div class="w-100"></div>
<div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
<div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
</div>
Ta prekinitev lahko uporabite tudi na določenih prelomnih točkah z našimi odzivnimi prikazovalnimi pripomočki .
<div class="row">
<div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
<div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
<!-- Force next columns to break to new line at md breakpoint and up -->
<div class="w-100 d-none d-md-block"></div>
<div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
<div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
</div>
Uporabite .order-
razrede za nadzor vizualnega reda vaše vsebine. Ti razredi so odzivni, tako da lahko nastavite order
prekinitveno točko (npr. .order-1.order-md-2
). Vključuje podporo za 1
skozi 12
vseh pet stopenj omrežja.
<div class="container">
<div class="row">
<div class="col">
First, but unordered
</div>
<div class="col order-12">
Second, but last
</div>
<div class="col order-1">
Third, but first
</div>
</div>
</div>
Obstajajo tudi odzivni razredi .order-first
in .order-last
razredi, ki spremenijo order
element elementa z uporabo order: -1
oziroma order: 13
( order: $columns + 1
). Te razrede je mogoče po potrebi tudi mešati z oštevilčenimi .order-*
razredi.
<div class="container">
<div class="row">
<div class="col order-last">
First, but last
</div>
<div class="col">
Second, but unordered
</div>
<div class="col order-first">
Third, but first
</div>
</div>
</div>
Stolpce mreže lahko izravnate na dva načina: z našimi odzivnimi .offset-
razredi mreže in našimi pripomočki za robove . Razredi mrež so velikosti tako, da se ujemajo s stolpci, medtem ko so robovi bolj uporabni za hitre postavitve, kjer je širina odmika spremenljiva.
Premaknite stolpce v desno z uporabo .offset-md-*
razredov. Ti razredi povečujejo levi rob stolpca za *
stolpcem. Na primer, .offset-md-4
premika se .col-md-4
po štirih stolpcih.
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 offset-md-4">.col-md-4 .offset-md-4</div>
</div>
<div class="row">
<div class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
<div class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
</div>
<div class="row">
<div class="col-md-6 offset-md-3">.col-md-6 .offset-md-3</div>
</div>
Poleg čiščenja stolpcev na odzivnih prelomnih točkah boste morda morali ponastaviti odmike. Oglejte si to v akciji v primeru mreže .
<div class="row">
<div class="col-sm-5 col-md-6">.col-sm-5 .col-md-6</div>
<div class="col-sm-5 offset-sm-2 col-md-6 offset-md-0">.col-sm-5 .offset-sm-2 .col-md-6 .offset-md-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 offset-md-2 col-lg-6 offset-lg-0">.col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0</div>
</div>
S prehodom na flexbox v različici 4 lahko uporabite pripomočke za margine, .mr-auto
na primer prisilite sorodne stolpce drug od drugega.
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 ml-auto">.col-md-4 .ml-auto</div>
</div>
<div class="row">
<div class="col-md-3 ml-md-auto">.col-md-3 .ml-md-auto</div>
<div class="col-md-3 ml-md-auto">.col-md-3 .ml-md-auto</div>
</div>
<div class="row">
<div class="col-auto mr-auto">.col-auto .mr-auto</div>
<div class="col-auto">.col-auto</div>
</div>
Če želite svojo vsebino ugnezditi s privzeto mrežo, dodajte nov .row
in nabor .col-sm-*
stolpcev znotraj obstoječega .col-sm-*
stolpca. Ugnezdene vrstice morajo vključevati nabor stolpcev, katerih seštevek je 12 ali manj (ni potrebno, da uporabite vseh 12 razpoložljivih stolpcev).
<div class="row">
<div class="col-sm-9">
Level 1: .col-sm-9
<div class="row">
<div class="col-8 col-sm-6">
Level 2: .col-8 .col-sm-6
</div>
<div class="col-4 col-sm-6">
Level 2: .col-4 .col-sm-6
</div>
</div>
</div>
</div>
Ko uporabljate Bootstrapove izvorne datoteke Sass, imate možnost uporabe spremenljivk in mešanic Sass za ustvarjanje semantičnih in odzivnih postavitev strani po meri. Naši vnaprej določeni mrežni razredi uporabljajo iste spremenljivke in mešanice, da zagotovijo celotno zbirko razredov, pripravljenih za uporabo, za hitro odzivne postavitve.
Spremenljivke in zemljevidi določajo število stolpcev, širino žleba in točko medijske poizvedbe, na kateri se začnejo plavajoči stolpci. Uporabljamo jih za ustvarjanje vnaprej določenih razredov mreže, dokumentiranih zgoraj, kot tudi za mešanice po meri, navedene spodaj.
Miksini se uporabljajo v povezavi s spremenljivkami mreže za ustvarjanje semantičnega CSS za posamezne stolpce mreže.
Spremenljivke lahko spremenite v svoje lastne vrednosti po meri ali preprosto uporabite miksine z njihovimi privzetimi vrednostmi. Tukaj je primer uporabe privzetih nastavitev za ustvarjanje postavitve v dveh stolpcih z vrzeljo med njima.
<div class="example-container">
<div class="example-row">
<div class="example-content-main">Main content</div>
<div class="example-content-secondary">Secondary content</div>
</div>
</div>
Z uporabo naših vgrajenih mrežnih spremenljivk in zemljevidov Sass je mogoče popolnoma prilagoditi vnaprej določene razrede mreže. Spremenite število nivojev, dimenzije medijske poizvedbe in širine vsebnika – nato znova prevedite.
Število stolpcev mreže je mogoče spremeniti s spremenljivkami Sass. $grid-columns
se uporablja za generiranje širin (v odstotkih) vsakega posameznega stolpca, hkrati pa $grid-gutter-width
omogoča širine, specifične za prelomne točke, ki so enakomerno razdeljene čez padding-left
in padding-right
za žlebove stolpcev.
Poleg samih stolpcev lahko prilagodite tudi število stopenj mreže. Če bi želeli le štiri mrežne ravni, bi posodobili $grid-breakpoints
in $container-max-widths
na nekaj takega:
Ko spreminjate spremenljivke ali zemljevide Sass, boste morali shraniti spremembe in jih znova prevesti. S tem boste ustvarili povsem nov niz vnaprej določenih razredov mreže za širine stolpcev, odmike in vrstni red. Odzivni pripomočki za vidnost bodo prav tako posodobljeni za uporabo prekinitvenih točk po meri. Ne pozabite nastaviti mrežnih vrednosti v px
(ne rem
, em
, ali %
).