Search
Close this search box.
ความแตกต่างของหน่วยวัดใน CSS Units

ความแตกต่างของหน่วยวัดใน CSS Units

Last updated on 2 months ago,
1 mins read

CSS Units เป็นเครื่องมือสำคัญที่ใช้ในการกำหนดขนาดขององค์ประกอบต่าง ๆ บนหน้าเว็บ ไม่ว่าจะเป็นฟอนต์ ขนาดของกล่อง หรือความกว้าง และความสูงของรูปภาพ หน่วยวัดที่เลือกใช้สามารถส่งผลต่อการแสดงผลของหน้าเว็บโดยตรง การเลือกใช้หน่วยวัดที่เหมาะสมจะช่วยให้การออกแบบเว็บมีความสวยงาม และตอบสนองต่อทุกอุปกรณ์ได้อย่างลงตัว

ประเภทของ CSS Units

CSS Units สามารถแบ่งออกเป็นสองประเภทหลักๆ คือ Absolute Units (หน่วยคงที่) และ Relative Units (หน่วยสัมพันธ์) โดยแต่ละประเภทมีลักษณะและการใช้งานที่แตกต่างกันไป

Absolute Units (หน่วยคงที่)

หน่วยคงที่ หรือ Absolute Units เป็นหน่วยวัดที่มีขนาดตายตัว ไม่เปลี่ยนแปลงตามขนาดของหน้าจอหรือขนาดฟอนต์พื้นฐาน หน่วยคงที่เหมาะสำหรับการกำหนดขนาดที่ต้องการความแม่นยำสูง เช่น:

px (pixel)

หน่วยที่ใช้บ่อยที่สุดใน CSS เป็นหน่วยที่อิงกับจุดภาพบนหน้าจอ (Screen pixel) การใช้ px จะให้ผลลัพธ์ที่ชัดเจนและควบคุมได้ง่าย ข้อดี คือ สามารถกำหนดขนาดที่แน่นอน แต่ข้อเสีย คือ ไม่สามารถปรับตัวตามขนาดหน้าจอที่ต่างกันได้ ทำให้บางครั้งไม่เหมาะกับการออกแบบที่ต้องการความยืดหยุ่น

cm, mm, in

หน่วยวัดเหล่านี้อิงกับขนาดที่แท้จริงในโลกความเป็นจริง เช่น เซนติเมตร (cm), มิลลิเมตร (mm), และนิ้ว (in) แม้จะไม่ค่อยถูกใช้งานบนเว็บ แต่เหมาะสำหรับงานพิมพ์ที่ต้องการความแม่นยำในการวัดขนาด

Relative Units (หน่วยสัมพันธ์)

หน่วยสัมพันธ์ หรือ Relative Units เป็นหน่วยวัดที่สามารถปรับเปลี่ยนได้ตามบริบท เช่น ขนาดของฟอนต์ หรือหน้าจอ Relative Units ทำให้การออกแบบเว็บมีความยืดหยุ่น และเหมาะสมกับทุกขนาดหน้าจอ เช่น:

% (percent)

หน่วยที่สัมพันธ์กับขนาดขององค์ประกอบพาเรนต์ (parent element) ใช้บ่อยในการตั้งค่าความกว้างหรือความสูงเพื่อให้ปรับตามขนาดของพาเรนต์ (parent element)

<div class='container'>
    <div class='card'>
        Hello
    </div>
</div>Code language: HTML, XML (xml)
.container {
    width: 300px;
    border: 2px solid black;
    padding: 20px;
}

.card {
    width: 60%;
    border: 2px solid red;
    padding: 10px;
}Code language: CSS (css)

จากตัวอย่างจะเห็นได้ว่า .card มีขนาด 60% หรือ 180px (60% ของ 300) เมื่ออยู่ใน .container ที่มีขนาด 300px ซึ่งหาก .container มีการเปลี่ยนค่าขาดของ .card ก็จะเปลี่ยนตามไปด้วย

em

หน่วยวัดที่สัมพันธ์กับขนาดฟอนต์ของพาเรนต์ (parent element) โดย 1em จะเท่ากับ 100% หรือคิดเป็น 1 เท่า ของค่าเริ่มต้นนั่นเอง การใช้ em เหมาะกับการตั้งค่าที่ต้องการให้ขนาดปรับตามขนาดฟอนต์พื้นฐาน แต่ข้อเสีย คือ เมื่ออยู่ในโครงสร้างที่มีการซ้อนทับขององค์ประกอบหลายชั้นค่าของ em อาจเปลี่ยนไป และคาดเดาได้ยาก

