CSS3 HTML5 Web Layout Framework

แนวคิด

TCHF ถูกเขียนขึ้นมาเพื่อการจัดการรูปแบบการทำงานด้าน CSS และ HTML เพื่อไม่ให้เกิดการ ทำซ้ำ ในสิ่งที่ “ไม่น่าจะต้องทำ” เช่น การเขียน Navigation ซ้ำๆ ใน CSS หรือการแบ่งหน้าเว็บออกเป็น หลายคอลัมน์ ซ้ำๆ

โดยแก่นหลักของ TCHF นี้ จะผูกกับการใช้ HTML5 และ CSS3 เพื่อจัดการกับ Web Layout เท่านั้น ยังไม่มีส่วนใดเกี่ยวเนื่องกับ HTML5 ส่วนอื่นๆ แต่ในอนาคตอาจจะมีการเพิ่มเติมความสามารถเข้ามา

หมวดหมู่ของ TCHF

TCHF ได้แบ่งหมวดหมู่การทำงานของ Web Layout ออกเป็น 5 หมวดหมู่ และอีก 1 ชุด Template

  1. Layout คือ ชุดการเขียน Layout แบบต่างๆ การแบ่งคอลัมน์เพื่อนำไปใช้งาน
  2. Navigation คือ ชุดการเขียน “เมนู” ทั้ง แนวนอน แหละแนวตั้ง รวมไปถึงการเขียนในแบบ Dropdown ด้วย
  3. List คือ ชุดการทำ List ของข้อมูลแบบต่างๆ โดยแบ่งออกเป็นกลุ่มเป็นก้อน
  4. Form คือ การจัดการ Form รวมไปถึงการเขียนเพื่อรองรับการ Validate และ Error
  5. Box ลักษณะการทำงานจะคล้ายคลึงกับ List แต่แตกต่างกันที่การตีความในการเขียน
  6. ชุด Template รวมชุดตัวอย่างการนำ TCHF ไปใช้งานโดยการเขียนคร่าวๆ เพื่อนำไปศึกษาต่อ

ตารางการใช้คำย่อใน TChF

ตารางการใช้คำย่อใน TChF
อักษรย่อ หมวดหมู่ คำอธิบาย หมายเหตุ
tchf Core ThaiCSS css html5 web layout framework
ch Parent Child (การสั่งงานไปที่ ลูกของ(x)) (E>F)
gch Parent Grand Child (การสั่งงานไปที่ หลานของ (x)) (E>F> foo)
gs Parent General sibling combinator คือ การสั่งงานไปยังน้อง ทั้งหมด (E~F)
as Parent Adjacent sibling combinator คือ การสั่งงานไปยัง น้องที่อยู่ลำดับถัดไปตัวเดียว (E+F)
lay Module Layout คือ การสร้าง layout หลัก ตามกฎของ Box model
-on Design Unit One คือ หนึ่ง
-tw Design Unit Two คือ สอง
-th Design Unit Three คือ สาม
-fo Design Unit Four คือ สี่
-fi Design Unit Five คือ ห้า
-si Design Unit Six คือ หก
-lis- Module List คือการสร้าง List แบบต่างๆ
-its- Module itself คือการสั่งงาน html element นั้นๆ โดยตรง เช่นการสั่ง float ซ้าย หรือขวา ให้กับรูปภาพ
-thm- Design Unit Thumbnail คือ การเซ็ตรูปย่อ หรือ มีรูปย่อใน list
-nav- Module Navigation คือ หน่วยของ เมนูและการเข้าถึง
-hr,-hre- Design Unit Horrizontal คือ การเกิดลักษณะตามแนวนอน
-vr,-vre- Design Unit Vertical คือการเกิดลักษณะตามแนวตั้ง
-in- Design Unit Inline คือ การเกิดแบบ Inline
_dbl Design Unit Display Block คือ การเกิดแบบ Block
-box- Module Box หรือ Block คือการสร้างกล่องข้อมูลแบบต่างๆ
mbox Module Multi boxes คือ การแสดงกล่องข้อมูลมากกว่า 1
-fg_ Design Unit Figure หรือ การทำ box list ที่มีภาพประกอบ
-frm- Module Form หรือ รูปแบบการจัดการ form ต่างๆ

โครงสร้างไฟล์ CSS ใน TCHF

ภาพแสดง โครงสร้างของ TCHF

