CSS - Flexbox
ជំពូកនេះនឹងពន្យល់អ្នកពី Flexbox ជាអ្វីហើយអាចធ្វើអ្វីបានខ្លះនៅលើ CSS។
អ្វីទៅជា CSS Flexbox?
- CSS Flexbox គឺប្រើសម្រាប់កំណត់ធាតុនីមួយៗឲ្យមានភាពស្រស់ស្អាតនិងងាយស្រួលក្នុងការកំណត់ទីតាំង។ នៅក្នុង
Flexboxនេះគឺយើងមានរបស់ពីរដែលត្រូវសិក្សាគឺParent ElementនិងChild Element។
ចំណុចពិសេសរបស់ CSS Flexbox
- Flexbox នៅក្នុង CSS គឺអាចធ្វើការបែងចែក
Containerនៅក្នុង គេហទំព័ររបស់អ្នកឲ្យមានលក្ខណៈស្តង់ដា រួមបញ្ចូលជាមួយនឹងPropertiesជាច្រើន ដែលផ្តល់ភាពងាយស្រួលដល់អ្នកនៅពេលដែលអ្នកត្រូវការ ហើយវាក៏ផ្នែកមួយដ៏សំខាន់ក្នុងការធ្វើResponsiveទៅលើគេហទំព័រ។
Properties របស់ CSS Flexbox
១. Parent Element:
នៅក្នុង
Parent Elementនេះគឺមានpropertiesជាច្រើនដែលយើងត្រូវសិក្សា ដែលមានដូចខាងក្រោម:flex-direction: ប្រើសម្រាប់កំណត់ទិសដៅនៃធាតុដែលវាផ្ទុក។
flex-wrap: ប្រើសម្រាប់កំណត់ថាតើធាតុដែលវាផ្ទុកគួរចុះបន្ទាត់ឬអត់ នៅពេលដល់កន្លែងទាល់។
flex-flow: ប្រើសម្រាប់សរសេរតែក្នុងមួយ
propertyរវាងflex-directionនិងflex-wrap។justify-content: ប្រើសម្រាប់តម្រៀបធាតុទៅតាមទិសដៅនៃទិសដៅគោល។
align-content: ប្រើសម្រាប់តម្រៀបធាតុទៅតាមទិសដៅដែលកាត់ទិសដៅគោល(សម្រាប់ច្រើនបន្ទាត់)។
place-content: ប្រើសម្រាប់សរសេរតែក្នុងមួយ
propertiesរវាងjustify-contentនិងalign-content។align-items: ប្រើសម្រាប់តម្រៀបទៅតាមទិសដៅដែលកាត់ទិសដៅគោល(សម្រាប់មួយបន្ទាត់)។
២. Child Element:
នៅក្នុង
Child Elementនេះគឺមានpropertiesជាច្រើនដែលយើងត្រូវសិក្សា ដែលមានដូចខាងក្រោម:order: ប្រើសម្រាប់កំណត់លំដាប់។
flex-grow: ប្រើសម្រាប់ពង្រីកទំហំទៅឲ្យធាតុនូវទំហំដែលនៅសល់។
flex-shrink: ប្រើសម្រាប់ពង្រួមធាតុ។
flex-basis: ប្រើសម្រាប់កំណត់ទំហំទៅឲ្យធាតុ។
flex: ប្រើសម្រាប់សរសេរតែក្នុងមួយ
propertiesរវាងflex-grow,flex-shrinkនិងflex-basis។align-self: ប្រើសម្រាប់កំណត់តម្លៃដូច
align-itemsប៉ុន្តែសម្រាប់តែមួយធាតុបច្ចុប្បន្ននេះទេ។
ឧទាហរណ៍
- ខាងក្រោមនេះគឺជាឧទាហរណ៍ដែលមាន
Containerដើម្បីក្តោបនូវcontentតូចៗ ហើយនៅក្នុងcontentតូចៗនោះគឺមានboxesតូចៗចំនួនប្រាំបន្ថែមទៀត:
index.html
<div class="container">
<div class="content content__one">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.container {
width: 100%;
position: relative;
}
.content {
width: 100%;
height: 360px;
margin: 30px auto;
background-color: #6c3483;
border-radius: 10px;
border: 2px solid #f39c12;
padding: 10px;
}
.box {
margin: 10px;
width: 45%;
height: 45px;
border-radius: 10px;
border: 2px solid #dedede;
}
.box__one {
background-color: #2ecc71;
}
.box__two {
background-color: #e74c3c;
}
.box__three {
background-color: #5499c7;
}
.box__four {
background-color: #f5b041;
}
.box__five {
background-color: #85929e;
}
លទ្ធផល:
ដោយយើងបានឃើញហើយថា នៅក្នុង class
content__oneគឺមិនទាន់មានកំណត់styleអ្វីចូលទៅក្នុងនឹងនោះទេ ដូច្នេះលទ្ធផលបង្ហាញចេញមកគឺboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈធ្លាក់ចុះជាទម្រង់ជួរឈរ។បញ្ជាក់: កូដរបស់
CSSនៅក្នុងឧទាហរណ៍ខាងក្រោមៗនេះគឺមិនមានជាការសរសេរឡើងវិញនោះទេ ហើយមានតែកូដដែលត្រូវបន្ថែមតែប៉ុណ្ណោះ។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxនៅក្នុង classcontent__twoហើយដើម្បីអាចប្រើប្រាស់flexboxគឺយើងប្រើ propertydisplayហើយតម្លៃគឺflexគឺមានលក្ខណៈបែបនេះdisplay: flex;។
index.html
<div class="container">
<div class="content content__two">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__two {
display: flex;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twoគឺមានការកំណត់styleចំនួនមួយpropertyគឺdisplay: flex;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈឡើងលើជាទម្រង់ជួរដេកវិញ។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីកំណត់ទិសដៅទៅឲ្យboxesទាំងអស់នៅក្នុង classcontent__threeហើយដើម្បីអាចកំណត់ទិសដៅបាន យើងអាចប្រើប្រាស់នូវ propertyflex-directionហើយមានតម្លៃជាច្រើនដែលមានដូចជាcolumn,row,column-reverse, និងrow-reverse។
index.html
<div class="container">
<div class="content content__three">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__three {
display: flex;
flex-direction: column;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__threeគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺflex-direction: column;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានទិសដៅជាលក្ខណៈធ្លាក់ចុះជាទម្រង់ជួរឈរវិញ។
index.html
<div class="container">
<div class="content content__four">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__four {
display: flex;
flex-direction: row;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__fourគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺflex-direction: row;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានទិសដៅជាលក្ខណៈឡើងលើជាទម្រង់ជួរដេកវិញ។
index.html
<div class="container">
<div class="content content__five">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__five {
display: flex;
flex-direction: column-reverse;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__fiveគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺflex-direction: column-reverse;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានទិសដៅជាលក្ខណៈធ្លាក់ចុះជាទម្រង់ជួរឈរបែបបញ្ច្រាស់ទៅវិញ។
index.html
<div class="container">
<div class="content content__six">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__six {
display: flex;
flex-direction: row-reverse;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__sixគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺflex-direction: row-reverse;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានទិសដៅជាលក្ខណៈឡើងលើជាទម្រង់ជួរដេកបែបបញ្ច្រាស់ទៅវិញ។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីកំណត់ការចុះបន្ទាត់របស់boxesទាំងអស់នៅក្នុង classcontent__sevenហើយដើម្បីអាចកំណត់ការចុះបន្ទាត់បាន យើងអាចប្រើប្រាស់នូវ propertyflex-wrapហើយមានតម្លៃជាច្រើនដែលមានដូចជាwrap,nowrap, និងwrap-reverse។
index.html
<div class="container">
<div class="content content__seven">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__seven {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__sevenគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺflex-wrap: wrap;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈចុះបន្ទាត់។
index.html
<div class="container">
<div class="content content__eight">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__eight {
display: flex;
flex-direction: row;
flex-wrap: wrap-reverse;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__eightគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺflex-wrap: wrap-reverse;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈចុះបន្ទាត់បែបជាបញ្ច្រាស់ទៅវិញ។
index.html
<div class="container">
<div class="content content__nine">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__nine {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__nineគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺflex-wrap: nowrap;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈមិនចុះបន្ទាត់ទៅវិញ។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីកំណត់ទិសដៅនិងការចុះបន្ទាត់រួមបញ្ចូលគ្នាដោយប្រើតែpropertyតែមួយគត់គឺflex-flowហើយមានតម្លៃជាច្រើនដែលមានទៅតាមតម្លៃរបស់propertyរបស់flex-directionនិងflex-wrap។
index.html
<div class="container">
<div class="content content__ten">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__ten {
display: flex;
flex-flow: row wrap;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__tenគឺមានការកំណត់styleចំនួនមួយpropertyជំនួសpropertiesពីរគឺflex-flow: row wrap;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានទិសដៅជាលក្ខណៈជួរដេកហើយមានលក្ខណៈបែបជាចុះបន្ទាត់។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីតម្រៀបធាតុជាលក្ខណៈជួរដេកទៅឲ្យboxesទាំងអស់នៅក្នុង classcontent__elevenហើយដើម្បីតម្រៀបធាតុជាលក្ខណៈជួរដេកបាន យើងអាចប្រើប្រាស់នូវ propertyjustify-contentហើយមានតម្លៃជាច្រើនដែលមានដូចជាcenter,flex-start,flex-end,space-between,space-around,space-evenly, និងstretch។
index.html
<div class="container">
<div class="content content__eleven">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__eleven {
display: flex;
flex-flow: row wrap;
justify-content: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__elevenគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺjustify-content: center;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__twelve">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__twelve {
display: flex;
flex-flow: row wrap;
justify-content: flex-start;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twelveគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺjustify-content: flex-start;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងចាប់ផ្តើមនៃcontentបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__thirteen">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirteen {
display: flex;
flex-flow: row wrap;
justify-content: flex-end;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirteenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺjustify-content: flex-end;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងបញ្ចប់នៃcontentបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__fourteen">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__fourteen {
display: flex;
flex-flow: row wrap;
justify-content: space-between;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__fourteenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺjustify-content: space-between;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__fifteen">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__fifteen {
display: flex;
flex-flow: row wrap;
justify-content: space-around;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__fifteenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺjustify-content: space-around;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentតែមានគម្លាតរៀងធំបន្តិចនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__sixteen">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__sixteen {
display: flex;
flex-flow: row wrap;
justify-content: space-evenly;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__sixteenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺjustify-content: space-evenly;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentតែមានគម្លាតស្មើៗគ្នារវាងគម្លាតនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentនិងគម្លាតរបស់boxesនីមួយៗបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__seventeen">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__seventeen {
display: flex;
flex-flow: row wrap;
justify-content: stretch;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__seventeenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺjustify-content: stretch;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងចាប់ផ្តើមនៃcontentវាដូចទៅនឹងតម្លៃdefualtបែបជាជួរដេក។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីតម្រៀបធាតុជាលក្ខណៈជួរឈរទៅឲ្យboxesទាំងអស់នៅក្នុង classcontent__eighteenthហើយដើម្បីតម្រៀបធាតុជាលក្ខណៈជួរឈរបាន យើងអាចប្រើប្រាស់នូវ propertyalign-content(សម្រាប់ច្រើនបន្ទាត់)និងalign-items(សម្រាប់មួយបន្ទាត់)ហើយមានតម្លៃជាច្រើនដែលមានដូចជាcenter,flex-start,flex-end,space-between,space-around, និងstretch។
index.html
<div class="container">
<div class="content content__eighteenth">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__eighteenth {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-content: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__eighteenthគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺalign-content: center;ដូច្នេះboxesទាំងអស់នៅក្នុង content គឺមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__nineteen">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__nineteen {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-content: flex-start;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__nineteenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-content: flex-start;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងចាប់ផ្តើមនៃcontentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__twenty {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-content: flex-end;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twentyគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-content: flex-end;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងបញ្ចប់នៃcontentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__one">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__twenty__one {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-content: space-between;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__oneគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-content: space-between;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__two">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__twenty__two {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-content: space-around;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__twoគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-content: space-around;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentតែមានគម្លាតរៀងធំបន្តិចនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__three">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__twenty__three {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-content: stretch;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__threeគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-content: stretch;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងចាប់ផ្តើមនៃcontentវាដូចទៅនឹងតម្លៃdefualtបែបជាជួរឈរ។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីតម្រៀបធាតុជាលក្ខណៈជួរដេកនិងជួរឈររួមបញ្ចូលគ្នាដោយប្រើតែpropertyតែមួយគត់គឺplace-contentហើយមានតម្លៃជាច្រើនដែលមានទៅតាមតម្លៃរបស់propertyរបស់justify-contentនិងalign-content។
index.html
<div class="container">
<div class="content content__twenty__four">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__twenty__four {
display: flex;
flex-flow: row wrap;
place-content: center center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__fourគឺមានការកំណត់styleចំនួនមួយpropertyជំនួសpropertiesពីរគឺplace-content: center center;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរដេកបូករួមជាមួយនឹងជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__five">
<div class="box box__one">1</div>
</div>
</div>
style.css
.content__twenty__five {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__fiveគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺalign-items: center;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__six">
<div class="box box__one">1</div>
</div>
</div>
style.css
.content__twenty__six {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: flex-end;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__sixគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-items: flex-end;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងបញ្ចប់នៃcontentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__seven">
<div class="box box__one">1</div>
</div>
</div>
style.css
.content__twenty__seven {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: flex-start;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__sevenគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-items: flex-start;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងចាប់ផ្តើមនៃcontentបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__eight">
<div class="box box__one">1</div>
</div>
</div>
style.css
.content__twenty__eight {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: stretch;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__eightគឺមានការកំណត់style propertyដដែលតែមានការផ្លាស់ប្តូរតម្លៃគឺalign-items: stretch;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកន្លែងចាប់ផ្តើមនៃcontentវាដូចទៅនឹងតម្លៃdefualtបែបជាជួរឈរ។
index.html
<div class="container">
<div class="content content__twenty__nine">
<div class="box box__one">1</div>
</div>
</div>
style.css
.content__twenty__nine {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__twenty__nineគឺមានការកំណត់style propertyដដែលតែអ្វីដែលយើងចង់បញ្ជាក់បន្ថែមនោះគឺជាទូទៅគេនិយមប្រើ propertyjustify-contentនិងalign-itemsជាមួយគ្នាព្រោះjustify-contentប្រើសម្រាប់តម្រៀបធាតុទៅតាមទិសដៅនៃទិសដៅគោល រីឯalign-itemsវិញគឺប្រើសម្រាប់តម្រៀបទៅតាមទិសដៅដែលកាត់ទិសដៅគោល(សម្រាប់មួយបន្ទាត់) ដូច្នេះលទ្ធផលបង្ហាញចេញមកគឺboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរដេកបូករួមជាមួយនឹងជួរឈរ។
- ឧទាហរណ៍ខាងក្រោមៗនេះគឺយើងនឹងបង្ហាញអំពីការប្តូរទិសដៅនៃ
boxesនៅក្នុងcontentទៅជាជួរឈរវិញ ដូច្នេះ propertyjustify-contentនិងalign-itemsនឹងប្តូរទិសដៅក្នុងការតម្រៀបធាតុដូចគ្នា ដែលjustify-contentគឺតម្រៀបធាតុបែបជាជួរឈរ ហើយសម្រាប់align-itemsគឺតម្រៀបធាតុបែបជាជួរដេកវិញ។
index.html
<div class="container">
<div class="content content__thirty">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
</div>
</div>
style.css
.content__thirty {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirtyគឺមានការកំណត់style propertyដូចជាjustify-content: center;និងalign-items: center;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរដេកបូករួមជាមួយនឹងជួរឈរ។
index.html
<div class="container">
<div class="content content__thirty__one">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
</div>
</div>
style.css
.content__thirty__one {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__oneគឺមានការកំណត់style propertyដូចជាjustify-content: space-between;និងalign-items: center;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentបែបជាជួរឈរនិងមានលក្ខណៈនៅកណ្តាលនៃcontentបែបជាជួរដេក។
index.html
<div class="container">
<div class="content content__thirty__two">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
</div>
</div>
style.css
.content__thirty__two {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__twoគឺមានការកំណត់style propertyដូចជាjustify-content: space-between;និងalign-items: flex-end;ដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈនៅញែកសងខាងនៃកន្លែងចាប់ផ្តើមនិងកន្លែងបញ្ចប់របស់contentបែបជាជួរឈរនិងមានលក្ខណៈនៅកន្លែងបញ្ចប់នៃcontentបែបជាជួរដេក។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីកំណត់លំដាប់ទៅឲ្យធាតុកូនៗនៅក្នុងcontent។
index.html
<div class="container">
<div class="content content__thirty__three">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirty__three {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: center;
}
.content__thirty__three > .box {
font-size: 24px;
font-weight: 700;
text-align: center;
line-height: 45px;
color: white;
}
.content__thirty__three > .box__one {
order: 5;
}
.content__thirty__three > .box__two {
order: 4;
}
.content__thirty__three > .box__three {
order: 3;
}
.content__thirty__three > .box__four {
order: 2;
}
.content__thirty__three > .box__five {
order: 1;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__threeគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺorderដូច្នេះboxesទាំងអស់នៅក្នុងcontentគឺមានលក្ខណៈជាលំដាប់ៗតាមអ្វីដែលយើងបានកំណត់នៅក្នុងcontent។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីពង្រីកទំហំទៅឲ្យធាតុនូវទំហំដែលនៅសល់នៅក្នុងcontent។
index.html
<div class="container">
<div class="content content__thirty__four">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirty__four {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: center;
}
.content__thirty__four > .box__one {
flex-grow: 1;
}
.content__thirty__four > .box__four {
flex-grow: 1;
}
.content__thirty__four > .box__five {
flex-grow: 1;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__fourគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺflex-growដូច្នេះboxនោះនៅក្នុងcontentគឺមានលក្ខណៈពង្រីកទំហំទៅឲ្យធាតុនូវទំហំដែលនៅសល់នៅក្នុងcontent។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីពង្រួមធាតុនៅក្នុងcontent។
index.html
<div class="container">
<div class="content content__thirty__five">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirty__five {
display: flex;
flex-flow: row nowrap;
justify-content: center;
align-items: center;
}
.content__thirty__five > .box__one {
flex-shrink: 0;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__fiveគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺflex-shrinkដូច្នេះboxនោះនៅក្នុងcontentគឺមានលក្ខណៈពង្រួមធាតុនៅក្នុងcontent។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីអាចកំណត់ទំហំទៅឲ្យធាតុនៅក្នុងcontent។
index.html
<div class="container">
<div class="content content__thirty__six">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirty__six {
display: flex;
flex-flow: row wrap;
justify-content: center;
align-items: center;
}
.content__thirty__six > .box__two {
flex-basis: 100px;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__sixគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺflex-basisដូច្នេះboxនោះនៅក្នុងcontentគឺមានលក្ខណៈអាចកំណត់ទំហំទៅឲ្យធាតុនៅក្នុងcontent។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីសរសេរតែក្នុងមួយpropertiesរវាងflex-grow,flex-shrinkនិងflex-basis។
index.html
<div class="container">
<div class="content content__thirty__seven">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirty__seven {
display: flex;
flex-flow: row nowrap;
justify-content: center;
align-items: center;
}
.content__thirty__seven > .box__three {
flex: 1 0 500px;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__sixគឺមានការកំណត់styleចំនួនមួយpropertyជំនួសpropertiesបីគឺflex: 1 0 500px;ដូច្នេះboxនោះនៅក្នុងcontentគឺមានលក្ខណៈពង្រីកទំហំទៅឲ្យធាតុនូវទំហំដែលនៅសល់នៅក្នុងcontentនិងមានលក្ខណៈពង្រួមធាតុនៅក្នុងcontentនិងមានការកំណត់ទំហំទៅឲ្យធាតុនៅក្នុងcontent។
- ខាងក្រោមនេះគឺយើងប្រើ
flexboxដើម្បីអាចកំណត់តម្លៃដូចalign-itemsដែរប៉ុន្តែសម្រាប់តែមួយធាតុបច្ចុប្បន្ននេះទេ។
index.html
<div class="container">
<div class="content content__thirty__eight">
<div class="box box__one">1</div>
<div class="box box__two">2</div>
<div class="box box__three">3</div>
<div class="box box__four">4</div>
<div class="box box__five">5</div>
</div>
</div>
style.css
.content__thirty__eight {
display: flex;
flex-flow: row nowrap;
justify-content: center;
align-items: center;
}
.content__thirty__eight > .box__one {
align-self: center;
}
.content__thirty__eight > .box__two {
align-self: flex-start;
}
.content__thirty__eight > .box__three {
align-self: flex-end;
}
.content__thirty__eight > .box__four {
align-self: stretch;
}
.content__thirty__eight > .box__five {
align-self: center;
}
លទ្ធផល:
- ដោយយើងបានឃើញហើយថានៅក្នុង class
content__thirty__eightគឺមានការកំណត់styleចំនួនមួយpropertyបន្ថែមទៀតគឺalign-selfដូច្នេះboxនោះនៅក្នុងcontentគឺមានលក្ខណៈនៅទិសដៅដែលបានកំណត់នៃcontentបែបជាជួរឈរ។
សរុបសេចក្តី
- បន្ទាប់ពីអ្នកបានសិក្សានូវជំពូកនេះចប់ អ្នកនឹងអាចយល់ដឹងបានច្រើនទាក់ទងនឹង CSS Flexbox។