Сүлжээний систем
Арван хоёр баганын систем, өгөгдмөл хариу үйлдэл үзүүлэх таван шатлал, Sass хувьсагч болон холимог болон олон арван урьдчилан тодорхойлсон ангиудын ачаар бүх хэлбэр, хэмжээтэй бүдүүвчийг бүтээхийн тулд манай хүчирхэг гар утасны анхны flexbox сүлжээг ашиглана уу.
Bootstrap-ийн сүлжээ систем нь агуулгыг байрлуулах, зэрэгцүүлэхийн тулд хэд хэдэн контейнер, мөр, баганыг ашигладаг. Энэ нь flexbox -оор бүтээгдсэн бөгөөд бүрэн хариу үйлдэл үзүүлдэг. Доорх нь жишээ бөгөөд сүлжээ хэрхэн нийлдэгийг нарийвчлан авч үзэх болно.
Flexbox-т шинээр орсон уу эсвэл мэдэхгүй байна уу? Энэхүү CSS Tricks flexbox гарын авлагаас суурь, нэр томьёо, заавар, кодын хэсгүүдийг уншина уу.
Дээрх жишээ нь бидний урьдчилан тодорхойлсон сүлжээний ангиудыг ашиглан жижиг, дунд, том, хэт том төхөөрөмжүүд дээр тэнцүү өргөнтэй гурван багана үүсгэдэг. Эдгээр баганууд нь хуудасны голд эцэг эхтэй .container
байна.
Үүнийг задалж үзвэл энэ нь хэрхэн ажилладаг вэ:
- Контейнер нь таны сайтын агуулгыг голчлох, хэвтээ байдлаар байрлуулах боломжийг олгодог.
.container
Хариуцлагатай пикселийн өргөн эсвэл бүх.container-fluid
харахwidth: 100%
хэсэг болон төхөөрөмжийн хэмжээст ашиглах . - Мөр нь баганын боодол юм. Багана бүр нь
padding
тэдгээрийн хоорондох зайг хянах зориулалттай хэвтээ (суваг гэж нэрлэдэг) байдаг. Дарааpadding
нь сөрөг зайтай мөрүүдэд үүнийг эсэргүүцнэ. Ингэснээр таны баганууд дахь бүх агуулгыг зүүн талд нь харагдах байдлаар байрлуулна. - Сүлжээний байршилд агуулгыг баганын дотор байрлуулах ёстой бөгөөд зөвхөн баганууд нь мөрийн шууд хүүхэд байж болно.
- Flexbox-ийн ачаар тодорхойгүй сүлжээ баганууд
width
автоматаар ижил өргөнтэй багана хэлбэрээр байрлуулна. Жишээ нь,.col-sm
will-ийн дөрвөн тохиолдол нь жижиг завсарлага ба түүнээс дээш цэгээс автоматаар 25% өргөн байна. Илүү олон жишээг автоматаар байрлуулах багана хэсгээс үзнэ үү . - Баганын ангиуд нь мөр бүрт боломжит 12 баганаас ашиглахыг хүсэж буй баганын тоог заана. Тиймээс, хэрэв та ижил өргөнтэй гурван багана авахыг хүсвэл -г ашиглаж болно
.col-4
. - Багана
width
s-ийг хувиар тогтоосон тул үндсэн элементтэйгээ харьцуулахад үргэлж шингэн, хэмжээтэй байдаг. padding
Баганууд нь бие даасан баганын хооронд суваг үүсгэхийн тулд хэвтээ байрлалтай байдаг, гэхдээ таmargin
мөр болонpadding
багана.no-gutters
дээрх мөрүүдийг устгаж болно.row
.- Сүлжээг хариу үйлдэл үзүүлэхийн тулд бүх таслах цэгүүд (илүү жижиг), жижиг, дунд, том, хэт том гэсэн таван сүлжээ таслах цэг байдаг .
- Сүлжээний таслах цэгүүд нь хамгийн бага өргөнтэй медиа асуулгад суурилдаг бөгөөд энэ нь тухайн нэг таслах цэг болон түүнээс дээш байгаа бүх зүйлд хамаарна (жишээ нь,
.col-sm-4
жижиг, дунд, том, хэт том төхөөрөмжүүдэд хамаарах боловч эхнийxs
таслах цэг биш). - Та илүү семантик тэмдэглэгээ хийхийн тулд урьдчилан тодорхойлсон сүлжээний ангиудыг ( гэх мэт
.col-4
) эсвэл Sass хольцыг ашиглаж болно.
Зарим HTML элементүүдийг уян хатан контейнер болгон ашиглах боломжгүй гэх мэт flexbox - ийн хязгаарлалт, алдаануудыг мэдэж аваарай .
Bootstrap нь ихэнх хэмжээг тодорхойлохдоо em
s эсвэл s-г ашигладаг бол s нь сүлжээний таслах цэг болон савны өргөнд ашиглагддаг. Учир нь харах талбарын өргөн нь пикселээр илэрхийлэгдэх бөгөөд үсгийн хэмжээнээс хамаарч өөрчлөгддөггүй .rem
px
Bootstrap сүлжээний систем нь олон төхөөрөмж дээр хэрхэн ажилладагийг хялбар хүснэгтээр хараарай.
Хэт жижиг <576px |
Жижиг ≥576px |
Дунд зэргийн ≥768px |
Том ≥992px |
Хэт том ≥1200px |
|
---|---|---|---|---|---|
Хамгийн их савны өргөн | Байхгүй (автомат) | 540px | 720px | 960px | 1140px |
Ангийн угтвар | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# багана | 12 | ||||
Сувагны өргөн | 30px (баганын тал бүр дээр 15px) | ||||
Суурин | Тиймээ | ||||
Баганын захиалга | Тиймээ |
гэх мэт тодорхой дугаарлагдсан ангигүйгээр баганын хэмжээг хялбар болгохын тулд таслах цэгийн тусгай баганын ангиудыг ашиглаарай .col-sm-6
.
Жишээ нь, эндээс эхлэн төхөөрөмж болон харах хэсэг болгонд хамаарах хоёр сүлжээний схем xs
байна xl
. Шаардлагатай таслах цэг бүрт хэдэн ч нэгж бага анги нэмэх ба багана бүр ижил өргөнтэй байх болно.
Тэнцүү өргөнтэй баганыг олон мөрөнд хувааж болох боловч Safari flexbox алдаа гарсан бөгөөд энэ нь тодорхой flex-basis
эсвэл border
. Хөтчийн хуучин хувилбаруудыг шийдвэрлэх арга замууд байдаг ч хэрэв та шинэчлэгдсэн бол тэдгээр нь шаардлагагүй.
Flexbox сүлжээ багануудыг автоматаар байрлуулснаар та нэг баганын өргөнийг тохируулж, ах дүү багануудын хэмжээг автоматаар өөрчлөх боломжтой гэсэн үг юм. Та урьдчилан тодорхойлсон сүлжээний ангиуд (доор үзүүлсэн шиг), сүлжээний холимог эсвэл шугамын өргөнийг ашиглаж болно. Төв баганын өргөнөөс үл хамааран бусад баганын хэмжээг өөрчлөх болно гэдгийг анхаарна уу.
Ангиудыг ашиглан col-{breakpoint}-auto
багануудыг агуулгынх нь байгалийн өргөнд тулгуурлан хэмжээлээрэй.
.w-100
Та баганыг таслахыг хүссэн газраа шинэ мөр болгон оруулж олон мөрийг хамарсан тэнцүү өргөнтэй багануудыг үүсгээрэй . .w-100
Зарим мэдрэгчтэй дэлгэцийн хэрэгслүүдтэй хольж завсарлагаа хариу үйлдэл үзүүлнэ үү .
Bootstrap-ийн сүлжээнд нарийн төвөгтэй responsive зохион байгуулалтыг бий болгох урьдчилан тодорхойлсон таван түвшний анги багтдаг. Хэт жижиг, жижиг, дунд, том, эсвэл хэт том төхөөрөмжүүд дээр багануудынхаа хэмжээг өөрт тохирсон байдлаар тохируулаарай.
Хамгийн жижиг төхөөрөмжөөс хамгийн том хүртэл ижил сүлжээний хувьд .col
болон .col-*
ангиллыг ашиглана уу. Онцгой хэмжээтэй багана хэрэгтэй үед дугаарласан анги зааж өгөх; Хэрэв тийм биш бол, -г бүү зөвшөөр .col
.
Нэг багц .col-sm-*
ангиудыг ашигласнаар та овоолсон байдлаар эхэлж, жижиг таслах цэг ( sm
) дээр хэвтээ болдог үндсэн сүлжээний системийг үүсгэж болно.
Таны баганууд зүгээр л зарим сүлжээний давхаргад овоолсон байхыг хүсэхгүй байна уу? Шаардлагатай бол шат бүрт өөр өөр ангиудын хослолыг ашиглана уу. Энэ бүхэн хэрхэн ажилладаг талаар илүү сайн санаа авахын тулд доорх жишээг үзнэ үү.
Багануудыг босоо болон хэвтээ байдлаар зэрэгцүүлэхийн тулд flexbox alignment хэрэгслийг ашиглана уу.
Урьдчилан тодорхойлсон сүлжээ ангиудын баганын хоорондох сувгийг ашиглан арилгаж болно .no-gutters
. Энэ нь бүх шууд хүүхдийн баганаас сөрөг margin
s .row
, хэвтээ баганаас хасагдана.padding
Эдгээр хэв маягийг бий болгох эх код энд байна. Баганыг дарах нь зөвхөн эхний хүүхэд баганад хамаарах бөгөөд атрибут сонгогчоор чиглэгддэг гэдгийг анхаарна уу . Энэ нь илүү тодорхой сонгогчийг үүсгэдэг ч баганын дүүргэлтийг зайны хэрэгслүүдээр өөрчлөх боломжтой хэвээр байна .
Иржээс ирмэг хүртэл загвар хэрэгтэй юу? Эцэг эхийг орхих .container
эсвэл .container-fluid
.
Практикт энэ нь хэрхэн харагдахыг эндээс харна уу. Та үүнийг бусад бүх урьдчилан тодорхойлсон сүлжээний ангиудад (баганын өргөн, хариу үйлдэл үзүүлэх түвшин, дахин эрэмбэлэх гэх мэт) ашиглах боломжтой гэдгийг анхаарна уу.
Хэрэв нэг эгнээнд 12-оос дээш багана байрлуулсан бол нэмэлт баганын бүлэг бүр нэг нэгж болж шинэ мөрөнд орооно.
9 + 4 = 13 > 12 тул 4 баганын өргөнтэй энэ div нь шинэ мөрөнд нэг залгаа нэгж хэлбэрээр ороогдоно.
Дараагийн баганууд шинэ мөрийн дагуу үргэлжилнэ.
Flexbox дахь багануудыг шинэ мөрөнд эвдэхийн тулд жижиг хакердах шаардлагатай: шинэ мөрөнд баганаа боохыг width: 100%
хүссэн газартаа элемент нэмнэ үү. Энэ нь ихэвчлэн олон секундын тусламжтайгаар хийгддэг .row
боловч хэрэгжүүлэх арга бүр үүнийг тооцоолж чаддаггүй.
Та энэ завсарлагыг манай мэдрэгчтэй дэлгэцийн хэрэгслүүдээр тодорхой таслах цэгүүдэд хэрэглэж болно .
Агуулгынхаа харааны дарааллыг.order-
хянахын тулд ангиудыг ашиглаарай . Эдгээр ангиуд нь хариу үйлдэл үзүүлэх чадвартай тул та таслах цэгээр (жишээ нь, ) тохируулж болно. Бүх таван сүлжээний түвшний дэмжлэгийг багтаасан болно .order
.order-1.order-md-2
1
12
Мөн ( )-г тус тус хэрэглэснээр элементийн хэлбэрийг өөрчилдөг responsive .order-first
болон .order-last
ангиуд байдаг . Шаардлагатай бол эдгээр ангиудыг дугаарлагдсан ангиудтай хольж болно .order
order: -1
order: 13
order: $columns + 1
.order-*
Та сүлжээний баганыг хоёр аргаар нөхөж болно: бидний хариу үйлдэл .offset-
үзүүлэх сүлжээний ангиуд болон манай margin utilities . Сүлжээний ангиудын хэмжээ нь баганатай таарч байхын зэрэгцээ офсетийн өргөн нь хувьсах боломжтой хурдан зохион байгуулалтад захын зай илүү ашигтай байдаг.
Ангиудыг ашиглан багануудыг баруун тийш зөөнө үү .offset-md-*
. Эдгээр ангиуд нь баганын зүүн захыг *
баганаар нэмэгдүүлнэ. Жишээлбэл, дөрвөн багана дээр .offset-md-4
шилжинэ ..col-md-4
Хариуцах цэгүүд дээр баганыг цэвэрлэхээс гадна офсетийг дахин тохируулах шаардлагатай байж магадгүй. Сүлжээний жишээн дээрх үйлдлийг харна уу .
V4-ийн flexbox руу шилжсэнээр та .mr-auto
ах дүү багануудыг бие биенээсээ холдуулах гэх мэт маржин хэрэгслүүдийг ашиглаж болно.
Өөрийн агуулгыг өгөгдмөл сүлжээнд оруулахын тулд одоо байгаа баганад шинэ .row
ба багц багана нэмнэ үү. Суурилуулсан мөрүүд нь 12 ба түүнээс цөөн тоог нэмэх баганын багцыг агуулсан байх ёстой (боломжтой бүх 12 баганыг ашиглах шаардлагагүй)..col-sm-*
.col-sm-*
Bootstrap-ийн эх сурвалж Sass файлуудыг ашиглах үед та Sass хувьсагч болон холимогийг ашиглан захиалгат, семантик, хариу үйлдэл үзүүлэх хуудасны байршлыг үүсгэх боломжтой. Манай урьдчилан тодорхойлсон сүлжээний ангиуд нь эдгээр ижил хувьсагч болон холимгуудыг ашиглан хурдан хариу үйлдэл үзүүлэхэд зориулагдсан ашиглахад бэлэн ангиудыг бүрэн хангадаг.
Хувьсагч ба газрын зураг нь баганын тоо, сувгийн өргөн, хөвөгч баганыг эхлүүлэх медиа асуулгын цэгийг тодорхойлдог. Бид эдгээрийг дээр дурдсан урьдчилан тодорхойлсон сүлжээний ангиудыг үүсгэхийн зэрэгцээ доор жагсаасан захиалгат хольцуудад ашигладаг.
Холимогуудыг сүлжээний хувьсагчтай хамт тус тусад нь сүлжээ баганын семантик CSS үүсгэхэд ашигладаг.
Та хувьсагчдыг өөрийн тохируулсан утгуудаар өөрчилж болно, эсвэл зүгээр л үндсэн утгуудтай нь холигчдыг ашиглаж болно. Үндсэн тохиргоог ашиглан хоёр баганын хоорондох зайг бий болгох жишээ энд байна.
Бидний суулгасан сүлжээний Sass хувьсагч болон газрын зургийг ашиглан урьдчилан тодорхойлсон сүлжээний ангиудыг бүрэн өөрчлөх боломжтой. Давхаргын тоо, медиа асуулгын хэмжээ, савны өргөнийг өөрчилсний дараа дахин эмхэтгэ.
Сүлжээний баганын тоог Sass хувьсагчаар өөрчилж болно. $grid-columns
нь багана тус бүрийн өргөнийг (хувиар) үүсгэхийн зэрэгцээ $grid-gutter-width
баганын сувгийн өргөнийг тохируулахад ашиглагддаг.
Багануудыг өөрсдөөсөө цааш хөдөлж, та сүлжээний түвшний тоог тохируулах боломжтой. Хэрэв та ердөө дөрвөн шатлалтай байхыг хүсвэл " $grid-breakpoints
and "-г дараах байдлаар шинэчлэх болно $container-max-widths
:
Sass хувьсагч эсвэл газрын зурагт өөрчлөлт оруулахдаа та өөрчлөлтөө хадгалж, дахин эмхэтгэх шаардлагатай болно. Ингэснээр баганын өргөн, офсет болон дарааллаар урьдчилан тодорхойлсон сүлжээ ангиудын цоо шинэ багц гарч ирнэ. Хариуцлагатай харагдах байдлын хэрэгслүүд мөн өөрчлөн тохируулсан цэгүүдийг ашиглахын тулд шинэчлэгдэх болно. px
Сүлжээний утгыг ( rem
, em
, эсвэл биш) тохируулахаа мартуузай %
.