CSS - การใช้ฟังก์ชัน Calc() ใน CSS
CSS (Cascading Style Sheets) เป็นหนึ่งในภาษาโปรแกรมที่สำคัญที่สุดในการออกแบบเว็บไซต์ให้มีรูปแบบและประสบการณ์ที่ดียิ่งขึ้น นักพัฒนาหลายคนอาจจะคุ้นเคยกับการกำหนดขนาด ความกว้าง ความสูง และอื่น ๆ ขององค์ประกอบเว็บไซต์ด้วยค่าแบบคงที่ เช่น พิกเซล (px), เปอร์เซ็นต์ (%) หรือหน่วยวัดอื่น ๆ แต่หลายครั้งเราอาจพบเจอสถานการณ์ที่การคำนวณต้องซับซ้อนกว่าเดิม
ในบทความนี้ เราจะมาพูดถึงฟังก์ชัน `calc()` ใน CSS ที่ถือว่าเป็นหนึ่งในเครื่องมือที่ทรงพลังและจำเป็นอย่างยิ่งต่อการออกแบบเว็บไซต์ โดยเฉพาะอย่างยิ่งเมื่อคุณต้องการจัดการกับเลย์เอาท์ที่ซับซ้อน
`calc()` เป็นฟังก์ชันใน CSS ที่ช่วยให้เราสามารถทำการคำนวณค่าในสไตล์ชีตได้แบบไดนามิก ไม่ว่าจะเป็นการบวกลบคุณค่าของหน่วยที่ต่างกัน เช่น px กับ % หรือแม้กระทั่งการคูณและการหาร โดยที่คงความยืดหยุ่นและยังสามารถปรับขนาดตามหน้าจอหรือองค์ประกอบอื่น ๆ
รูปแบบการใช้ `calc()` นั้นง่ายนิดเดียว แต่สำคัญที่เราต้องใส่ใจกับรายละเอียดเล็กๆ น้อยๆ:
.element {
width: calc(100% - 50px);
height: calc(50vh - 20px);
}
ในตัวอย่างนี้ เรากำหนดความกว้างของ `.element` ให้มีค่าความกว้างทั้งหมด 100% ของพ่อแม่ (parent) ลบด้วย 50 พิกเซล และความสูงอยู่ที่ 50% ของความสูงหน้าต่างบราวเซอร์ (viewport height) ลบด้วย 20 พิกเซล
ความยืดหยุ่นสูง
`calc()` ช่วยปรับแต่งค่าต่าง ๆ ได้อย่างยืดหยุ่น คุณสามารถคำนวณขนาดที่สัมพันธ์กับอร์ให้มีผลกับการออกแบบเว็บไซต์ตามเงื่อนไขที่ต้องการได้
ลดการใช้ JavaScript
หลายครั้งการคำนวณขนาดต้องใช้ JavaScript เพื่อปรับค่าต่างๆ ตามเงื่อนไขที่เปลี่ยนแปลง แต่ `calc()` ช่วยลดความซับซ้อนนี้ โดยให้ CSS จัดการคำนวณได้ทันที
การจัดการเลย์เอาท์ที่ง่าย
ลองนึกภาพว่าคุณต้องการจัดวางองค์ประกอบสองอันให้อยู่คู่กัน โดยที่ช่องว่างระหว่างนั้นปรับเปลี่ยนได้ตามความกว้างของหน้าเว็บ `calc()` จะช่วยให้คุณทำสิ่งนี้ได้อย่างง่ายดาย
แม้ว่า `calc()` จะเป็นเครื่องมือที่ทรงพลัง แต่การใช้งานต้องมีความรอบคอบเพราะ:
- ไม่สามารถใช้ฟังก์ชันภายในฟังก์ชันได้ เช่น ไม่ควรใช้ `calc()` ซ้อนกันภายในอีก `calc()`
- ควรระวังการใช้กับ Browser เก่าที่อาจไม่รองรับการใช้ `calc()` แต่ปัจจุบันส่วนใหญ่จะรองรับอยู่แล้ว
ลองพิจารณาการใช้งานในกรณีต่อไปนี้:
<div class="container">
<header class="header">Header</header>
<main class="content">Content</main>
<footer class="footer">Footer</footer>
</div>
.container {
height: 100vh;
}
.header, .footer {
height: 50px;
}
.content {
height: calc(100vh - 100px); /* หักลบความสูง header และ footer */
}
ในตัวอย่างนี้ เรามีการกำหนดเลย์เอาท์แบบพื้นฐานที่มี header, content และ footer โดยใช้ `calc()` สำหรับส่วน content เพื่อให้มั่นใจได้ว่าความสูงของ content จะอัตโนมัติโดยไม่ต้องคำนวณด้วยตัวเอง
ฟังก์ชัน `calc()` ใน CSS เป็นหนึ่งในเครื่องมือที่ทำให้นักพัฒนาสามารถสร้างดีไซน์ที่ยืดหยุ่นและปรับเปลี่ยนตามเงื่อนไขต่าง ๆ ได้อย่างง่ายดาย แต่อย่าลืมว่าควรศึกษาการใช้งานให้เข้าใจและระมัดระวังในการใช้งานเพื่อเพิ่มประสิทธิภาพสูงสุดในการออกแบบเว็บไซต์
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมและพัฒนาเว็บไซต์ สามารถศึกษาเพิ่มเติมได้ที่ EPT ซึ่งเป็นโรงเรียนที่เชี่ยวชาญในการสอนการเขียนโปรแกรม และพร้อมที่จะเปิดโลกใหม่ของเทคโนโลยีให้กับคุณ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM