Apžvalga
„Bootstrap“ projekto išdėstymo komponentai ir parinktys, įskaitant pakavimo konteinerius, galingą tinklelio sistemą, lanksčią medijos objektą ir reaguojančias paslaugų klases.
Konteineriai
Sudėtiniai rodiniai yra pagrindinis „Bootstrap“ išdėstymo elementas ir būtini naudojant numatytąją tinklelio sistemą . Konteineriai naudojami turiniui juose laikyti, paduoti ir (kartais) centruoti. Nors sudėtinius rodinius galima įdėti, daugeliui maketų nereikia įdėti įdėto sudėtinio rodinio.
„Bootstrap“ yra su trimis skirtingais konteineriais:
.container
max-width
, kuris kiekviename reaguojančiame lūžio taške nustato a.container-fluid
, kuris yrawidth: 100%
visuose lūžio taškuose.container-{breakpoint}
, kuri yrawidth: 100%
iki nurodytos pertraukos taško
Toliau pateiktoje lentelėje parodyta, kaip kiekvienas sudėtinis rodinys max-width
lyginamas su originalu .container
ir .container-fluid
kiekvienu pertraukos tašku.
Pamatykite juos veikiant ir palyginkite juos mūsų tinklelio pavyzdyje .
Itin mažas <576px |
Mažas ≥ 576 piks |
Vidutinis ≥ 768 piks |
Didelis ≥ 992 piks |
Ypač didelis ≥ 1200 pikselių |
|
---|---|---|---|---|---|
.container |
100 % | 540 pikselių | 720 taškų | 960 taškų | 1140 taškų |
.container-sm |
100 % | 540 pikselių | 720 taškų | 960 taškų | 1140 taškų |
.container-md |
100 % | 100 % | 720 taškų | 960 taškų | 1140 taškų |
.container-lg |
100 % | 100 % | 100 % | 960 taškų | 1140 taškų |
.container-xl |
100 % | 100 % | 100 % | 100 % | 1140 taškų |
.container-fluid |
100 % | 100 % | 100 % | 100 % | 100 % |
Viskas viename
Mūsų numatytoji .container
klasė yra jautrus, fiksuoto pločio konteineris, o tai reiškia, kad jis max-width
keičiasi kiekviename pertraukos taške.
<div class="container">
<!-- Content here -->
</div>
Skystis
Naudokite .container-fluid
viso pločio konteineriui, apimančiam visą peržiūros srities plotį.
<div class="container-fluid">
...
</div>
Atsakingas
Interaktyvūs konteineriai yra nauji Bootstrap v4.4. Jie leidžia nurodyti 100% pločio klasę, kol pasiekiamas nurodytas lūžio taškas, po kurio mes taikome max-width
s kiekvienam aukštesniam taškui. Pavyzdžiui, .container-sm
yra 100 % pločio, kad pradėtumėte, kol sm
bus pasiektas lūžio taškas, kur jis padidės naudojant md
, lg
, ir xl
.
<div class="container-sm">100% wide until small breakpoint</div>
<div class="container-md">100% wide until medium breakpoint</div>
<div class="container-lg">100% wide until large breakpoint</div>
<div class="container-xl">100% wide until extra large breakpoint</div>
Reaguojantys lūžio taškai
Kadangi „Bootstrap“ pirmiausia sukurta mobiliesiems, naudojame keletą medijos užklausų , kad sukurtume protingus išdėstymo ir sąsajų lūžio taškus. Šios pertraukos taškai dažniausiai yra pagrįsti minimaliu peržiūros srities pločiu ir leidžia mums padidinti elementų mastelį, kai keičiasi peržiūros sritis.
„Bootstrap“ pirmiausia naudoja šiuos medijos užklausų diapazonus arba lūžio taškus mūsų šaltinio „Sass“ failuose išdėstymui, tinklelio sistemai ir komponentams.
// Extra small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
Kadangi šaltinio CSS rašome Sass, visos mūsų medijos užklausos pasiekiamos per Sass rinkinius:
// No media query necessary for xs breakpoint as it's effectively `@media (min-width: 0) { ... }`
@include media-breakpoint-up(sm) { ... }
@include media-breakpoint-up(md) { ... }
@include media-breakpoint-up(lg) { ... }
@include media-breakpoint-up(xl) { ... }
// Example: Hide starting at `min-width: 0`, and then show at the `sm` breakpoint
.custom-class {
display: none;
}
@include media-breakpoint-up(sm) {
.custom-class {
display: block;
}
}
Retkarčiais naudojame medijos užklausas, kurios nukreipiamos kita kryptimi (nurodytas ekrano dydis arba mažesnis ):
// Extra small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) { ... }
// Small devices (landscape phones, less than 768px)
@media (max-width: 767.98px) { ... }
// Medium devices (tablets, less than 992px)
@media (max-width: 991.98px) { ... }
// Large devices (desktops, less than 1200px)
@media (max-width: 1199.98px) { ... }
// Extra large devices (large desktops)
// No media query since the extra-large breakpoint has no upper bound on its width
min-
irmax-
peržiūros sritis (kurie gali atsirasti tam tikromis sąlygomis, pavyzdžiui, didelės dpi įrenginiuose), naudodami tikslesnes vertes šiems palyginimams. .
Vėlgi, šios medijos užklausos taip pat pasiekiamos per Sass mixins:
@include media-breakpoint-down(xs) { ... }
@include media-breakpoint-down(sm) { ... }
@include media-breakpoint-down(md) { ... }
@include media-breakpoint-down(lg) { ... }
// No media query necessary for xl breakpoint as it has no upper bound on its width
// Example: Style from medium breakpoint and down
@include media-breakpoint-down(md) {
.custom-class {
display: block;
}
}
Taip pat yra medijos užklausų ir mišinių, skirtų taikyti pagal vieną ekrano dydžių segmentą, naudojant mažiausią ir didžiausią pertraukos taškų plotį.
// Extra small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) { ... }
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) and (max-width: 767.98px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) and (max-width: 991.98px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) and (max-width: 1199.98px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
Šios medijos užklausos taip pat pasiekiamos per Sass mixins:
@include media-breakpoint-only(xs) { ... }
@include media-breakpoint-only(sm) { ... }
@include media-breakpoint-only(md) { ... }
@include media-breakpoint-only(lg) { ... }
@include media-breakpoint-only(xl) { ... }
Panašiai medijos užklausos gali apimti kelis pertraukos taškų plotius:
// Example
// Apply styles starting from medium devices and up to extra large devices
@media (min-width: 768px) and (max-width: 1199.98px) { ... }
„Sass“ derinys, skirtas taikyti tam pačiam ekrano dydžio diapazonui, būtų:
@include media-breakpoint-between(md, xl) { ... }
Z indeksas
Keli „Bootstrap“ komponentai naudoja z-index
CSS ypatybę, kuri padeda valdyti išdėstymą, suteikiant trečiąją ašį turiniui tvarkyti. „Bootstrap“ naudojame numatytąją „z-index“ skalę, kuri buvo sukurta taip, kad būtų tinkamai išdėstyta naršymo, patarimų ir iššokančių langų, modalų ir kt.
Šios didesnės reikšmės prasideda nuo savavališko skaičiaus, didelio ir pakankamai specifinio, kad būtų išvengta konfliktų. Mums reikia standartinio jų rinkinio mūsų sluoksniuotuose komponentuose – įrankių patarimuose, iššokančiuose langeliuose, naršymo juostose, išskleidžiamuosiuose sąrašuose, modaluose – kad galėtume elgtis pakankamai nuosekliai. Nėra jokios priežasties, kodėl negalėjome naudoti 100
+ arba 500
+.
Mes neskatiname pritaikyti šių individualių vertybių; Jei pakeisite vieną, greičiausiai turėsite pakeisti juos visus.
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-modal-backdrop: 1040 !default;
$zindex-modal: 1050 !default;
$zindex-popover: 1060 !default;
$zindex-tooltip: 1070 !default;
Norėdami tvarkyti sutampančius komponentų kraštus (pvz., mygtukus ir įvesties įvesties grupėse), naudojame mažas vieno skaitmens z-index
vertes 1
, 2
, o 3
numatytosioms, užvedimo ir aktyvioms būsenoms. Užvedus pelės žymeklį / fokusuojant / aktyvų, konkretų elementą iškeliame į priekį su didesne z-index
verte, kad būtų rodoma jo riba virš dviejų elementų.