អាយធីខ្មែរស៊ែរ : itkhmershare.blogspot.com

រចនា Responsive វិប​សាយ​ជាមួយ CSS3 Media Queries សម្រាប់ TYPO3

Wednesday, December 26, 20120 comments



ខ្ញុំ​នឹង​បង្ហាញ​ពី​វិធីសាស្ត្រ​បង្កើត Responsive ​វិប​សាយ​ ដែល ​​ត្រូវ​បាន​គេ​យក​ទៅ​ប្រើ​ប្រាស់​ជា​ច្រើន​នា​ពេល​បច្ចុប្បន្ន​ក្នុង​ការ​ បង្កើត​វិប​សាយ។ ក្នុង​មេរៀន​នេះ​ ខ្ញុំ​នឹង​បង្ហាញ​តែ​របៀប​បង្កើត​ Responsive Template និង​នៅ​មេរៀន​ក្រោយ​ទៀត ខ្ញុំ​នឹង​បង្ហាញ​ពី​​របៀប​បញ្ចូល Template នេះ​​​ទៅ​ក្នុង​ TYPO3 CMS។
Responsive វិប​សាយ​ គឺ​ជា​វិធី​សាស្ត្រ​បង្កើត​វិប​សាយ​ដែល​អាច​បើក​មើល​បាន​គ្រប់​ប្រភេទ​ កុំព្យូទ័រ ទូរស័ព្ទ​វៃ​ឆ្លាត​ (Smart Phone) និង Tablet។  រាល់​ការ​បើក​មើល​វិប​សាយ​តាម​ប្រភេទ​ឧបករណ៍​និមួយៗ​ អ្នក​នឹង​ឃើញ​ទម្រង់​នៃ​វិប​សាយ​ (layout) មាន​រូប​រាង​ខុស​ៗ​គ្នា ដូច​រូប​ខាង​លើ។ ការ​បង្កើត​ Responsive វិប​សាយ​អ្នក​អាច​ធ្វើ​បាន​តាម​ពីរ​វិធី៖
១. Grid-base layout បង្កើត​វិប​សាយ​ដោយ​ប្រើប្រាស់​ CSS Grid System
២. Media Queries បង្កើត​វិប​សាយ​ដោយ​ប្រើប្រាស់​​ CSS3 Media Queries
នៅ​ក្នុង​មេរៀន​នេះ​​ ខ្ញុំ​នឹង​បង្ហាញ​វិធីទី២ ដើម្បី​បង្កើត​ Responsive វិប​សាយ​ដល់​មិត្ត​អ្នក​អាន​ដូច​ខាង​ក្រោម៖
១. CSS3 Media Queries
CSS3 Media Queriesគឺ​ជា​ម៉ូឌុល​ដែល​បាន​ដាក់​បញ្ចូល​ក្នុង media type របស់ CSS3 សម្រាប់​ដាក់​លក្ខខណ្ឌ​ច្រើន​ឬ​គ្មាន​លក្ខខណ្ឌ ដើម្បី​កំណត់​ទំហំ screen របស់​វិប​សាយ។ ជាទូទៅ​គេ​ច្រើន​ប្រើ​វា​សម្រាប់​កំណត់​លើ​ប្រភេទ​ “screen”​ និង “print” ជា​ពិសេស​ media queries ដែល​ត្រូវ​បាន​គេ​យក​មក​ប្រើ​សម្រាប់​កំណត់​ទ្រង់ទ្រាយ​របស់​វិប​សាយ​​ទៅ​ តាម​ទំហំ​របស់​អេក្រង់ (screen resolution) អ្នក​អាច​​កំណត់​បាន​ច្រើន​តម្លៃ​នៃ​លក្ខខណ្ឌ​ ក្នុងquery តែមួយ​ដោយ​ប្រើ​ពាក្យ​គន្លឹះ ​(keyword) and ៖
?
1
2
3
4
<link rel="stylesheet" type="text/css"
 media="screen and (max-device-width: 480px) and (resolution: 163dpi)"
  href="shetland.css" />
    }
ជា​ទូទៅ​គេ​​មិន​ប្រើ media query ក្នុង​ tag link ទេ​ យើង​ត្រូវ​បញ្ចូល​វា​ទៅ​ក្នុង​ឯកសារ (file) CSS ដោយ​ប្រើ​ក្បួន (Rule) @media
?
1
2
3
4
5
6
7
8
  /* សម្រាប់​ទូរស័ព្ទ​ដែល​មាន​ទំហំ​អេក្រង់ 480px ឬ​តូច​ជាង */
      @media (max-width: 480px) { ... }
      /* សម្រាប់​ Tablet */
      @media (max-width: 767px) { ... }
      /* សម្រាប់ tablet បញ្ឈរ​ទៅ​ផ្ដេក និង​កុំព្យូទ័រ(desktop) */
      @media (min-width: 768px) and (max-width: 979px) { ... }
      /* សម្រាប់ desktop ដែល​មាន​ទំហំ​អេក្រង់​ធំៗ */
      @media (min-width: 1200px) { ... }
