Z-Index คืออะไร?
Z-Index ใน CSS คือคุณสมบัติที่ใช้กำหนดลำดับการซ้อนขององค์ประกอบในหน้าเว็บ โดยองค์ประกอบที่มีค่า Z-Index สูงกว่าจะถูกแสดงทับองค์ประกอบที่มีค่า Z-Index ต่ำกว่า Tailwind CSS ทำให้การจัดการ Z-Index เป็นเรื่องง่ายด้วย Utility Classes ที่กำหนดไว้ล่วงหน้า
1. การใช้งาน Z-Index พื้นฐานใน Tailwind CSS
Tailwind CSS มีคลาส Z-Index ที่ใช้งานง่ายและครอบคลุมสถานการณ์ทั่วไป เช่น:
z-0
: Z-Index ค่าเริ่มต้น (0)z-10
,z-20
,z-30
: กำหนดลำดับที่สูงขึ้นz-auto
: ให้เบราว์เซอร์ตัดสินใจลำดับการซ้อนเอง
ตัวอย่าง:
1 2 3 4 5 6 | < div class = "relative z-10 bg-blue-500 text-white p-4" > องค์ประกอบที่มี Z-Index สูงกว่า </ div > < div class = "relative z-0 bg-gray-500 text-white p-4" > องค์ประกอบที่มี Z-Index ต่ำกว่า </ div > |
ในตัวอย่างนี้:
z-10
: องค์ประกอบสีน้ำเงินจะแสดงเหนือองค์ประกอบสีเทาz-0
: องค์ประกอบสีเทาจะอยู่ด้านล่าง
2. การใช้ Z-Index ร่วมกับ Positioning
Z-Index จะทำงานเมื่อองค์ประกอบมี Position ที่แตกต่างจากค่าเริ่มต้น (static
) เช่น relative
, absolute
, หรือ fixed
ตัวอย่าง:
1 2 3 4 5 6 | < div class = "relative z-10 bg-green-500 text-white p-4" > องค์ประกอบที่อยู่ด้านบน </ div > < div class = "absolute z-0 bg-red-500 text-white p-4 top-4 left-4" > องค์ประกอบที่อยู่ด้านล่าง </ div > |
ในตัวอย่างนี้:
- องค์ประกอบสีแดงมีตำแหน่ง
absolute
แต่ Z-Index ต่ำกว่า จึงถูกซ้อนด้านล่าง
3. การจัดการลำดับใน Layout ซับซ้อน
ใน Layout ที่มีองค์ประกอบหลายชั้น การควบคุมลำดับการแสดงผลเป็นสิ่งสำคัญ Tailwind CSS ช่วยให้การกำหนดลำดับซับซ้อนง่ายขึ้น
ตัวอย่าง: Modal และ Overlay
1 2 3 4 5 6 | < div class = "fixed inset-0 bg-black bg-opacity-50 z-20" ></ div > < div class = "fixed inset-0 flex items-center justify-center z-30" > < div class = "bg-white p-6 rounded shadow-lg" > นี่คือ Modal </ div > </ div > |
ในตัวอย่างนี้:
z-20
: ใช้กับพื้นหลัง Overlayz-30
: ใช้กับ Modal เพื่อให้แสดงอยู่ด้านบนสุด
4. การใช้ Z-Index ร่วมกับ Hover และ Focus
คุณสามารถเปลี่ยนค่า Z-Index ขององค์ประกอบเมื่ออยู่ในสถานะ Hover หรือ Focus ได้:
ตัวอย่าง:
1 2 3 | < div class = "relative bg-gray-200 p-4 hover:z-10 focus:z-20" > องค์ประกอบที่เปลี่ยน Z-Index เมื่อ Hover หรือ Focus </ div > |
hover:z-10
: Z-Index จะเพิ่มขึ้นเมื่อ Hoverfocus:z-20
: Z-Index จะสูงขึ้นอีกเมื่อ Focus
5. การใช้งาน Z-Index แบบกำหนดเอง
หากค่า Z-Index ที่มีใน Tailwind CSS ไม่เพียงพอ คุณสามารถเพิ่มค่าเองได้ใน tailwind.config.js
:
ตัวอย่าง:
1 2 3 4 5 6 7 8 9 10 | module.exports = { theme: { extend: { zIndex: { '100' : '100' , '200' : '200' , }, }, }, }; |
การใช้งานใน HTML:
1 2 3 | < div class = "relative z-100 bg-blue-500 p-4" > องค์ประกอบที่มี Z-Index 100 </ div > |
6. ตัวอย่างการจัดลำดับในโปรเจกต์จริง
ตัวอย่าง: Header แบบ Fixed ที่อยู่ด้านบน
1 2 3 4 5 6 | < header class = "fixed top-0 left-0 w-full bg-blue-500 text-white p-4 z-50" > นี่คือ Header ที่อยู่ด้านบนสุด </ header > < main class = "mt-16 p-4" > เนื้อหาของหน้าเว็บ </ main > |
ในตัวอย่างนี้:
z-50
: ทำให้ Header อยู่ด้านบนสุดของหน้าเว็บ
ตัวอย่าง: Tooltip
1 2 3 4 5 6 7 8 | < div class = "relative" > < button class = "bg-gray-500 text-white px-4 py-2 rounded" > ชี้เมาส์เพื่อดู Tooltip </ button > < div class = "absolute top-0 left-full ml-2 bg-black text-white text-sm px-2 py-1 rounded z-10" > Tooltip </ div > </ div > |
ในตัวอย่างนี้:
z-10
: ทำให้ Tooltip แสดงอยู่เหนือปุ่ม
7. เคล็ดลับการใช้งาน Z-Index อย่างมีประสิทธิภาพ
- ใช้ค่า Z-Index ให้น้อยที่สุดเพื่อหลีกเลี่ยงความซับซ้อน
- วางแผนลำดับการซ้อนขององค์ประกอบตั้งแต่แรกเพื่อให้โค้ดอ่านง่าย
- ใช้ค่า Z-Index สูงเฉพาะในกรณีที่จำเป็น เช่น Modal หรือ Popup
สรุป
การจัดการ Z-Index ใน Tailwind CSS ช่วยให้คุณควบคุมลำดับการซ้อนขององค์ประกอบได้ง่ายและสะดวก ด้วย Utility Classes ที่พร้อมใช้งานและความสามารถในการปรับแต่งค่า Z-Index เอง คุณสามารถสร้าง Layout ที่ซับซ้อนและสวยงามได้อย่างมืออาชีพ ในบทถัดไป เราจะพูดถึง Dark Mode และการออกแบบเว็บไซต์ที่รองรับโหมดมืด เพื่อยกระดับประสบการณ์การใช้งานของผู้ใช้!