body { font-size: 62.5%; }

h1 { font-size: 2.4em; }

p { font-size: 1.4em; }Code language: CSS (css)

จากตัวอย่างเรามีการกำหนดค่า font-size ใน body ให้มีขนาด 62.5% หรือ 10px (มาจาก 0.625 * 16) ซึ่งหากเราไม่กำหนดจะเท่ากับ 16px ซึ่งก็คือค่าเริ่มต้นของ browser นั้นเอง 

h1 ที่มี font-size เป็น 2.4 em ก็จะเท่ากับ 10 * 2.4 = 24px

p ที่มี font-size เป็น 1.4 em ก็จะเท่ากับ 10 * 1.4 = 14px

body { font-size: 62.5%; }

.container { font-size:1.6em; }

.container h1 { font-size:2.4em; }

.container p { font-size:1.6em; }Code language: CSS (css)

จากตัวอย่างเรามีการกำหนดค่า font-size ใน body ให้มีขนาด 62.5% เหมือนเดิม แต่เรามีการกำหนดค่า font-size เพิ่มเติมใน .container ให้มีขนาด 1.6em เท่ากับ 10 * 1.6 = 16px

h1 ที่เราตั้งใจจะให้มีขนาด 24px เหมือนเดิมจะถูกแทนค่าเป็น 38.4px หรือก็คือ 16 * 2.4 = 38.4

p ที่เราตั้งใจจะให้มีขนาด 16px เหมือนเดิมจะถูกแทนค่าเป็น 25.6px หรือก็คือ 16 * 1.6 = 25.6

rem (root em)

คล้ายกับ em แต่สัมพันธ์กับขนาดฟอนต์ของ root element (html) ทำให้การคำนวณขนาดง่ายขึ้นในกรณีที่มีการซ้อนกันขององค์ประกอบหลายชั้น rem ถูกใช้บ่อยในการตั้งค่าขนาดฟอนต์เพื่อให้สามารถปรับตามขนาดของหน้าจอได้

html { font-size: 62.5%; }

body { font-size: 1.4rem; }

h1 { font-size: 2.4rem; }Code language: CSS (css)

จากตัวอย่างเรามีการกำหนดค่า font-size ใน html ให้มีขนาด 62.5% หรือ 10px (มาจาก 0.625 * 16) ซึ่งหากเราไม่กำหนดจะเท่ากับ 16px ซึ่งก็คือค่าเริ่มต้นของ browser นั้นเอง

body ที่มี font-size เป็น 1.4rem ก็จะเท่ากับ 10 * 1.4 = 14px

h1 ที่มี font-size เป็น 2.4rem ก็จะเท่ากับ 10 * 2.4 = 24px

html { font-size: 62.5%; }

body { font-size: 1.4rem; }

.container { font-size: 1.4rem; }

.container h1 { font-size: 2.4rem; }Code language: CSS (css)

จากตัวอย่างเรามีการกำหนดค่า font-size ใน html ให้มีขนาด 62.5% และ body ขนาด 1.4rem เหมือนเดิม แต่เรามีการกำหนดค่า font-size เพิ่มเติมใน .container ให้มีขนาด 1.4rem เท่ากับ 10 * 1.4 = 14px

h1 ที่มี font-size เป็น 2.4rem ก็จะยังคงเท่ากับ 10 * 2.4 = 24px เพราะมันได้ทำการอ้างอิง Root Element หรือ html อยู่เสมอ

vw, vh

หน่วยที่สัมพันธ์กับขนาดของ viewport (หน้าจอ) โดย 1vw เท่ากับ 1% ของความกว้างของหน้าจอ และ 1vh เท่ากับ 1% ของความสูงของหน้าจอ ใช้ในการออกแบบเว็บที่ต้องการให้ขนาดองค์ประกอบปรับตามขนาดหน้าจอโดยตรง

h1 { font-size: 24vw; }Code language: CSS (css)

vmin, vmax

หน่วยที่สัมพันธ์กับขนาดของ viewport (หน้าจอ) ที่เล็กที่สุดหรือใหญ่ที่สุด หน่วยเหล่านี้ช่วยให้การออกแบบมีความยืดหยุ่นมากขึ้นเมื่อต้องปรับตามสัดส่วนของหน้าจอ

การเลือกใช้ CSS Units ในสถานการณ์ต่าง ๆ

