เป็นเรื่องที่น่าปวดหัวอยู่ไม่น้อยสำหรับการสร้าง Template ด้วย CSS เพราะว่าการแสดงผลของ Browser แต่ละเจ้ามีข้อกำหนดที่ไม่เหมือนกัน ทำให้การแสดงผลของ Browser ก็แตกต่างกันไปด้วย ตรงนี้แหละคือความ ยากของ CSS ทำให้หลายๆคนถึงกับถอดใจไปเลยก็มี สิ่งที่ผมจะแนะนำท่านต่อไปนี้เป็นเพียงหลักการ อย่างง่าย เท่านั้น พอเป็นแนวทางในการเรียนรู้เรื่องนี้ต่อไปครับ....
การกำหนด template ให้กับเว็บไซต์มี div หลักๆดังนี้ Container, Header, Nav, Main, Footer ก่อนอี่นสร้างไฟล์ขึ้นมา 2 ไฟล์ คือ template.php กับ style.css
ไปที่ไฟล์ template.php สั่งนำเข้า หรือ include ไฟล์ style.css ระหว่างเท็ก <head></head>
โครงสร้างแรกจะเป็นตามรูปนี้
เพิ่มเติม tag div ระหว่าง <body>ตรงนี้</body>
HTML Code
ไฟล์ template.php
HeaderContent - Sidebar
จากนั้นก็กำหนด CSS ให้กับ div หลักก่อนดังนี้
ไฟล์ style.css
body{ margin:0 auto; background:#eeeeee; } #container{ width:980px; margin:0 auto; } #header{ height:90px; } #nav{ height:30px; } #main{ width:980px; height: auto; } #footer{ clear: both; width:980px; height:40px; }
เพิ่มเติม เมนู ให้กับ id Nav
เพิ่มเติม css ให้กับเมนู
#nav{ height:30px; padding-bottom: 9px; } #nav ul{ list-style: none; height:30px; padding:0px; margin:0px; } #nav ul li{ float:left; margin:10px; }
จากนั้นก็แบ่ง Main เป็นสองส่วน ซ้าย กับ ขวา ตามรูป
แบ่ง Main เป็นสองส่วน ซ้าย กับ ขวา ด้วย main_left , main-right ใส่ content ใน main_left ใส่ sidebar ใน main_right เพิ่มเติม tag div ลงไปดังนี้
ไฟล์ template.php
Content
เพิ่มเติม css ด้านซ้าย main->main_left->content ด้านขวา main->main_right->sidebar
ไฟล์ style.css
#main{ width:980px; height: 400px; } /*-------------------MAIN_LEFT -> CONTENT-------------------*/ #main_left{ float:left; width:670px; text-align: left; } #content{ clear: both; width:auto; height:auto; min-height: 400px; border:1px solid #dddddd; padding:10px; background: #ffffff; font-size: 14px; } /*-------------------MAIN_RIGHT -> SIDEBAR-------------------*/ #main_right{ float:right; width:300px; } #sidebar{ clear: both; width:auto; height:auto; min-height: 400px; border:1px solid #dddddd; padding:10px; font-size: 14px; text-align: left; }
ตอนนี้ถ้าเปิดด้วย firefox เพจก็จะอยู่ตรงกลางของ browser ไม่มีปัญหาอะไร แต่ถ้าเปิดด้วย ie เพจจะอยู่ติดขอบด้านซ้าย ดังนั้นเพื่อให้เพจอยู่กึ่งกลางของ browser เราจะอัพเดท tag div ด้วยการเพิ่ม div เข้าไปครอบ tag div ทั้งหมดเอาไว้แล้วกำหนดให้ align = center
ไฟล์ template.php
tag div ทั้งหมดของเพจอยู่ภายในนี้....
ตอนนี้เพจของเราก็จะอยู่กึ่งกลางของ browser ใช้ได้ทั้ง ie6, ie7, firefox ส่วน browser ตัวอื่นไม่ได้ทดสอบครับ เพิ่มเติม box เข้าไปสอง box ที่ sidebar ดังนี้
ไฟล์ template.php
เพิ่มเติม css
ไฟล์ style.css
#sidebar_boxone{ clear: both; width:auto; height:auto; border:1px solid #dddddd; background: #ffffff; padding:10px; min-height: 200px; font-size: 14px; text-align: left; } #sidebar_boxtwo{ clear: both; width:auto; height:auto; border:1px solid #dddddd; background: #ffffff; padding:10px; min-height: 200px; font-size: 14px; text-align: left; }
เพิ่มเติม content box เข้าไปสอง box ที่ content ดังนี้
ไฟล์ template.php
เพิ่มเติม cssSidebar
Content box one
Content box two
ไฟล์ style.css
#content_boxone{ clear: both; width:auto; height:auto; border:1px solid #dddddd; padding:10px; min-height: 200px; font-size: 14px; text-align: left; } #content_boxtwo{ clear: both; width:auto; height:auto; border:1px solid #dddddd; padding:10px; min-height: 200px; font-size: 14px; text-align: left; }
เพิ่มเติมลิงค์ ให้กับเมนู กำหนด CSS class="current" ให้กับลิงค์ Home เพื่อ highlight สีให้เกิดความ แตกต่างจากหน้าเพจอื่นๆเมื่อหน้าเพจปัจจุบันเป็นหน้า HOME เมื่อสร้างหน้า ARTICLE ก็ย้าย class="current" ไปไว้ตรงลิ้งค์ ARTICLE แทน หน้าเพจอื่นๆก็ทำเช่นเดียวกันครับ
ไฟล์ template.php หน้า HOME
ไฟล์ template.php หน้า ARTICLE
เพิ่มเติม css เพื่อ highlight หน้าเพจปัจจุบัน ไฟล์ style.css
#nav ul li a{ color:#2CD2D3; text-decoration: none; } #nav ul li a:hover, #nav ul .current{ color:#ffffff; }
สุดท้าย โค้ดที่เสร็จแล้ว HTML Code ไฟล์ template.php
Home HomeContent
Content box one
Content box two
โค้ดที่เสร็จแล้ว CSS Code ไฟล์ style.css
body{ margin:0 auto; background:#eeeeee; } #container{ width:980px; margin:0 auto; } #header{ height:90px; background: #B0C5E3; } #nav{ height:30px; background: #222222; color:#ffffff; padding-bottom: 9px; } #nav ul{ list-style: none; height:30px; margin:0 auto; } #nav ul li{ float:left; margin:10px; } #nav ul li a{ color:#2CD2D3; text-decoration: none; } #nav ul li a:hover, #nav ul .current{ color:#ffffff; } #main{ width:980px; height:auto; } #main_left{ float:left; width:670px; text-align: left; } #content{ clear: both; width:auto; height:auto; min-height: 400px; border:1px solid #dddddd; padding:10px; background: #ffffff; font-size: 14px; } #content_boxone{ clear: both; width:auto; height:auto; border:1px solid #dddddd; padding:10px; min-height: 200px; font-size: 14px; text-align: left; } #content_boxtwo{ clear: both; width:auto; height:auto; border:1px solid #dddddd; padding:10px; min-height: 200px; font-size: 14px; text-align: left; } #main_right{ float:right; width:300px; } #sidebar{ clear: both; width:auto; height:auto; min-height: 400px; border:1px solid #dddddd; background: #dddddd; padding:10px; font-size: 14px; text-align: left; } #sidebar_boxone{ clear: both; width:auto; height:auto; border:1px solid #dddddd; background: #ffffff; padding:10px; min-height: 200px; font-size: 14px; text-align: left; } #sidebar_boxtwo{ clear: both; width:auto; height:auto; border:1px solid #dddddd; background: #ffffff; padding:10px; min-height: 200px; font-size: 14px; text-align: left; } #footer{ clear: both; width:980px; background: #222222; color:#ffffff; padding-top:10px; height:40px; }
พอเป็นแนวทางในการสร้าง Template website เท่านั้น ที่เหลือท่านก็จะต้องไปศึกษาCSS เพิ่มเติมเอานะครับ....
หวัดดีครับของคุณมากเลยนะครับสำหรับ ความรู้ที่ทำการแบ่งปันก้ันนะครับ
ตอบลบเป็นแนวทางที่ดีครับ
ขอบคุณสำหรับคำแนะนำดีๆครับ ผมคิดว่ามีหลายคนนะครับที่เข้ามาดูแต่ไม่ได้ comment แค่นั้นเอง
ตอบลบขอเป็นอีกหนึ่ง comment ที่ยืนยันว่า content ที่เขียนมีประโยชน์ครับ ขอบคุณครับ.
ตอบลบเป็นประโยชน์มากๆ เลยค่ะ ขออนุญาตเอาโค้ดต่างๆนี้ ไปเป็นแนวทางในการทำโปรเจคนะคะ ^^
ตอบลบThank มากๆ
ตอบลบผมอยากลองหัดเขียน ใช้โปรแกรมอะไรเขียนคับ
ตอบลบ