២.​ការ​បង្កើត​ Template
ខាង​ក្រោម​នេះ​ជា​ folders និង file ដែល​បាន​បង្កើត​ក្នុង​ gallery  មានឈ្មោះ​ project៖

– css សម្រាប់​រក្សាទុក​ឯកសារ​ ប្រភេទ​ CSS
– images សម្រាប់​រក្សាទុក​ឯកសារ​រូបភាព
– js សម្រាប់​រក្សា​ឯកសារ​ប្រភេទ JavaScript
– index.html
២.១ index.html

ខាង​ក្រោម​នេះ​ជា​កូដ​​សង្ខេប​របស់ index.html ដែល​បង្កើត​បាន​ទំព័រ​ខាង​លើ។ សូម​មើល​​កូដ​ពេញ​ដែល​បាន​ភ្ជាប់​មក​ជា​មួយ​មេរៀន​នេះ
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
    <head>
        <title>Essentials Gallery</title>
        <link rel="stylesheet" href="css/reset.css" />
        <link rel="stylesheet" href="css/style.css" />
    </head>
    <body>
        <section class="container">
            <!-- header -->
            <header id="head">
                <a href="#" class="logo"><h2>Essential Gallery</h2></a>
                <nav class="top-menu">
                    ...
                </nav>
            </header>
            <!-- main section -->
            <section class="row">
                <aside class="col_1">
                    ....
                </aside>
                <section class="col_2">
                    .....
                </section>
            </section>
            <!-- footer -->
            <footer id="footer">...</footer>
        </section>    
    </body>
</html>
កូដ​ខាង​លើ​ខ្ញុំ​បាន​បញ្ចូល reset.css និង style.css
– reset.css ជា stylesheet សម្រាប់​រៀបចំ default style របស់​កម្មវិធី​រុក​រក​(Browsers)នីមួយៗ អោយ​ក្លាយ​ជា​គំរូ style តែមួយ​ដូច​គ្នា​គ្រប់​កម្មវិធី​រុក​រក​ទាំង​អស់។ ព័ត៌មាន​លម្អិត​សូម​ចូល http://goo.gl/b4goi។
– style.css នេះ​ជា​ឯកសារ​ stylesheet សម្រាប់​រៀបចំ Template របស់​វិប​សាយ​ទាំង​មូល ខ្ញុំ​នឹង​ពន្យល់​លម្អិត​ខាងក្រោម៖
២.២ style.css
នៅ​ក្នុង​ style នេះ​ខ្ញុំ​បាន​បង្កើត media query ចំនួន​៤ លក្ខខណ្ឌ​ដើម្បី​អោយ​ Template អាច​បើក​មើល​តាម​ប្រភេទ ឧបករណ៍​នីមួយៗ ដោយ​ងាយ​ស្រួល។
ក. @media (min-width: 980px)
នេះ​ជា​លក្ខខណ្ឌ​សម្រាប់ កុំព្យូទ័រ និង ឧបករណ៍​ដែល​មាន​ទំហំ​អេក្រង់​ធំ​ជាង 980px និង​ជា​លក្ខខណ្ឌ​ទូទៅ​។

ដោយ​កូដ​មាន​ចំនួន​ច្រើន​បន្ទាត់​ ដូច្នេះ​ខ្ញុំ​មិន​បាន​បញ្ចូល​នៅ​ទីនេះ​ទេ លោក​អ្នក​អាច​រក​បាន​នូវ​ឧទាហរណ៍​ដែល​បាន​ភ្ជាប់​មក​ជាមួយ​មេរៀន​នេះ នៅ​ក្នុង style.css។
ខ. @media (min-width: 768px) and (max-width: 979px)
លក្ខខណ្ឌ​នេះ​ប្រើ​សម្រាប់ ឧបករណ៍ ដែល​មាន​ទំហំ​អេក្រង់​នៅ​ចន្លោះ 768px និង 979px ជា​ប្រភេទ​ឧបករណ៍ Tablet ដូច iPad, Samsung Galaxy Tab និង Tablets ផ្សេងៗ​ទៀត។​ អ្នក​នឹង​ឃើញ​​​រូប​ដូច​ខាង​ក្រោម។
ទម្រង់​ Template ខាង​ក្រោម​ខ្ញុំ​បាន​បង្រួម​ប្រវែង​វា​អោយ​មក​នៅ​ត្រឹម​តែ 724px ហើយ​បង្ហាញ​រូប​ភាព​ជា​ពីរ​ជួរ ដែល​ទំហំ(thumbnail)របស់​វា​ធំជាង​រូប​ខាង​លើ ហើយ​រក្សាទុក​លក្ខណៈ​ជា​ពីរ​ column template។

