CSS Grid
ស្វែងយល់ពីរបៀបបើក ប្រើប្រាស់ និងប្ដូរតាមបំណងនូវប្រព័ន្ធប្លង់ជំនួសរបស់យើង ដែលបានបង្កើតឡើងនៅលើក្រឡាចត្រង្គ CSS ជាមួយនឹងឧទាហរណ៍ និងព័ត៌មានសង្ខេបនៃកូដ។
ប្រព័ន្ធក្រឡាចត្រង្គលំនាំដើមរបស់ Bootstrap តំណាងឱ្យចំណុចកំពូលនៃបច្ចេកទេសប្លង់ CSS ជាងមួយទសវត្សរ៍ ដែលបានសាកល្បង និងសាកល្បងដោយមនុស្សរាប់លាននាក់។ ប៉ុន្តែ វាក៏ត្រូវបានបង្កើតដោយគ្មានលក្ខណៈពិសេស និងបច្ចេកទេស CSS ទំនើបជាច្រើនដែលយើងកំពុងឃើញនៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិតដូចជា CSS Grid ថ្មី។
របៀបដែលវាដំណើរការ
ជាមួយនឹង Bootstrap 5 យើងបានបន្ថែមជម្រើសដើម្បីបើកប្រព័ន្ធក្រឡាចត្រង្គដាច់ដោយឡែកដែលត្រូវបានបង្កើតឡើងនៅលើ CSS Grid ប៉ុន្តែជាមួយនឹង Bootstrap twist ។ អ្នកនៅតែទទួលបានថ្នាក់ អ្នកអាចអនុវត្តដោយចេតនាដើម្បីបង្កើតប្លង់ឆ្លើយតប ប៉ុន្តែជាមួយនឹងវិធីសាស្រ្តផ្សេងពីក្រោមក្រណាត់។
-
CSS Grid ត្រូវបានជ្រើសរើសចូល។ បិទប្រព័ន្ធក្រឡាចត្រង្គលំនាំដើមដោយកំណត់
$enable-grid-classes: false
និងបើកដំណើរការក្រឡាចត្រង្គ CSS ដោយការកំណត់$enable-cssgrid: true
។ បន្ទាប់មក ចងក្រង Sass របស់អ្នកឡើងវិញ។ -
ជំនួសឧទាហរណ៍
.row
ជាមួយ.grid
. ថ្នាក់.grid
កំណត់display: grid
និងបង្កើតមួយgrid-template
ដែលអ្នកបង្កើតជាមួយ HTML របស់អ្នក។ -
ជំនួស
.col-*
ថ្នាក់ជាមួយ.g-col-*
ថ្នាក់។ នេះគឺដោយសារតែជួរឈរ CSS Grid របស់យើងប្រើgrid-column
លក្ខណៈសម្បត្តិជំនួសឱ្យwidth
. -
ជួរឈរ និងទំហំទឹកត្រូវបានកំណត់តាមរយៈអថេរ CSS ។ កំណត់វានៅលើមេ
.grid
និងប្ដូរតាមបំណងតាមដែលអ្នកចង់បាន បញ្ចូលក្នុងបន្ទាត់ ឬក្នុងសន្លឹករចនាប័ទ្មជាមួយ--bs-columns
និង--bs-gap
.
នៅពេលអនាគត Bootstrap ទំនងជានឹងផ្លាស់ប្តូរទៅជាដំណោះស្រាយកូនកាត់ ដោយសារ gap
អចលនទ្រព្យនេះទទួលបានការគាំទ្រស្ទើរតែពេញលេញសម្រាប់កម្មវិធីរុករកតាមអ៊ីនធឺណិតសម្រាប់ flexbox ។
ភាពខុសគ្នាសំខាន់ៗ
បើប្រៀបធៀបទៅនឹងប្រព័ន្ធក្រឡាចត្រង្គលំនាំដើម៖
-
ឧបករណ៍ប្រើប្រាស់ Flex មិនប៉ះពាល់ដល់ជួរឈរ CSS Grid តាមរបៀបដូចគ្នានោះទេ។
-
ចន្លោះជំនួសទឹកស្អុយ។ ទ្រព្យសម្បត្តិ
gap
ជំនួសផ្ដេកpadding
ពីប្រព័ន្ធក្រឡាចត្រង្គលំនាំដើមរបស់យើង ហើយមានមុខងារច្រើនទៀតដូចជាmargin
. -
ដូច្នេះ មិនដូច
.row
s,.grid
s មិនមានរឹមអវិជ្ជមានទេ ហើយឧបករណ៍ប្រើប្រាស់រឹមមិនអាចប្រើដើម្បីផ្លាស់ប្តូរ gutters ក្រឡាចត្រង្គបានទេ។ គម្លាតក្រឡាចត្រង្គត្រូវបានអនុវត្តតាមលំនាំដើម និងផ្ដេក។ សូមមើល ផ្នែកប្ដូរតាមបំណង សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។ -
រចនាប័ទ្មខាងក្នុង និងផ្ទាល់ខ្លួនគួរតែត្រូវបានមើលថាជាការជំនួសសម្រាប់ថ្នាក់កែប្រែ (ឧទាហរណ៍
style="--bs-columns: 3;"
ទល់នឹងclass="row-cols-3"
)។ -
Nesting ដំណើរការប្រហាក់ប្រហែលគ្នា ប៉ុន្តែអាចតម្រូវឱ្យអ្នកកំណត់ចំនួនជួរឈររបស់អ្នកឡើងវិញនៅលើឧទាហរណ៍នីមួយៗនៃ nested
.grid
។ សូមមើល ផ្នែកសំបុក សម្រាប់ព័ត៌មានលម្អិត។
ឧទាហរណ៍
ជួរឈរបី
ជួរឈរទទឹងស្មើគ្នាចំនួនបីនៅគ្រប់ច្រកចូលមើល និងឧបករណ៍ទាំងអស់អាចត្រូវបានបង្កើតដោយប្រើ .g-col-4
ថ្នាក់។ បន្ថែម ថ្នាក់ឆ្លើយតប ដើម្បីផ្លាស់ប្តូរប្លង់តាមទំហំទិដ្ឋភាព។
<div class="grid">
<div class="g-col-4">.g-col-4</div>
<div class="g-col-4">.g-col-4</div>
<div class="g-col-4">.g-col-4</div>
</div>
ឆ្លើយតប
ប្រើថ្នាក់ឆ្លើយតបដើម្បីកែតម្រូវប្លង់របស់អ្នកនៅគ្រប់ច្រកចូលមើល។ នៅទីនេះយើងចាប់ផ្តើមជាមួយនឹងជួរឈរពីរនៅលើ viewports តូចចង្អៀតបំផុត ហើយបន្ទាប់មកកើនឡើងដល់បីជួរឈរនៅលើ viewports មធ្យម និងខ្ពស់ជាងនេះ។
<div class="grid">
<div class="g-col-6 g-col-md-4">.g-col-6 .g-col-md-4</div>
<div class="g-col-6 g-col-md-4">.g-col-6 .g-col-md-4</div>
<div class="g-col-6 g-col-md-4">.g-col-6 .g-col-md-4</div>
</div>
ប្រៀបធៀបវាទៅនឹងប្លង់ជួរឈរទាំងពីរនេះនៅគ្រប់ច្រកចូលមើល។
<div class="grid">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
រុំ
ធាតុក្រឡាចត្រង្គរុំដោយស្វ័យប្រវត្តិទៅបន្ទាត់បន្ទាប់ នៅពេលដែលមិនមានបន្ទប់ទៀតទេ។ ចំណាំថាវា gap
អនុវត្តចំពោះគម្លាតផ្ដេក និងបញ្ឈររវាងធាតុក្រឡាចត្រង្គ។
<div class="grid">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
ចាប់ផ្តើម
ថ្នាក់ចាប់ផ្តើមមានគោលបំណងជំនួសថ្នាក់អុហ្វសិតរបស់ក្រឡាចត្រង្គលំនាំដើមរបស់យើង ប៉ុន្តែវាមិនដូចគ្នាទាំងស្រុងនោះទេ។ CSS Grid បង្កើតគំរូក្រឡាចត្រង្គតាមរយៈរចនាប័ទ្មដែលប្រាប់កម្មវិធីរុករកឱ្យ "ចាប់ផ្តើមនៅជួរឈរនេះ" និង "បញ្ចប់នៅជួរឈរនេះ" ។ ទ្រព្យសម្បត្តិទាំងនោះ grid-column-start
និង grid-column-end
។ ថ្នាក់ចាប់ផ្តើមគឺខ្លីសម្រាប់អតីត។ ផ្គូផ្គងពួកវាជាមួយថ្នាក់ជួរឈរតាមទំហំ និងតម្រឹមជួរឈររបស់អ្នកតាមតែអ្នកត្រូវការ។ ថ្នាក់ចាប់ផ្តើមចាប់ផ្តើម 1
ដូច 0
តម្លៃមិនត្រឹមត្រូវសម្រាប់លក្ខណៈសម្បត្តិទាំងនេះ។
<div class="grid">
<div class="g-col-3 g-start-2">.g-col-3 .g-start-2</div>
<div class="g-col-4 g-start-6">.g-col-4 .g-start-6</div>
</div>
ជួរឈរស្វ័យប្រវត្តិ
នៅពេលដែលមិនមានថ្នាក់នៅលើធាតុក្រឡាចត្រង្គ (កូនភ្លាមៗនៃ a .grid
) ធាតុក្រឡាចត្រង្គនីមួយៗនឹងមានទំហំដោយស្វ័យប្រវត្តិទៅជាជួរឈរមួយ។
<div class="grid">
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
</div>
ឥរិយាបថនេះអាចត្រូវបានលាយបញ្ចូលគ្នាជាមួយនឹងថ្នាក់ជួរឈរក្រឡាចត្រង្គ។
<div class="grid">
<div class="g-col-6">.g-col-6</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
</div>
សំបុក
ស្រដៀងគ្នាទៅនឹងប្រព័ន្ធក្រឡាចត្រង្គលំនាំដើមរបស់យើង ក្រឡាចត្រង្គ CSS របស់យើងអនុញ្ញាតឱ្យមានភាពងាយស្រួលក្នុងការដាក់ .grid
s ។ ទោះយ៉ាងណាក៏ដោយ មិនដូចលំនាំដើមទេ ក្រឡាចត្រង្គនេះទទួលមរតកការផ្លាស់ប្តូរនៅក្នុងជួរ ជួរឈរ និងចន្លោះ។ ពិចារណាឧទាហរណ៍ខាងក្រោម៖
- យើងបដិសេធចំនួនជួរឈរលំនាំដើមជាមួយនឹងអថេរ CSS មូលដ្ឋាន៖
--bs-columns: 3
. - នៅក្នុងជួរឈរស្វ័យប្រវត្តិដំបូង ចំនួនជួរឈរត្រូវបានទទួលមរតក ហើយជួរឈរនីមួយៗគឺមួយភាគបីនៃទទឹងដែលមាន។
- នៅក្នុងជួរឈរស្វ័យប្រវត្តិទីពីរ យើងបានកំណត់ការរាប់ជួរឈរឡើងវិញនៅលើខ្ទង់
.grid
ទៅ 12 (លំនាំដើមរបស់យើង)។ - ជួរឈរស្វ័យប្រវត្តិទីបីមិនមានមាតិកាដែលជាប់គាំងទេ។
នៅក្នុងការអនុវត្ត នេះអនុញ្ញាតឱ្យមានប្លង់ស្មុគ្រស្មាញ និងផ្ទាល់ខ្លួនបន្ថែមទៀត បើប្រៀបធៀបទៅនឹងប្រព័ន្ធក្រឡាចត្រង្គលំនាំដើមរបស់យើង។
<div class="grid" style="--bs-columns: 3;">
<div>
First auto-column
<div class="grid">
<div>Auto-column</div>
<div>Auto-column</div>
</div>
</div>
<div>
Second auto-column
<div class="grid" style="--bs-columns: 12;">
<div class="g-col-6">6 of 12</div>
<div class="g-col-4">4 of 12</div>
<div class="g-col-2">2 of 12</div>
</div>
</div>
<div>Third auto-column</div>
</div>
ការប្ដូរតាមបំណង
ប្ដូរតាមបំណងចំនួនជួរឈរ ចំនួនជួរដេក និងទទឹងនៃចន្លោះជាមួយនឹងអថេរ CSS មូលដ្ឋាន។
អថេរ | តម្លៃថយក្រោយ | ការពិពណ៌នា |
---|---|---|
--bs-rows |
1 |
ចំនួនជួរដេកក្នុងគំរូក្រឡាចត្រង្គរបស់អ្នក។ |
--bs-columns |
12 |
ចំនួនជួរឈរនៅក្នុងគំរូក្រឡាចត្រង្គរបស់អ្នក។ |
--bs-gap |
1.5rem |
ទំហំនៃគម្លាតរវាងជួរឈរ (បញ្ឈរនិងផ្ដេក) |
អថេរ CSS ទាំងនេះមិនមានតម្លៃលំនាំដើមទេ។ ជំនួសមកវិញ ពួកវាអនុវត្តតម្លៃជំនួសដែលត្រូវបានប្រើ រហូតដល់ ឧទាហរណ៍ក្នុងតំបន់ត្រូវបានផ្តល់ឱ្យ។ ឧទាហរណ៍ យើងប្រើ var(--bs-rows, 1)
សម្រាប់ជួរក្រឡាក្រឡាចត្រង្គ CSS របស់យើង ដែលមិនអើពើ --bs-rows
ព្រោះវាមិនទាន់ត្រូវបានកំណត់នៅកន្លែងណានៅឡើយ។ នៅពេលដែលវាគឺ .grid
វត្ថុនឹងប្រើតម្លៃនោះជំនួសឱ្យតម្លៃជំនួសនៃ 1
.
មិនមានថ្នាក់ក្រឡាចត្រង្គទេ។
ធាតុកុមារភ្លាមៗ .grid
គឺជាធាតុក្រឡាចត្រង្គ ដូច្នេះពួកវានឹងមានទំហំដោយមិនបន្ថែម .g-col
ថ្នាក់ច្បាស់លាស់។
<div class="grid" style="--bs-columns: 3;">
<div>Auto-column</div>
<div>Auto-column</div>
<div>Auto-column</div>
</div>
ជួរឈរនិងចន្លោះ
លៃតម្រូវចំនួនជួរឈរនិងគម្លាត។
<div class="grid" style="--bs-columns: 4; --bs-gap: 5rem;">
<div class="g-col-2">.g-col-2</div>
<div class="g-col-2">.g-col-2</div>
</div>
<div class="grid" style="--bs-columns: 10; --bs-gap: 1rem;">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-4">.g-col-4</div>
</div>
ការបន្ថែមជួរ
បន្ថែមជួរដេកបន្ថែមទៀត និងផ្លាស់ប្តូរការដាក់ជួរឈរ៖
<div class="grid" style="--bs-rows: 3; --bs-columns: 3;">
<div>Auto-column</div>
<div class="g-start-2" style="grid-row: 2">Auto-column</div>
<div class="g-start-3" style="grid-row: 3">Auto-column</div>
</div>
គម្លាត
ផ្លាស់ប្តូរចន្លោះបញ្ឈរដោយកែប្រែ row-gap
. ចំណាំថាយើងប្រើ gap
នៅលើ .grid
s ប៉ុន្តែ row-gap
និង column-gap
អាចត្រូវបានកែប្រែតាមតម្រូវការ។
<div class="grid" style="row-gap: 0;">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
ដោយសារតែនោះ អ្នកអាចមាន s បញ្ឈរ និងផ្ដេកផ្សេងគ្នា gap
ដែលអាចយកតម្លៃតែមួយ (ភាគីទាំងអស់) ឬតម្លៃគូ (បញ្ឈរ និងផ្ដេក)។ នេះអាចត្រូវបានអនុវត្តជាមួយនឹងរចនាប័ទ្មក្នុងបន្ទាត់សម្រាប់ gap
ឬជាមួយ --bs-gap
អថេរ CSS របស់យើង។
<div class="grid" style="--bs-gap: .25rem 1rem;">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
សាស
ដែនកំណត់មួយនៃ CSS Grid គឺថា ថ្នាក់លំនាំដើមរបស់យើងនៅតែត្រូវបានបង្កើតដោយអថេរ Sass ពីរ $grid-columns
និង $grid-gutter-width
. វាកំណត់ទុកជាមុននូវចំនួនថ្នាក់ដែលបានបង្កើតនៅក្នុង CSS ដែលបានចងក្រងរបស់យើង។ អ្នកមានជម្រើសពីរនៅទីនេះ៖
- កែប្រែអថេរ Sass លំនាំដើមទាំងនោះ ហើយចងក្រង CSS របស់អ្នកឡើងវិញ។
- ប្រើរចនាប័ទ្មក្នុងជួរឬផ្ទាល់ខ្លួនដើម្បីបង្កើនថ្នាក់ដែលបានផ្តល់។
ឧទាហរណ៍ អ្នកអាចបង្កើនចំនួនជួរឈរ និងផ្លាស់ប្តូរទំហំគម្លាត ហើយបន្ទាប់មកកំណត់ទំហំ "ជួរឈរ" របស់អ្នកជាមួយនឹងការលាយបញ្ចូលគ្នានៃរចនាប័ទ្មក្នុងជួរ និងថ្នាក់ជួរឈរ CSS Grid ដែលបានកំណត់ជាមុន (ឧទាហរណ៍ .g-col-4
) ។
<div class="grid" style="--bs-columns: 18; --bs-gap: .5rem;">
<div style="grid-column: span 14;">14 columns</div>
<div class="g-col-4">.g-col-4</div>
</div>