การเลือกหน่วยวัดที่เหมาะสมขึ้นอยู่กับลักษณะ และเป้าหมายของการออกแบบเว็บ

การออกแบบ Responsive

ในการออกแบบเว็บที่ต้องการให้ตอบสนองต่อทุกขนาดหน้าจอ ควรเลือกใช้หน่วยสัมพันธ์อย่าง rem, vw, และ vh ซึ่งสามารถปรับขนาดตามหน้าจอได้ โดย rem เหมาะกับการตั้งค่าขนาดฟอนต์ ในขณะที่ vw และ vh เหมาะสำหรับการตั้งค่าความกว้างและความสูงขององค์ประกอบบนหน้าเว็บ

การตั้งค่าขนาดฟอนต์ที่ยืดหยุ่น

สำหรับการจัดการขนาดของฟอนต์ การใช้ rem จะช่วยให้ขนาดฟอนต์สามารถปรับตามขนาดของหน้าจอได้อย่างเหมาะสม การตั้งค่าฟอนต์ด้วย rem ทำให้การเปลี่ยนแปลงขนาดฟอนต์บนอุปกรณ์ต่าง ๆ ทำได้ง่ายขึ้น โดยไม่ต้องแก้ไขโค้ดมาก

การจัดวาง Layout และ Grid

การใช้หน่วยสัมพันธ์ เช่น %, vw, vh ในการตั้งค่าขนาดของ layout หรือ grid จะช่วยให้การจัดวางองค์ประกอบต่างๆ มีความยืดหยุ่นมากขึ้น โดยสามารถปรับตัวตามขนาดของหน้าจอได้ ซึ่งเหมาะสำหรับการออกแบบเว็บที่ต้องการรองรับหลายขนาดหน้าจอ

สรุป

การเลือกใช้หน่วยวัดใน CSS ไม่เพียงแต่ส่งผลต่อการแสดงโครงสร้างบนหน้าเว็บที่สวยงามเท่านั้น แต่ยังมีผลต่อประสบการณ์การใช้งานของผู้ใช้อีกด้วย การทำความเข้าใจข้อดีข้อเสียของหน่วยวัดแต่ละประเภทจะช่วยให้เราสามารถเลือกใช้งานได้อย่างเหมาะสม และออกแบบเว็บไซต์ได้อย่างมีประสิทธิภาพ การรู้จักผสมผสานการใช้งานหน่วยวัดเหล่านี้จะทำให้เราสามารถสร้างสรรค์หน้าเว็บที่สวยงาม และใช้งานได้ดีในทุกอุปกรณ์

แหล่งอ้างอิง:

Tagged with:
ผู้เขียน
Danai Phianphutthikorn
Founder, Writer, Designer, Videography, YouTuber

บทความที่เกี่ยวข้อง

สำหรับเพื่อนๆ ที่กำลังมองหา Code Editor อยู่แล้วละก็ ต้องไม่พลาดบทความนี้ครับ เพราะผมได้รวบรวม Code Editor ยอดนิยมมาฝากเพื่อนๆ กัน แถมใช้ได้ฟรีอีกต่างหาก
Last Updated on 2 months ago
มาทำความรู้จักกับ ads.txt เครื่องมือตรวจสอบ และป้องกันการถูกปลอมแปลงข้อมูล ที่จะช่วยให้เราไม่เสียรายได้ไปจาก Ad Fraud หรือการโกงโฆษณาครับ
Last Updated on 2 months ago
รู้หรือไม่ว่า CDN สามารถทำให้เว็บไซต์ของคุณโหลดเร็วขึ้น และปลอดภัยยิ่งขึ้นได้? มาดูกันว่า CDN คืออะไร มีประโยชน์อย่างไร?
Last Updated on 2 months ago
เขียน CSS ให้อ่านโค้ดได้ง่าย ลดความซ้ำซ้อนของโค้ดด้วย BEM CSS มาตรฐานการเขียน CSS ที่ช่วยให้โค้ดเป็นระเบียบ เข้าใจง่าย เหมาะสำหรับนักพัฒนาเว็บไซต์
Last Updated on 2 months ago
ทำความรู้จักกับ Error Code ที่พบบ่อยบนเว็บไซต์ พร้อมวิธีแก้ไขเบื้องต้น เพื่อช่วยให้เว็บไซต์ของเราทำงานได้ราบรื่นและเพิ่มประสบการณ์การใช้งานที่ดีให้กับผู้ใช้
Last Updated on 2 months ago