ខាង​ក្រោម​នេះ​ជា​ code របស់ @media (min-width: 768px) and (max-width: 979px) នេះ​ជា​កូដ​​ដែល​ខ្ញុំ​ស្រង់​​យក​តែ​ចំណុច​សំខាន់​មក​បង្ហាញ​សូម​មើល​កូដ​ ទាំង​មូល​ក្នុង style.css នៅ​ចំណុច​នេះ៖
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
@media (min-width: 768px) and (max-width: 979px) {
  .container {
    width: 724px;
  }
  aside.col-1 {
    width: 180px;
    background: #ffffff;
    padding: 10px;
  }
  section.col-2 {
    width: 484px;
    margin-left: 20px;
    background: #ffffff;
    padding: 10px;
  }
 ...
}
}
គ. @media (max-width: 767px) and (min-width: 481px)
ចំណែក​លក្ខខណ្ឌ​មួយ​នេះ​ស្រប​ជាមួយ​នឹង​ប្រភេទ ទូរស័ព្ទ​ទំនើប​ៗ​ដូច​ជា​ Samsung Galaxy SII-SIII, iPhone 4S-4GS និង ប្រភេទ​ទូរស័ព្ទ​ផ្សេង​ទៀត ដែល​មាន​ទំហំ​អេក្រង់​ផ្តេក​នៅ​ចន្លោះ 767px និង 481px ។
ដោយសារ​តែ​ទំហំ​អេក្រង់​របស់​ឧបករណ៍​តូច​ ខ្ញុំ​បាន​បង្រួម​ទម្រង់​មក​ត្រឹម​តែ​មួយ​ជួរ(one column layout) ដោយ​ចែក​ជា​បី​ផ្នែក​សំខាន់ៗ
– Header
– Galleries
– Thumbnail
ទម្រង់​ Template នេះ​គិត​ប្រវែង​ជា​ភាគរយ ដោយ​រក្សា​​ចន្លោះ​ទាំង​សងខាង​ 20px ហើយ​រូប​ភាព​បង្ហាញ​ជា​បី​ជួរ ហើយ​ប្រវែង​របស់​វា​រីក​រួម​អាស្រ័យ​ទៅ​នឹង​អេក្រង់​របស់​ឧបករណ៍។ សូម​មើល​រូប​ខាងក្រោម

ខាង​ក្រោម​នេះ​ជា​កូដ​សង្ខេប​ត្រង់​ចំណុច​លក្ខខណ្ឌ @media (max-width: 767px) and (min-width: 481px)៖
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@media (max-width: 767px) and (min-width: 481px) {
  body {
    padding-right: 20px;
    padding-left: 20px;
  }
  .container {
    width: auto;
  }
  .row {
    width: auto;
  }
  aside.col-1 {
    width: auto;
    float: none;
    min-height: 0;
    padding: 10px;
  }
  
  section.col-2 {
    width: auto;
    float: none;
    margin-left: 0;
    margin-top: 20px;
    padding: 10px;
  }
   
     ...
}
ឃ. @media (max-width: 480px)
នេះ​ជា​លក្ខខណ្ឌ​សម្រាប់​ប្រភេទ​ទូរស័ព្ទ​ដៃ​ដែល​មាន​ទំហំ​អេក្រង់ ធំ​បំផុត 480px ដូច iPhone 3G និង​ ទូរស័ព្ទ​ស៊េរី​មុនៗ វា​រក្សា​ទម្រង់​ប្រហែល​នឹង​ចំណុច​ គ ​ដែរ​តែ​មាន​ការ​ផ្លាស់​ប្ដូរ​មួយ​ចំនួន​ដូច​ខាងក្រោម៖
– Logo Essentials Gallery នៅ​តែមួយ​ជួរ​​ខាង​លើ​បំផុត
– Top Menu បាន​បម្លែង​រូបរាង ​​និង នៅ​តែ​មួយ​ជួរ​
– Thumbnail បង្ហាញ​ជា​ពីរ​ជួរ​ហើយ​ប្រវែង​របស់​វា​នឹង​អាច​រីក​រួម​បាន

?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
@media (max-width: 480px) {
  body {
    padding-right: 20px;
    padding-left: 20px;
  }
  .container {
    width: auto;
  }
  .row {
    width: auto;
  }
  header {
    background: none;
    padding: 0;
  }
  header .logo {
    font-size: 1.4em;
    position: relative;
    display: block;
    width: auto;
    margin-bottom: 10px;
  }
  header .top-menu {
    position: relative ;
  }
  header .top-menu ul {
    overflow: hidden;
    padding: 0;
    margin: 0;
    background: #CCC;
  }
   
  aside.col-1 {
    width: auto;
    float: none;
    min-height: 0;
    padding: 10px;
  }
  section.col-2 {
    width: auto;
    float: none;
    margin-left: 0;
    margin-top: 20px;
    padding: 10px;
  }
 ...
}
សូម​ថ្លែង​អំណរគុណ​ដល់​មិត្ត​អ្នក​អាន​ទាំង​អស់​​ ដែល​បាន​តាម​ដាន​អាន​អត្ថបទ​ Responsive វិប​សាយ និង​សូម​តាម​ដាន​របៀប​បញ្ចូល Templateក្នុង TYP03 នៅ​លេខ​ក្រោយ​ទៀត៕
Share this article :

Post a Comment