ខ្នាតប្រវែង
ខ្នាតប្រវែងនៅក្នុង CSS ចែកជា ២ គឺ
- មិនប្រែប្រួល (Absolute Units)
- ប្រែប្រួល (Relative Units) ។
ការជ្រើសរើសខ្នាតប្រវែងត្រឹមត្រូវគឺសំខាន់ណាស់សម្រាប់ការបង្កើតគេហទំព័រដែលមានភាព flexible និង responsive។
ខ្នាតប្រវែងមិនប្រែប្រួល (Absolute Units)
ខ្នាតប្រវែងមិនប្រែប្រួល គឺជាខ្នាតប្រវែងដែលថេរ មិនប្រែប្រួលទៅណា ទោះបីជាប្ដូរមជ្ឈដ្ឋានក៏ដោយ ។ ខ្នាតទាំងនេះមានទំហំជាក់លាក់ហើយត្រូវបានកំណត់ដោយខ្នាតពិតនៅក្នុងពិភពលោក។
សង់ទីម៉ែត្រមិនត្រូវបានប្រែប្រួលទេ ទោះស្ថិតនៅតំបន់ណាក៏ដោយ ។ 1cm នៅលើអេក្រង់ទូរស័ព្ទ = 1cm នៅលើអេក្រង់កុំព្យូទ័រ។
ខ្នាត | ពាក្យពេញ | ភាសាខ្មែរ | ការប្រើប្រាស់ |
---|---|---|---|
px | pixel | ភីចសល | ប្រើញឹកញាប់បំផុត - សម្រាប់អេក្រង់ឌីជីថល |
pt | point | ភ័ញ | សម្រាប់ការបោះពុម្ព (1pt = 1/72 inch) |
cm | centimeter | សង់ទីម៉ែត្រ | សម្រាប់ការបោះពុម្ព |
mm | millimeter | មីលីម៉ែត្រ | សម្រាប់ការបោះពុម្ព |
in | inch | អ៊ីន | សម្រាប់ការបោះពុម្ព (1in = 96px) |
pc | pica | ផៃកា | សម្រាប់ការបោះពុម្ព (1pc = 12pt) |
ឧទាហរណ៍ការប្រើប្រាស់ Absolute Units
/* Pixel - ប្រើសម្រាប់អេក្រង់ */
.button {
width: 200px;
height: 50px;
font-size: 16px;
border: 2px solid black;
}
/* Point - ប្រើសម្រាប់ការបោះពុម្ព */
@media print {
body {
font-size: 12pt;
}
}
ចំណាំ: Pixel (px) គឺជាខ្នាតមិនប្រែប្រួលដែលត្រូវបានប្រើញឹកញាប់បំផុតសម្រាប់ការអភិវឌ្ឍគេហទំព័រ។ ខ្នាតផ្សេងទៀតត្រូវបានប្រើច្រើនសម្រាប់ការបោះពុម្ព។
ខ្នាតប្រវែងប្រែប្រួល (Relative Units)
ខ្នាតប្រវែងប្រែប្រួល គឺជាខ្នាតប្រវែងដែលប្រែប្រួលទៅតាមមជ្ឈដ្ឋានដែលវាស្ថិតនៅក្នុង ។ ខ្នាតប្រែប្រួលជួយធ្វើឱ្យគេហទំព័រមានភាព responsive និងអាចសម្របបានទៅតាមទំហំអេក្រង់ផ្សេងៗ។
ភាគរយប្រែប្រួលទៅតាមរបស់ដែលវាស្ថិតនៅក្នុង ។ em និង rem ប្រែប្រួលទៅតាមទំហំអក្សរ។
ខ្នាត | អត្ថន័យ និងបម្រើបម្រាស់ |
---|---|
em | អាស្រ័យទៅនឹងទំហំអក្សរនៃធាតុ ។ ឧទាហរណ៍ ៖ 2em គឺមានន័យថា ទំហំ២ដងធៀបនឹងទំហំអក្សរនៃធាតុបច្ចុប្បន្ន ។ បើធាតុបច្ចុប្បន្ន អក្សរទំហំ 15px នោះ 2em គឺ 30px ។ |
rem | អាស្រ័យទៅនឹងទំហំអក្សរនៃធាតុ root (html) ។ ឧទាហរណ៍ ៖ បើ html មាន font-size: 16px នោះ 2rem = 32px។ ត្រូវបានណែនាំសម្រាប់ responsive design។ |
% | ភាគរយនៃប្រវែងធាតុដែលវាស្ថិតនៅក្នុង ។ ឧទាហរណ៍ ៖ 50% គឺមានន័យថា ៥០% នៃធាតុដែលវាស្ថិតនៅក្នុង ។ |
vw | ភាគរយនៃប្រវែងផ្ដេកនៃ viewport (ផ្ទៃមើល) ។ ឧទាហរណ៍ ៖ 50vw គឺមានន័យថា ៥០%នៃប្រវែងផ្ដេក viewport ។ ល្អសម្រាប់ធាតុ full-width។ |
vh | ភាគរយនៃកម្ពស់នៃ viewport (ផ្ទៃមើល) ។ ឧទាហរណ៍ ៖ 50vh គឺមានន័យថា ៥០% នៃកម្ពស់ viewport ។ ល្អសម្រាប់ធាតុ full-height។ |
vmin | ភាគរយនៃប្រវែងដែលតូចជាងគេនៃ viewport ។ ឧទាហរណ៍ ៖ 50vmin បើប្រវែងផ្ដេកនៃ viewport តូចជាងកម្ពស់បញ្ឈរ នោះវាគិតទៅតាមប្រវែងផ្ដេក ដែលមានតម្លៃស្មើនឹង 50vw ។ តែបើកម្ពស់បញ្ឈរនៃ viewport តូចជាងប្រវែងផ្ដេកវិញ នោះវាគិតទៅតាមកម្ពស់បញ្ឈរ ដែលមានតម្លៃស្មើនឹង 50vh ។ |
vmax | ភាគរយនៃប្រវែងដែលធំជាងគេនៃ viewport ។ ឧទាហរណ៍ ៖ 50vmax បើប្រវែងផ្ដេកនៃ viewport ធំជាងកម្ពស់បញ្ឈរ នោះវាគិតទៅតាមប្រវែងផ្ដេក ដែលមានតម្លៃស្មើនឹង 50vw ។ តែបើកម្ពស់បញ្ឈរនៃ viewport ធំជាងប្រវែងផ្ដេកវិញ នោះវាគិតទៅតាមកម្ពស់បញ្ឈរ ដែលមានតម្លៃស្មើនឹង 50vh ។ |
ex | អាស្រ័យទៅនឹងកម្ពស់អក្សរតូចនៃធាតុ ។ (កម្រប្រើ) |
ch | អាស្រ័យទៅនឹងប្រវែងផ្ដេកលេខ 0 នៃធាតុ ។ (កម្រប្រើ) |
Viewport គឺជាប្រអប់ដែលបង្ហាញទំព័រ ឬ ផ្ទៃមើលរបស់កម្មវិធី browser។
ឧទាហរណ៍ការប្រើប្រាស់ Relative Units
១. ការប្រើប្រាស់ em និង rem
/* កំណត់ root font size */
html {
font-size: 16px;
}
/* ប្រើ rem - អាស្រ័យលើ root */
body {
font-size: 1rem; /* = 16px */
line-height: 1.5rem; /* = 24px */
}
h1 {
font-size: 2.5rem; /* = 40px */
margin-bottom: 1rem; /* = 16px */
}
/* ប្រើ em - អាស្រ័យលើធាតុ parent */
.container {
font-size: 18px;
}
.container p {
font-size: 1em; /* = 18px */
padding: 0.5em; /* = 9px */
}
២. ការប្រើប្រាស់ ភាគរយ (%)
/* Layout ដែលមានភាព responsive */
.container {
width: 100%; /* ពេញទំហំ parent */
max-width: 1200px;
margin: 0 auto;
}
.sidebar {
width: 25%; /* ១/៤ នៃ container */
float: left;
}
.main-content {
width: 75%; /* ៣/៤ នៃ container */
float: left;
}
/* ទំហំអក្សរដោយប្រើភាគរយ */
.small-text {
font-size: 80%; /* តូចជាង parent 20% */
}
៣. ការប្រើប្រាស់ Viewport Units (vw, vh)
/* Hero section ពេញអេក្រង់ */
.hero {
width: 100vw; /* ពេញប្រវែងអេក្រង់ */
height: 100vh; /* ពេញកម្ពស់អេក្រង់ */
background: linear-gradient(to bottom, #667eea, #764ba2);
}
/* ទំហំអក្សរ responsive */
h1 {
font-size: 5vw; /* ប្រែប្រួលតាមទំហំអេក្រង់ */
}
/* ការប្រើ vmin សម្រាប់ធាតុរឹងមាំ */
.square {
width: 50vmin;
height: 50vmin; /* តែងតែជាការ៉េ */
}
ណែនាំការប្រើប្រាស់ (Best Practices)
១. សម្រាប់ទំហំអក្សរ (Font Sizes):
- ប្រើ
rem
សម្រាប់ទំហំអក្សរទូទៅ - ងាយគ្រប់គ្រង និង responsive - ប្រើ
em
សម្រាប់ padding/margin ដែលពាក់ព័ន្ធនឹងអក្សរ - ជៀសវាងការប្រើ
px
សម្រាប់អក្សរ ព្រោះវាមិន scale បាន
២. សម្រាប់ Layout និង Spacing:
- ប្រើ
%
សម្រាប់ទំហំធាតុផ្ដេក (width) - ប្រើ
rem
ឬem
សម្រាប់ margin និង padding - ប្រើ
vw
និងvh
សម្រាប់ធាតុ full-screen
៣. សម្រាប់ Border និង Shadow:
- ប្រើ
px
សម្រាប់ border-width - ត្រូវការភាពជាក់លាក់ - ប្រើ
px
សម្រាប់ box-shadow blur និង spread
ឧទាហរណ៍ការរួមបញ្ចូលគ្នា (Mixed Units Example)
/* Responsive Card Component */
.card {
/* Layout */
width: 90%; /* responsive width */
max-width: 400px; /* កំណត់ទំហំអតិបរមា */
margin: 2rem auto; /* spacing ប្រើ rem */
/* Styling */
padding: 1.5rem; /* ប្រើ rem */
border: 2px solid #ddd; /* ប្រើ px */
border-radius: 8px; /* ប្រើ px */
box-shadow: 0 4px 6px rgba(0,0,0,0.1); /* ប្រើ px */
}
.card-title {
font-size: 1.75rem; /* ប្រើ rem */
margin-bottom: 0.5em; /* ប្រើ em */
}
.card-text {
font-size: 1rem; /* ប្រើ rem */
line-height: 1.6; /* unitless សម្រាប់ line-height */
}
/* Responsive adjustments */
@media (max-width: 768px) {
.card {
width: 95%;
padding: 1rem;
}
.card-title {
font-size: 1.5rem;
}
}
ការប្រៀបធៀប Units ផ្សេងៗ
ស្ថានភាព | ខ្នាតណែនាំ | មូលហេតុ |
---|---|---|
ទំហំអក្សរទូទៅ | rem | ងាយគ្រប់គ្រង, accessible, responsive |
Padding/Margin ទាក់ទងអក្សរ | em | scale ទៅតាមទំហំអក្សរ |
Layout width | % ឬ vw | responsive ទៅតាមអេក្រង់ |
Fixed spacing | px | ត្រូវការទំហំជាក់លាក់ |
Border width | px | ត្រូវការភាពច្បាស់លាស់ |
Full screen elements | vh, vw | ពេញផ្ទៃអេក្រង់ |
Media queries | px ឬ em | breakpoints ច្បាស់លាស់ |
ចំណាំសំខាន់: នៅក្នុងគម្រោងពិត គេតែងតែប្រើខ្នាតច្រើនប្រភេទរួមគ្នា ដើម្បីទទួលបានលទ្ធផលល្អបំផុត។ ជ្រើសរើសខ្នាតដែលសមស្របនឹងគោលបំណង។