ใน TCHF จะประกอบไปด้วย file CSS หลักอยู่ทั้งหมด 3 ไฟล์

  1. structure-tchf.css เป็นไฟล์ สำคัญที่สุด “ห้ามทำการแก้ไข หรือ ดัดแปลงใดๆ ทั้งสิ้น” เพราะในอนาคต TCHF จะมีการปรับปรุงแก้ไข และอัพเดทเวอร์ชั่นใหม่เรื่อยๆ
  2. layout-tchf.css เป็นไฟล์สำรองการเขียน Layout แบบเฉพาะเจาะจงของผู้ที่นำไปใช้เอง ค่าพื้นฐานที่มีอยู่นั้น สามารถ ลบ แก้ไข ดัดแปลงได้ตามความเข้าใจ
  3. tchf.css ไฟล์หลักสำหรับ นำ css อื่นๆ เข้ามาใช้งาน รวมไปถึงเป็นไฟล์สำรองในการสั่งงานได้ด้วย

ความแตกต่างระหว่าง layout-tchf.css และ tchf.css

  • layout-tchf.css จะใช้จัดการ Properties หลัก ในหมวดหมู่ของ CSS Basic Box Model
  • tchf.css ใช้จัดการ background, border, color, font และอื่นๆ ที่ไม่ได้อยู่ใน Box model

การใช้งาน

Code ทั้งหมดเขียนด้วย CSS3 และ HTML5

ทำการ link ไฟล์ tchf.css เข้าไปยังส่วนหัวของเอกสารแล้วเริ่มใช้งาน

ตัวอย่างการใช้งาน

<!DOCTYPE html>
<html dir="ltr" lang="th">
<head>  
<meta charset="UTF-8" />
<title>Title</title>
<link rel="stylesheet" type="text/css" media="screen" href="[YOUR PATH]/tchf.css" />  

การตั้งชื่อ class ของ TCHF ให้กับ html

ชื่อคลาสของ TCHF นั้นจะขึ้นต้นด้วยคำว่า tchf- เสมอ ตามด้วย Parent – Module และ Design Unit

ตัวอย่างการเขียน class ของ TCHF

<div class="tchf-ch-lay-tw">

HTML Code

<div class="tchf-ch-lay-tw">
<section> </section>
<section> </section>
</div>

ในไฟล์ structure-tchf.css นั้น จะมีการเขียนคำสั่งเพื่อรองรับการแบ่งคอลัมน์ เอาไว้เรียบร้อยแล้ว

CSS

[class*="-ch-lay-"]>* {float: left;}
[class*="-ch-lay-tw"]>* {with: 50%;}

การแสดงผลหลัก

การแสดงผลของ TCHF Child

หมายถึง การสั่ง ลูกทั้ง 2 ตัวให้แบ่งเป็น 2 คอลัมน์ โดยค่าความกว้างพื้นฐานนั้นจะอยู่ที่ข้างละ 50%

การปรับแต่งการแสดงผลตามที่เราต้องการ

จากตัวอย่าง TCHF ได้จัดการ แบ่งคอลัมน์ไว้ให้แล้ว ที่เหลือคือหน้าที่ของเราเองที่ต้องจัดการแบ่งคอลัมน์เนื้อหา ให้เป็นไปตามส่วนที่เราต้องการ ตามกฎของ TCHF ที่ตั้งไว้คือ ห้ามแก้ไขไฟล์ structure-tchf.css การจัดการหน้าเว็บให้เพิ่มเติมดังนี้

ถ้าหากเราต้องการเปลี่ยนแปลงความกว้างของ Childs ใหม่ ให้เรา เพิ่ม Class ที่มีความสำพันธ์กับเนื้อหาของเราเข้ามา ด้านหน้า และเว้นระยะระหว่าง class ของ tchf ด้วยช่องว่าง เช่น

เปลี่ยนความกว้าง Child Layout แบบ 2 คอลัมน์

HTML

<div class="tchf-ch-lay-tw">
   <article></article>
   <aside></aside>
</div>

หาก หน้าเว็บของเรา กว้าง 1000px และเราต้องการแก้ไขความกว้างให้ <article> กว้าง 700px และ <aside> กว้าง 300px ให้เราเพิ่มคลาสเข้ามา เช่น

HTML

<div class="เว็บของฉัน หน้าแรก tchf-ch-lay-tw">
   <article></article>
   <aside></aside>
</div>

Class เว็บของฉัน หน้าแรก นั้นถูกเพิ่มเข้ามาด้านหน้า จากนั้นให้เราไปที่ไฟล์ layout-tchf.css แล้วสามารถเขียน selector เพื่อแก้ไขค่าความกว้างใหม่ได้ เช่น

CSS

div[class|="เว็บของฉัน"][class~="หน้าแรก"]>article { width: 700px;}
div[class|="เว็บของฉัน"][class~="หน้าแรก"]>aside{ width: 300px;}

หรือ

div.หน้าแรก>article { width: 700px;}
div.หน้าแรก>aside{ width: 300px;}

รูปแบบการเขียน Selector นั้น เราสามารถปรับเปลี่ยนให้เหมาะสมได้ ตามลักษณะและความซับซ้อนของงาน

Back to Top

Back to Top