Dave Raggett, 8 เมษายน 2002.
บทความสั้นนี้จัดทำขึ้นเพื่อแนะนำการใช้ Style ตกแต่งเว็บเพจ ด้วยภาษา Cascading Style Sheets language (CSS) ของ W3C และคำสั่งที่สามารถใช้ทดแทนกันได้ในภาษา HTML ในบทความนี้ท่านยังจะได้เห็นปัญหาการใช้งาน CSS อันเกิดจากการแสดงผลของ Browser ที่ต่างชนิด หรือต่างเวอร์ชั่นกันอีกด้วย
การที่จะทำให้ Style sheet ทำงานได้สมบูรณ์นั้น สิ่งจำเป็น คือการเขียน markup ของท่านจะต้องไม่มีที่ผิดพลาดเลย วิธีการที่สะดวกที่สุดเพื่อกันไม่ให้การ markup ของท่านผิดพลาด สามารถทำได้โดยใช้โปรแกรม HTML Tidy ซึ่งจะช่วยให้การ markup เรียบร้อยและง่ายต่อการอ่านและแก้ไข ท่านควรที่จะเปิดโปรแกรมนี้ไว้ขณะทำการแก้ไขหรือเขียน markup เป็นประจำ เพราะโปรแกรม Tidy นี้จะช่วยแก้ไขปัญหาการ markup ที่ไม่เรียบร้อยอันเกิดจากโปรแกรมช่วยเขียนเว็บเพจได้เป็นอย่างดี
สำหรับบทความนี้ท่านจะได้เรียนรู้เรื่องดังต่อไปนี้:
เราจะเริ่มต้นด้วยการตั้งค่าสีของตัวอักษร และฉากหลัง ซึ่งสามารถทำได้ด้วยการใช้ Style element ในการกำหนดค่าคุณสมบัติและรูปแบบของ tag ในเอกสาร ดังนี้:
<style type="text/css"> body { color: black; background: white; } </style>
การใช้ style element จะต้องเขียนไว้ในส่วน head ของเอกสาร ตัวอย่างเอกสาร HTML ด้านล่างจะแสดง ให้เห็นว่าท่านจะต้องวาง style element ไว้ ณ ตำแหน่งใด ท่านสามารถคัดลอกตัวอย่างโค้ดด้านล่างไปใช้ในโปรแกรม editor ที่ท่านใช้อยู่ได้เลย เพื่อเพิ่มความสะดวกในการทดลองใช้งาน style sheet ของ CSS:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> ใส่ชื่อหัวเรื่อง (title)ที่นี่ </title>
<style type="text/css">
body { color: black; background: white; }
</style>
</head>
<body>
ใส่เนื้อหาของเอกสารที่นี่
</body>
</html>
โค้ดที่อยู่ระหว่าง แท็ก <style> และ </style> เป็น เครื่องหมาย (notation) พิเศษ ที่ใช้กำหนดกฏของ style (style rule) โดยแต่ละกฏจะเริ่มด้วยการเรียกชื่อ tag ที่ต้องการกำหนด ตามด้วย property (คุณสมบัติ) ในเครื่องหมายปีกกา { และ } ในตัวอย่างกฎที่ใช้จะมีผลกับ tag body ซึ่งจะเห็นว่า tag body เป็น tag พื้นฐานที่ใช้กำหนดการมองเห็นและความรู้สึกต่อหน้าเว็บเพจได้เป็นอย่างดีทีเดียว
แต่ละ property จะเริ่มด้วยชื่อ property ที่ต้องการ ตามด้วยเครื่องหมาย colon และค่า (value) ที่ต้องการกำหนดสำหรับ property นั้นๆ เป็นลำดับสุดท้าย โดยหากมีการใช้ property หลายตัวจะคั่นด้วยเครื่องหมาย semicolon ในตัวอย่างข้างต้น มีการใช้ property สองตัวด้วยกัน คือ "color" ซึ่งเป็นตัวกำหนดค่าสีของตัวอักษร และ "background" ในการกำหนดสีที่ใช้ในฉากหลัง ท่านควรจะไส่เครื่องหมาย semicolon ไว้หลัง property ทุกครั้ง แม้จะเป็น property สุดท้ายแล้วก็ตามที
การกำหนดค่าสีอาจใช้โดยการระบุชื่อสีที่ต้องการหรือใช้ค่าโค้ดสี rgb ก็ได้ เช่น rgb(255, 204, 204) เป็นสีชมพู เลขสามชุดในปีกกา้ใช้แทนค่าสี แดง เขียว น้ำเงิน ตามลำดับ ซึ่งมีค่าระหว่าง 0 ถึง 255 นอกจากนี้ท่านอาจกำหนดค่าสีด้วยเลขฐาน 16 ซึ่งสีชมพูแทนด้วย #FFCCCC รายละเอียดค่าสีจะกล่าวในส่วนถัดไป
Stlye element จะต้องวางไว้ในตำแหน่งของ head ในเอกสาร ถัดจาก tag title เสมอ และห้ามวางไว้ในตำแหน่ง body
ถ้าท่านต้องการใช้ Style เดียวกันในหลายหน้าเว็บเพจแล้ว ท่านสามารถทำได้โดย การเขีียนไฟล์ Style sheet แยกไว้ต่างหาก แล้วใช้การเชื่อมโยง (Link) ในหน้าเพจ เพื่อเรียกใช้งาน Style sheet ภายนอกที่สร้างไว้ได้ โดยเมื่อต้องการเรียกใช้ Style sheet ที่เพจใดก็ให้แทรกโค้ดด้านล่างที่เพจนั้น:
<link type="text/css" rel="stylesheet" href="style.css">
link tag จะต้องวางไว้ระหว่าง element <head> ... </head> ของไฟล์ HTML ที่ใช้การเชื่อมโยงใช้งาน style sheet ภายนอกหรือ style sheet ที่เขียนแยกไว้ต่างหาก ตัวอย่างไฟล์ HTML ที่ได้จะมีลักษณะดังตัวอย่างด้านล่าง:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> ใส้ชื่อเรื่องที่นี่ </title>
<link type="text/css" rel="stylesheet" href="style.css">
</head>
<body>
ใส่เนื้อหาเอกสารที่นี่
</body>
</html>
element ของ link rel ต้องกำหนดค่าคุณลักษณะ (attribute) เป็น "stylesheet" เพื่อให้ browser รู้ว่า attribute href ที่ใช้ระบุที่อยู่ของเว็บ (URL) ที่อยู่ถัดไปนั้น เป็นทีอยู่ของไฟล์ style sheet ไฟล์ stylesheet อย่างง่ายอาจเขียนได้ดังตัวอย่างด้านล่างนี้:
/* style.css - style sheet อย่างง่าย */
body {
margin-left: 10%; margin-right: 10%;
color: black; background: white;
}
ในไฟล์ HTML เดียวกันนั้นสามารถใ้ช้ทั้ง style sheet ภายนอก และภายในได้พร้อมกัน โดยใช้ style element เพื่อกำหนดรูปแบบบางส่วนของหน้าเว็บเป็นการเฉพาะ โดยมีหลักว่า style element ที่อยู่ใกล้ element ที่ต้องการกำหนดสมบัติที่สุด จะมีผลต่อ element นั้นเสมอ แม้ว่าจะมีการกำหนดค่า style ให้กับ element นั้นไว้ก่อนแล้วในหน้าเพจนั้นก็ตาม
หน้าเว็บเพจจะดูดี ถ้าเราให้มีระยะห่างเริ่มต้นที่มากหน่อย การกำหนดระยะห่างจากจุดเริ่มต้นให้หน้าเพจ ทำได้โดยการใช้ "margin-left" สำหรับระยะห่างด้านซ้าย และ "margin-right" สำหรับระยะห่างด้านขวา ตัวอย่างเช่น
<style type="text/css"> body { margin-left: 10%; margin-right: 10%; } </style>
โค้ดด้านบนจะกำหนดให้ ระยะห่างจากจุดเริ่มต้นทั้งซ้ายและขวา เป็น 10% ของความกว้างหน้าต่างที่เปิดหน้าเพจนั้น โดยค่าระยะห่างจากจุดเริ่มต้นนี้ยังจะแปรผันกับขนาดหน้าต่างของ browser ที่ใช้เปิดหน้าเพจนั้นอีกด้วย
เมื่อต้องการให้ส่วน tag h1,h2,.... ดูโดดเด่น ท่านอาจใช้การกำหนดระยะห่างจากจุดเริ่มต้นในส่วนของ body เช่น
<style type="text/css"> body { margin-left: 10%; margin-right: 10%; } h1 { margin-left: -8%;} h2,h3,h4,h5,h6 { margin-left: -4%; } </style>
ในตัวอย่างนี้มีการกำหนด style rule สามอย่างด้วยกัน อันแรกสำหรับ element body อันที่สองสำหรับ element h1 (ใช้สำหรับหัวเรื่องที่สำคัญ) และอันสุดท้ายสำหรับ หัวเรื่องรองลงไป (h2, h3, h4, h5 และ h6) ค่าระยะห่างจากจุดเริ่มต้นของ heading (หัวเรื่อง) จะนับต่อจากระยะห่างที่กำหนดไว้ในส่วน body โดยค่าลบจะหมายถึงให้ลดระยะห่างจากจุดเริ่มต้นลง
ในส่วนเนื้อหาต่อไป การใช้ style rule จะเรียกใช้จาก style element ในส่วน head ของเอกสาร หรืออาจเรียกใช้จากการเชื่อมโยงไปยัง style sheet ภายนอก
Browsers ส่วนใหญ่จะแสดงผลระยะห่างด้านบน และด้านล่างทั้งในส่วน heading (หัวเรื่อง) paragraph (ย่อหน้า) และอื่นๆได้ดี เรามีเหตุผลอยู่สองประการในการควบคุมค่าระยะห่างด้านบนและด้านล่าง คือ เมื่อเราต้องกำหนดการระยะห่างก่อนถึง heading หรือ paragraph เป็นการเฉพาะ หรือเมื่อเราต้องการควบคุมพื้นที่ว่างที่แม่นยำ
"margin-top" ใช้สำหรับระบุพื้นที่ว่างด้านบน และ "margin-bottom" ใช้สำหรับระบุพื้นที่ว่างด้านล่าง เมื่อต้องการกำหนดค่านี้สำหรับ h2 headings ทั้งหมดในหน้าเอกสารสามารถทำได้โดยเขียนโค้ดดังนี้:
h2 { margin-top: 8em; margin-bottom: 3em; }
หน่วย em เป็นหน่วยที่มีประโยชน์มาก เพราะเป็นการแสดงขนาดอ้างอิงกับขนาดของตัวอักษร หนึ่ง em เท่ากับความสูงของตัวอักษร การใช้หน่วย em จะช่วยให้รักษาขนาดของหน้าเพจได้โดยไม่ขึ้นกับขนาดของตัวอักษร ต่างจากการใช้หน่วย pixel หรือ point ซึ่งจะทำให้หน้าเพจผิดเพี้ยนได้เมื่อผู้ใช้ขยายขนาดตัวอักษร
หน่วย point ใช้กับโปรแกรม word processing เป็นส่วนมาก แต่บน browser จะพบว่า browser แต่ละตัวจะแสดงผลขนาด point ไม่เท่ากัน ทำให้ค่าหนึ่งที่ใช้ได้กับ browser ตัวหนึ่งอาจใ้ช้ไม่ได้กับอีก browser หนึ่ง
หากท่านต้องการคุมระยะห่างของ heading ใดเป็นการเฉพาะ ทำได้โดยการสร้าง named style สำหรับ heading นั้น โดยใช้ class attribute เช่น
<h2 class="subsection">เริ่มต้น</h2>
จะได้ style rule เป็น:
h2.subsection { margin-top: 8em; margin-bottom: 3em; }
Style rule ที่้ใช้จะเริ่มโดยเรียกชื่อ tag ที่ต้องการ, ตามด้วยจุดและชื่อของ class attribute. โดยห้ามมีการเว้นว่างก่อนหรือหลังจุด มิฉะนั้น stlye rule จะไม่สามารถทำงานได้ การกำหนด style ให้ element เป็นการเฉพาะมีอีกหลายวิธี แต่การใช้ class attribute จะยืดหยุ่นมากที่่สุด
เมื่อ tag ที่อยู่ต่อกันมีการกำหนดค่า margin-bottom และ margin-top เช่น เมื่อ heading ตามด้วย paragraph ค่า margin-bottom ของ heading จะไม่นำไปนับรวมกับค่า margin-top ของ paragraph แต่จะใช้ค่าใดค่าหนึ่งที่มีค่ามากที่สุดเท่านั้น
บางครั้งท่านอาจต้้องการกำหนดระยะย่อหน้าในบรรทัดแรกของแต่ละย่อหน้า ท่านอาจใช้ style rule ต่อไปนี้ในการกำหนดค่าของ paragraph นั้น:
p { text-indent: 2em; margin-top: 0; margin-bottom: 0; }
style rule ข้างต้นจะทำการเว้นระยะย่อหน้าของแต่ละย่อหน้า 2 em
ในส่วนนี้จะอธิบายวิธีการกำหนดตัวอักษร ขนาด การทำตัวเอียง ตัวหนา และกำหนด stlye อื่นๆ
การกำหนด styles ให้ตัวอักษรทั่วไปเป็นการทำตัวเอียง ตัวหนา browsers มักแสดง em tag เป็นตัวเอียงและ strong tag เป็นตัวหนา แต่ถ้าท่านต้องการให้ em tag เป็น ตัวเอียงหนา และ strong tag เป็น ตัวพิมพ์ใหญ่หนา ทำได้โดย:
em { font-style: italic; font-weight: bold; } strong { text-transform: uppercase; font-weight: bold; }
แต่ถ้าท่านรู้สึกว่าบางส่วนตัวพิมพ์ใหญ่มากไป, ท่านอาจกำหนดให้บาง tag เช่น headings เป็นตัวเล็กเช่น:
h2 { text-transform: lowercase; }
Browser ส่วนมากจะใช้ตัวอักษรขนาดใหญ่สำหรับ heading ที่สำคัญ ถ้าท่านทำการแก้ค่าขนาด defualt (ค่าแรกเริ่ม) ท่านอาจพบว่าตัวหนังสืออาจเล็กจนไม่อาจอ่านได้ ดังนั้นเมื่อต้องการแก้ขนาดตัวอักษร ท่านควรใ้ช้หน่วยแบบ relative (อัตราส่วน) แทน
ตัวอย่างด้านล่าง เป็นการตั้งค่าขนาด heading ในแบบ เปอร์เซนต์ ซึ่งเป็นอัตราส่วนกับขนาดของตัวอักษรปกติ:
h1 { font-size: 200%; } h2 { font-size: 150%; } h3 { font-size: 100%; }
ท่านมักพบว่าชนิดตัวอักษรที่ท่านชอบนั้นอาจไม่สนับสนุนกับ browser ทุกชนิด เพื่อแก้ปัญหานี้ ท่านสามารถใส่ชนิดตัวอักษรได้หลายๆชนิดด้วยกัน โดยเรียงตามความชอบส่วนตัว แต่ก็มีอักษรบางตัวที่เป็นอักษรทั่วไปที่ browser สนับสนุนได้ทุกตัว เช่น serif, sans-serif, cursive, fantasy, หรือ monospace เป็นต้น ซึ่งท่านควรที่จะใช้อักษรเหล่านี้ไว้ท้ายสุดของ style rule ดังเช่น:
body { font-family: Verdana, sans-serif; } h1,h2 { font-family: Garamond, "Times New Roman", serif; }
ในตัวอย่างนี้ heading จะแสดงอักษร Garamond ถ้า browser ไม่สนับสนุนจะแสดงเป็น Times New Roman และถ้าไม่สามารถสนับสนุนได้อีก ก็จะแสดง เป็นตัวอักษรมาตรฐาน serif ในส่วนของ paragraph จะแสดงตัวอักษร Verdana และถ้าไม่สนับสนุนก็จะใช้ตัวอักษรมาตรฐาน sans-serif
การที่จะสามารถอ่านตัวอักษรได้ ปกตbจะขึ้นกับความสูงของตัวอักษรแบบพิมพ์เล็กมากกว่าขนาดของตัวอักษรเอง ดังนั้นตัวอักษรอย่าง Verdana จะอ่านได้ง่ายกว่าพวก Time news roman ดังนั้นจึงนิยมใช้ในส่วนของ paragraph
ปัญหาแรกที่ผู้เขียนพบเจอ คือ ปัญหาตัวอักษรที่ตำแหน่ง body ที่ไม่อยู่ใน block level element เช่น p เป็นต้น:
<h2>ฤดูใบไม้ผลิใน Wiltshire</h2> ดอกไม้บาน นกร้องเพลงและเสียงแกะร้องในทุ่ง
ตัวหนังสือที่ต่อท้าย heading อาจถูกแสดงผลผิดในบาง browser เป็น font อื่น หรือมีระยะห่างที่ไม่ถูกต้องได้ ดังนั้นท่านควรใช้ paragraph element คลุมตัวหนังสือดังกล่าวเสีย เช่น
<h2>ฤดูใบไม้ผลิใน Wiltshire</h2> <p>ดอกไม้บาน นกร้องเพลงและเสียงแกะร้องในทุ่ง </p>
อีกปัญหาหนึ่ง คือ การตั้งค่า font family ให้ pre elements บาง browser จะลืมค่า font family เมื่อคุณตั้งค่าขนาด font หรือ property อื่นๆให้ tag pre
pre { font-family: monospace; }
ปัญหาสุดท้ายคือการตั้งค่า font family ให้ heading, p และ ul ถ้าท่านต้องการกำหนดขอบหรือฉากหลังให้ element อย่าง div การตั้งค่า font นี้จะช่วยแก้ปัญหา browser ลืมใช้ font fmaily ที่กำหนดไว้ก่อนแล้ว แล้วไปใช้ default font แทน
h1,h2,h3,h4,h5,p,ul { font-family: sans-serif; }
ท่านสามารถเพิ่มขอบรอบๆ heading, list, paragraph หรือ กลุ่ม element ข้างต้นใน tag divได้โดยง่าย เช่น:
div.box { border: solid; border-width: thin; width: 100%; }
ในบาง browser ถ้าท่านไม่กำหนด "width" property ท่านอาจเจอปัญหาว่า ขอบด้านขวาอยู่ห่างจากทางขวามากเกินไป เมื่อกำหนด class ข้างต้นแล้วอาจเรียกใช้โดย:
<div class="box"> เนื้อหาส่วนนี้อยู่ใน element DIV จะถูกล้อมกรอบด้วยขอบแบบบาง </div>
ท่านควรทราบว่าชนิดขอบใน CSS มีไม่มากนัก คือ dotted, dashed, solid, double, groove, ridge, inset and outset โดยมี property border-width เป็นตัวใช้ระบุขนาด และมีค่าเป็น thin, medium, thick หรืออาจระบุเป็นขนาดไปเลยได้เป็น 0.1 em และมี border-color ใช้กำหนดสีขอบด้วย
เพื่อผลลัพธ์ที่สวยงาม ท่านอาจใช้สีให้ฉากหลังเป็นสีทึบหรือภาพต่อกัน โดยใช้ background property ซึ่จะได้ div.box ดังตัวอย่างด้านล่าง:
div.color { background: rgb(204,204,255); padding: 0.5em; border: none; }
ถ้าท่านไม่ระบุ property ของขอบที่ใช้ให้ชัดเจนแล้ว บาง browser จะลงสี background ใต้ตัวอักษรแต่ะตัวเท่านั้น ตัว padding property เป็นการเพิ่มที่ว่างระว่างรอยต่อของบริเวณสีกับตัวหนัังสือข้างใน
ท่านสามารถกำหนดค่า padding ทั้งด้านซ้าย บน ขวา ล่างได้โดยใช้ padding-left, padding-top, padding-right and padding-bottom properties, เช่น padding-left: 1em.
กรณีที่ท่านต้องสร้างขอบเพียงด้านใดด้านหนึ่ง ท่านสามารถควบคุม property ของขอบของแต่ละด้านได้โดยอิสระ โดยใช้ border-left, border-top, border-right และ border-bottom กับตัว suffix ที่ถูกต้อง เช่น style, width หรือ color เป็นต้น
p.changed { padding-left: 0.2em; border-left: solid; border-right: none; border-top: none; border-bottom: none; border-left-width: thin; border-color: red; }
โค้ดข้างต้นจะสร้างขอบด้านซ้ายสีแดงใน paragraph ที่ใช้ class "changed".
ตัวอย่างการตั้งค่าสีได้กล่าวไว้แล้วในตอนต้นของบทความ เช่น:
body { color: black; background: white; } strong { color: red; }
ในตัวอย่างข้างบนเป็นการตั้งค่าสีตัวอักษรเป็นสีดำและพื้นหลังเป็นสีขาว ส่วน tag strong เป็นสีแดง ค่าชื่อสีมาตรฐานมีอยู่ทั้งสิ้น 16 ชื่อด้วยกัน ซึ่งจะอธิบายไว้ด้านล่าง ท่านอาจใช้ค่าสีในระบบ rgb แทนได้เช่นกัน โดยมีแม่สี แดง เขียว น้ำเงิน จะมีค่า 0-255 เช่น rgb(255, 0, 0) แทนสีแดง และท่านยังไช้ค่าสีฐาน 16 ได้เช่นกัน โดยค่าสีฐาน 16 จะใช้สัญลักษณ์ # นำหน้าตามด้วยเลขฐาน 16 ท่านสามารถเทียบค่าสีระบบ rgb และ ค่าสีในเลขฐาน 16 ได้โดยใช้เครื่องมือแปลงค่าสีด้านล่าง
ท่านสามารถใช้ CSS ในการกำหนดค่าสีให้กับลิ้ง ไม่ว่าจะเป็นสีลิ้งขณะที่ผู้ชมยังไม่ได้คลิ๊กชม หรือสีของลิ้งขณะที่คลิ๊ก แม้แต่สีลิ้งเมื่อเอาเมาส์วางเหนือลิ้งก็ตามที
:link { color: rgb(0, 0, 153); } /* สำหรับลิ้งที่ยังไม่ได้รับชม */ :visited { color: rgb(153, 0, 153); } /* สำหรับฃิ้งที่รับชมแล้ว */ a:active { color: rgb(255, 0, 102); } /* สำหรับลิ้งที่ถูกคลิ๊ก */ a:hover { color: rgb(0, 96, 255); } /* สำหรับลิ้งที่มีเมาส์วางเหนือ */
บางครั้งท่านอาจไม่ต้องการให้ลิ้งที่ปรากฏมีเส้นด้านล่าง ท่านก็สามารถทำได้โดยตั้งค่าที่ property text-decoration เป็น none:
a.plain { text-decoration: none; }
ซึ่งจะบังคับให้ไม่มีเส้นด้านใต้ ดังนี้:
คำนี้ <a class="plain" href="what.html">ไม่มีเส้นใต้</a>
คนทั่วไปเมื่อเห็นข้อความมีเส้นขีดด้านใ้ต้มักเข้าใจว่าเป็นลิ้ง ดังนั้นท่านควรจะปล่อยให้ส่วนที่ท่านต้องการให้เป็นลิ้ง มีเส้นขีดไว้คงเดิม เช่นเดียวกับสีของลิ้ง ที่คนส่วนมากจะเข้าใจว่าถ้ามีข้อความสีน้ำเงินและมีเส้นขีดด้านใต้เป็นลิ้ง ท่านจึงควรที่จะปล่อยสีของตัวอักษรบริเวณที่ท่านต้องการทำลิ้งให้เป็นสีเดิม ยกเว้นว่า ฉากหลังกับสีอักษรจะทำให้ยากต่อการอ่าน
เมื่อมีการใช้สีในหน้าเพจ ท่านควรระลึกไว้ว่า ผู้ชาย 5- 10 % ตาบอดสี ซึ่งทำให้ยากต่อการแยกสีระหว่างสี แดง และ เขียว หรือ ระหว่าง สีเหลืองกับ น้ำเงิน ซึ่งบางทีก็มีผู้ชมส่วนน้อยมากที่ไม่อาจแยกสีใดๆได้เลย ท่านจึงควรเลี่ยงที่จะใช้สีฉากหน้าและฉากหลังที่จะทำให้ยากต่อการอ่านของผู้ชมที่ตาบอดสีด้วย
ชื่อสีมารตฐานที่สามารถนำมาใช้เป็นค่ากำหนดสีได้ มีดังนี้ คราม, ดำ, น้ำเงิน, เลือดหมู, เทา, เขียว, เขียวมะนาว, ม่วงชมพู, ฟ้า, เขียวมะกอก, ม่วง, แดง, เงิน, ฟ้าเขียว, ขาว, และ เหลืองซึ่งมี 16 สี ที่ระบุใน HTML 3.2 และ 4.01 สอดคล้องกับค่าสีพื้นฐาน VGA บน PC บาง browser อาจรับรู้ชื่อสีมากว่านี้ แต่ทา่นไม่ควรใช้
ดำ = "#000000" | เขียว = "#008000" |
||
เงิน = "#C0C0C0" | เขียวมะนาว = "#00FF00" |
||
เทา = "#808080" | เขียวมะกอก = "#808000" |
||
ขาว = "#FFFFFF" | เหลือง = "#FFFF00" |
||
เลือดหมู = "#800000" | นำ้เงิน = "#000080" |
||
แดง = "#FF0000" | ฟ้า = "#0000FF" |
||
ม่วง = "#800080" | ฟ้าเขียว = "#008080" |
||
ม่วงชมพู = "#FF00FF" | คราม = "#00FFFF" |
จากตารางจะได้ว่าสี "#800080" หมายถึงสี "ม่วง"
ค่าสี "#FF9999" เป็นค่าสีในเลขฐาน 16 โดยแทนค่าสี แดง เขียว น้ำเงิน เลขสองตัวเลขแทนค่าสีแดง ถัดมาอีกสองตัวแทนสีเขียว และเลขสองตัวสุดท้ายแทนสีน้ำเงิน ซึ่งปกติในฐาน 10 ค่า 3 ชุดนี้จะมีค่าระหว่าง 0 - 255 ถ้าท่านรู้ค่าสีในฐาน 10 ท่านอาจใช้เครื่องคิดเลขแปลงเป็นฐาน 16 ได้
เครื่องคอมพิวเตอร์รุ่นใหม่ๆสามารถรองรับสีได้หลายล้านเชดสี แต่เครื่องระบบเก่าวามารถใช้สีได้ครั้งละ 256 สีพร้อมๆกันเท่านั้น ดังนั้น browser ซึ่งใช้สีจากตารางสีคงที่จึงทำให้เกิดปัญหาสีเปื้อน (speckling effect) เพราะ browser พยายามที่จะใช้สีแท้ (true color) ที่จุดใดๆในภาพ อย่างไรก็ตามปัญหานี้จะหมดไปจากการที่เครื่องรุ่นใหม่ๆเข้ามาแทนที่
Browser ส่วนมากสามารถรองรับค่าสีที่เรียกว่าสีปลอดภัย (browser safe) ที่สร้างจากการไล่สี 6 แถบจากแม่สี แดง เขียว และน้ำเงิน มาผสมกัน ถ้าท่านใช้สีจากสีเหล่านี้ จะสามารถเลี่ยงปัญหาสีเปื้อนได้ ซึ่งมีประโยชน์มากสำหรับการกำหนดสีฉากหลังของภาพ
ถ้า browser ใช้สีปลอดภัยเหล่านี้ ฉากหลังของหน้าเพจจะใช้สีใกล้เคียงกับสีในสีปลอดภัยมากที่สุด แต่ถ้าท่านไม่ใช้สีฉากหลังเป็นสีปลอดภัยแล้ว ท่านอาจเสี่งที่จะได้สีที่ต่างออกไปขึ้นกับว่าคอมพิวเตอร์นั้นใช้สีจากตัชนี (index) หรือสีแท้ (true color)
สีปลอดภัยเกิดจากการผสมสีระหว่างสี แดง เขียว น้ำเงินจากค่าสีต่อไปนี้
:RGB | 00 | 51 | 102 | 153 | 204 | 255 |
---|---|---|---|---|---|---|
Hex | 00 | 33 | 66 | 99 | CC | FF |
ตารางด้านล่างเป็นค่าสีปลอดภัยที่เกิดจากการผสมสีโดยอ้างอิงจากค่าสีในเลขฐาน 16 ต้องขอบคุณ Bob Stein ที่จัดทำตารางสีประกอบมาให้.
FFF FFF |
CCC CCC |
999 999 |
666 666 |
333 333 |
000 000 |
FFC C00 |
FF9 900 |
FF6 600 |
FF3 300 |
||||||
99C C00 |
CC9 900 |
FFC C33 |
FFC C66 |
FF9 966 |
FF6 633 |
CC3 300 |
CC0 033 |
||||||||
CCF F00 |
CCF F33 |
333 300 |
666 600 |
999 900 |
CCC C00 |
FFF F00 |
CC9 933 |
CC6 633 |
330 000 |
660 000 |
990 000 |
CC0 000 |
FF0 000 |
FF3 366 |
FF0 033 |
99F F00 |
CCF F66 |
99C C33 |
666 633 |
999 933 |
CCC C33 |
FFF F33 |
996 600 |
993 300 |
663 333 |
993 333 |
CC3 333 |
FF3 333 |
CC3 366 |
FF6 699 |
FF0 066 |
66F F00 |
99F F66 |
66C C33 |
669 900 |
999 966 |
CCC C66 |
FFF F66 |
996 633 |
663 300 |
996 666 |
CC6 666 |
FF6 666 |
990 033 |
CC3 399 |
FF6 6CC |
FF0 099 |
33F F00 |
66F F33 |
339 900 |
66C C00 |
99F F33 |
CCC C99 |
FFF F99 |
CC9 966 |
CC6 600 |
CC9 999 |
FF9 999 |
FF3 399 |
CC0 066 |
990 066 |
FF3 3CC |
FF0 0CC |
00C C00 |
33C C00 |
336 600 |
669 933 |
99C C66 |
CCF F99 |
FFF FCC |
FFC C99 |
FF9 933 |
FFC CCC |
FF9 9CC |
CC6 699 |
993 366 |
660 033 |
CC0 099 |
330 033 |
33C C33 |
66C C66 |
00F F00 |
33F F33 |
66F F66 |
99F F99 |
CCF FCC |
CC9 9CC |
996 699 |
993 399 |
990 099 |
663 366 |
660 066 |
|||
006 600 |
336 633 |
009 900 |
339 933 |
669 966 |
99C C99 |
FFC CFF |
FF9 9FF |
FF6 6FF |
FF3 3FF |
FF0 0FF |
CC6 6CC |
CC3 3CC |
|||
003 300 |
00C C33 |
006 633 |
339 966 |
66C C99 |
99F FCC |
CCF FFF |
339 9FF |
99C CFF |
CCC CFF |
CC9 9FF |
996 6CC |
663 399 |
330 066 |
990 0CC |
CC0 0CC |
00F F33 |
33F F66 |
009 933 |
00C C66 |
33F F99 |
99F FFF |
99C CCC |
006 6CC |
669 9CC |
999 9FF |
999 9CC |
993 3FF |
660 0CC |
660 099 |
CC3 3FF |
CC0 0FF |
00F F66 |
66F F99 |
33C C66 |
009 966 |
66F FFF |
66C CCC |
669 999 |
003 366 |
336 699 |
666 6FF |
666 6CC |
666 699 |
330 099 |
993 3CC |
CC6 6FF |
990 0FF |
00F F99 |
66F FCC |
33C C99 |
33F FFF |
33C CCC |
339 999 |
336 666 |
006 699 |
003 399 |
333 3FF |
333 3CC |
333 399 |
333 366 |
663 3CC |
996 6FF |
660 0FF |
00F FCC |
33F FCC |
00F FFF |
00C CCC |
009 999 |
006 666 |
003 333 |
339 9CC |
336 6CC |
000 0FF |
000 0CC |
000 099 |
000 066 |
000 033 |
663 3FF |
330 0FF |
00C C99 |
009 9CC |
33C CFF |
66C CFF |
669 9FF |
336 6FF |
003 3CC |
330 0CC |
||||||||
00C CFF |
009 9FF |
006 6FF |
003 3FF |
ตารางสี ตารางสีปลอดภัยสำหรับ browser สามารถหาได้โดยไม่มีค่าใช้จ่ายในรูปแบบไฟล์กราฟฟิกที่นิยมได้จาก www.visibone.com.
Browser เก่า เช่น Netscape 4.0 และ Internet Explorer 4.0 ไม่รองรับ CSS สำหรับ browser นี้ท่านต้องใช้โค้ด HTML ในการกำหนด style แทน
ท่านกำหนดสีที่ใช้ได้ใน tag BODY ตัวอย่างข้างล่างนี้กำหนดให้ฉากหลังเป็นสีขาวและตัวอักษรสีดำ:
<body bgcolor="white" text="black">
element BODY ต้องวางไว้ก่อนเนื้อหาที่มองเห็นของหน้าเพจ เช่นก่อน heading แรก ท่านสามารถคุมสีของส่วนลิ้งได้โดยใช้ attribute ดังนี้:
ตัวอย่างนี้เป็นการกำหนดค่าเหล่านี้:
<body bgcolor="white" text="black" link="navy" vlink="maroon" alink="red">
ท่านสามารถกำหนดฉากหลังของเพจเป็นรูปภาพได้โดยใช้ attribute background เพื่อระบุที่อยู่ของภาพ เช่น
<body bgcolor="white" background="texture.jpeg" text="black" link="navy" vlink="maroon" alink="red">
และท่านควรกำหนดค่าสีฉาหลังด้วย bgcolor attribute กรณีที่ browser ไม่สามารถแสดงภาพได้ โดยท่านต้องตรวจสอบให้ดีว่าสีดังกล่าวไม่้ทำให้เกิดความยากต่อการอ่านด้วย ตัวอย่างที่ทำให้เกิดความยากในการอ่านเช่น:
<body bgcolor="black">
Browser ส่วนมากแสดงตัวหนังสือเป็นสีดำ ทำให้แสดงผลตัวอักษรดำบนฉากสีดำ! นอกจากนี้ผู้ชมหลายคนประสบปัญหาจากความบอดสี เช่นสีเขียวอาจมองเห็นเป็นสีน้ำตาลอีกด้วย
อีกปัญหา คือ เมื่อต้องการพิมพ์หน้าเว็บเพจ browser หลายตัวจะไม่แสดงสีฉากหลังเมื่อสั่งพิมพ์ ดังนั้นหากใช้อักษรสีขาว เมื่อพิมพ์จะได้เป็นหน้าเปล่าๆออกมา ตัวอย่างที่กล่าวจะเกิดขึ้นเมื่อใช้โค้ดด้านล่าง:
<body bgcolor="black" text="white">
ท่านสามารถใช ้bgcolor attribute ในตารางได้เช่น
<table border="0" cellpadding="5"> <tr> <td bgcolor="yellow">ตารางสี</td> </tr> </table>
ตารางสามารถใช้เพื่อผลในการจัดหน้าได้หลายแบบ แต่ในอนาคตการจัดหน้าเว็บจะถูกแทนที่ด้วย style sheet แทน ซึ่งจะช่วยให้การจัดการหน้าเว็บเป็นไปด้วยความง่ายดายยิ่งขึ้น
tag FONT สามารถใช้เลือกชนิดอักษร ตั้งขนาด และสีได้ เช่น:
ประโยคนี้ <font color="yellow">คำ</font> สีเหลือง.
face attribute ใช้ในการตั้งชนิดตัวอักษรตามลำดับที่เลือกไว้ เช่น
<font face="Garamond, Times New Roman">เนื้อหา ...</font>
size attribute ใช้เพื่อเลือกขนาดอักษรมีค่าระหว่าง 1 - 6 ถ้ามีเครื่องหมาย +, - อยู่ด้านหน้า ขนาดที่ได้จะเป็นอัตราส่วน เช่นถ้าต้องการให้ขนาดใหญ่กว่าเดิม 1 จนาดสามารถใช้ "+1" เมื่อต้องการให้ขนาดลดลง 1 ขนาดสามารถใช้ "-1" เช่น
<font size="+1" color="maroon" face="Garamond, Times New Roman">เนื้อหา ...</font>
สิ่งที่ท่านควรระวังคือ อย่าใช้สีที่ทำให้ยากต่อการอ่านต่อผู้บอดสี และอย่าใช้การตั้งขนาดในการทำ heading ท่านควรใช้ tag h1 ถึง h6 แทนเมื่อต้องการแสดง heading
สำหรับอ่านเพิ่มเติมเรื่อง CSS และเครื่องมือที่รองรับ ท่านสามารถศึกษาได้ที่ W3C home page for CSS ซึ่งจะมีรายชื่อหนังสือเกี่ยวกับ HTML และ CSS ให้ศึกษาเพิ่มเติมได้ เช่น "Raggett on HTML4" ตีพิมพ์ในปี 1998 โดย Addison Wesley และสำหรับหนังสือที่เน้นรายละเอียดเกี่ยวกับ CSS สามารถอ่านได้จาก "Cascading Style Sheets" โดย Håkon Wium Lie and Bert Bos ตีพิมพ์โดย Addison Wesley ซึ่งจะกล่าวถึง CSS ในเชิงลึกเกี่ยวกับสถาปัตยกรรมของ CSS
แก้ไขคำผิดของหนังสือสามารถดูได้ที่ แก้คำผิดผู้เขียนตั้งใจว่าจะเขียนเรื่องแนะนำการใช้งาน CSS เกี่ยวกับการกำหนดตำแหน่ง การพิมพ์ และการใช้ aural style sheet ต่อไป
ขอให้ท่านโชคดีกับการใช้งาน