ទីតាំង
សេចក្តីផ្តើម
Property position
ក្នុង CSS គឺជាមធ្យោបាយសំខាន់មួយក្នុងការគ្រប់គ្រងទីតាំងនៃធាតុ HTML លើទំព័រ។ វាអនុញ្ញាតឱ្យយើងផ្លាស់ប្តូររបៀបដែលធាតុត្រូវបានដាក់តាំងនិងបង្ហាញក្នុងទំព័រគេហទំព័រ។
តម្លៃសំខាន់ៗទាំង៥នៃ Position
- static - ទីតាំងធម្មតា (លំនាំដើម)
- relative - ទីតាំងទាក់ទង
- absolute - ទីតាំងដាច់ខាត
- fixed - ទីតាំងជាប់
- sticky - ទីតាំងស្អិត
1. Position: Static (លំនាំដើម)
តម្លៃ static
គឺជាតម្លៃលំនាំដើមសម្រាប់ធាតុទាំងអស់។ ធាតុដែលមាន position: static
នឹងត្រូវបានដាក់តាំងតាមលំហូរធម្មតានៃទំព័រ (normal document flow)។
ចំណាំ: properties ដូចជា top
, right
, bottom
, left
និង z-index
មិនធ្វើការជាមួយ position: static
ទេ។
2. Position: Relative (ទីតាំងទាក់ទង)
ធាតុជាមួយនឹង position: relative
គឺមានទីតាំងទាក់ទងទៅនឹងទីតាំងធម្មតារបស់វាផ្ទាល់។ នៅពេលកំណត់ top
, right
, bottom
ឬ left
ធាតុនឹងរំកិលចេញពីទីតាំងដើមរបស់វា ប៉ុន្តែកន្លែងដើមនៅតែបម្រុងទុកដដែល។
ចំណុចសំខាន់៖
- ធាតុផ្សេងទៀតនៅតែមើលឃើញកន្លែងដើមរបស់វា
- គិតចាប់ពីចំណុចដែលវាគួរតែស្ថិតនៅ (normal position)
- ប្រើជាមួយ
z-index
ដើម្បីគ្រប់គ្រងស្រទាប់ - តែងត្រូវបានប្រើជា parent ក្នុងការដាក់ absolute children
3. Position: Absolute (ទីតាំងដាច់ខាត)
ធាតុជាមួយនឹង position: absolute
ត្រូវបានដកចេញពីលំហូរធម្មតានៃទំព័រ។ វាមិនបម្រុងទុកកន្លែងក្នុង layout ទៀតទេ។
ចំណុចសំខាន់៖
- គិតទីតាំងពី positioned ancestor ដែលជិតបំផុត (parent ដែលមាន position ខុសពី static)
- បើគ្មាន positioned ancestor វានឹងគិតពី document body
- ធាតុផ្សេងមើលមិនឃើញកន្លែងរបស់វាទេ
- ល្អសម្រាប់បង្កើត overlays, tooltips, modals
4. Position: Fixed (ទីតាំងជាប់)
ធាតុជាមួយនឹង position: fixed
ត្រូវបានដកចេញពីលំហូរធម្មតា ហើយវានឹងស្ថិតនៅទីតាំងជាក់លាក់មួយទាក់ទងនឹង viewport ទោះបីជាយើងរំកិលទំព័រក៏ដោយ។
ចំណុចសំខាន់៖
- តែងតែគិតទីតាំងពី viewport (ផ្ទាំងបង្ហាញ)
- មិនរំកិលតាមទំព័រទេ
- ល្អសម្រាប់ navigation bars, floating buttons, headers
- មិនប៉ះពាល់ដោយ parent position
5. Position: Sticky (ទីតាំងស្អិត)
តម្លៃ sticky
គឺជាការរួមបញ្ចូលគ្នារវាង relative
និង fixed
។ ធាតុនឹងធ្វើឱ្យដូចជា relative រហូតដល់វាឈានដល់ចំណុចមួយនៅពេលរំកិល បន្ទាប់មកវានឹងក្លាយជា fixed។
ចំណុចសំខាន់៖
- ចាប់ផ្តើមដូចជា
relative
- ក្លាយជា
fixed
នៅពេលរំកិលដល់ threshold ដែលកំណត់ - ត្រូវការយ៉ាងហោចណាស់មួយក្នុងចំណោម:
top
,right
,bottom
,left
- ល្អសម្រាប់ sticky headers, navigation menus
ការប្រើប្រាស់ Top, Right, Bottom, Left
Properties ទាំងនេះកំណត់ទីតាំងពិតប្រាកដនៃធាតុដែលមាន position។ វាធ្វើការខុសៗគ្នាអាស្រ័យលើប្រភេទ position៖
Position | គិតទីតាំងពី | លំហូរទំព័រ | រំកិលតាម |
---|---|---|---|
static |
មិនធ្វើការ | បាទ/ចាស | បាទ/ចាស |
relative |
ទីតាំងដើមរបស់វា | បាទ/ចាស (បម្រុងកន្លែង) | បាទ/ចាស |
absolute |
Positioned ancestor | ទេ | បាទ/ចាស |
fixed |
Viewport | ទេ | ទេ |
sticky |
Viewport + Parent | បាទ/ចាស (ដើមឡើយ) | មាន (រហូតដល់ជាប់) |
Z-Index និងការគ្រប់គ្រងស្រទាប់
Property z-index
គ្រប់គ្រងលំដាប់ជង់នៃធាតុដែល overlap គ្នា។ វាធ្វើការតែជាមួយធាតុដែលមាន position (មិនមែន static)។
ច្បាប់សំខាន់ៗ៖
- តម្លៃខ្ពស់ជាង = នៅលើគេ
- តម្លៃអាចជាលេខអវិជ្ជមាន
- តម្លៃលំនាំដើមគឺ
auto
(ដូចជា 0) - ធាតុក្រោយនៅលើធាតុមុន បើ z-index ដូចគ្នា
ឧទាហរណ៍ជាក់ស្តែង - Card with Badge
ឧទាហរណ៍នេះបង្ហាញការប្រើប្រាស់ relative
និង absolute
ដើម្បីបង្កើត badge នៅលើ card។
ឧទាហរណ៍ជាក់ស្តែង - Modal/Overlay
ឧទាហរណ៍នេះបង្ហាញការបង្កើត modal dialog ដោយប្រើ fixed
position និង z-index
។
ឧទាហរណ៍ជាក់ស្តែង - Sticky Navigation
ឧទាហរណ៍នេះបង្ហាញ navigation bar ដែល sticky នៅពេលរំកិល។
ករណីប្រើប្រាស់ទូទៅ (Common Use Cases)
1. Tooltips និង Dropdowns
ប្រើ relative
លើ parent និង absolute
លើ tooltip/dropdown ដើម្បីដាក់វានៅទីតាំងត្រឹមត្រូវ។
2. Fixed Headers/Footers
ប្រើ fixed
ដើម្បីធ្វើឱ្យ header ឬ footer នៅជាប់លើផ្ទាំងបង្ហាញ។
3. Sticky Table Headers
ប្រើ sticky
លើ <thead>
ដើម្បីធ្វើឱ្យ header នៅជាប់នៅពេលរំកិលតារាង។
4. Overlays និង Modals
ប្រើ fixed
ជាមួយ z-index
ខ្ពស់ដើម្បីបង្កើត overlay ដែលគ្របពេញផ្ទាំងបង្ហាញ។
5. Badges និង Notifications
ប្រើ relative
+ absolute
ដើម្បីដាក់ badge នៅជ្រុងធាតុមួយ។
ចំណាំសំខាន់និងបញ្ហាទូទៅ
⚠️ បញ្ហាទូទៅ
- Absolute ទៅខុសទី: ត្រូវប្រាកដថា parent មាន
position: relative
- Z-index មិនធ្វើការ: ត្រូវប្រាកដថាធាតុមាន position (មិនមែន static)
- Fixed element គ្របខ្លឹមសារ: កុំភ្លេចបន្ថែម padding/margin ដល់ body
- Sticky មិនធ្វើការ: ត្រូវការ top/bottom/left/right និង parent ត្រូវមានកម្ពស់គ្រប់គ្រាន់
✅ ការអនុវត្តល្អបំផុត (Best Practices)
- ប្រើ
relative
លើ parent នៅពេលប្រើabsolute
លើ child - ចៀសវាងការប្រើ
absolute
និងfixed
ច្រើនពេកព្រោះបង្កភាពស្មុគស្មាញ - ប្រើ
sticky
ជំនួសfixed
នៅពេលអាច ដើម្បីទទួលបាន UX ល្អជាង - តែងតែសាកល្បងលើ devices និង screen sizes ផ្សេងៗ
- ប្រើ
z-index
តាមប្រព័ន្ធច្បាស់លាស់ (ឧ. 10, 20, 30...) មិនមែន 999999
សង្ខេប: Position property គឺជាឧបករណ៍មានឥទ្ធិពលខ្លាំងក្នុង CSS layout។ ការយល់ដឹងអំពីភាពខុសគ្នារវាង relative, absolute, fixed និង sticky នឹងជួយអ្នកបង្កើត layouts ស្មុគស្មាញនិងទំនើបបាន។ ចាំថា: static គឺលំនាំដើម, relative បម្រុងកន្លែង, absolute និង fixed មិនបម្រុងកន្លែង, ហើយ sticky រួមបញ្ចូលគុណសម្បត្តិពីរ។