ก่อนอื่นเรามารู้จัก css variables คือ การสร้างตัวแปรใน css เพื่อใช้แทนค่าใน selector อื่นๆ ประโยชน์ก็คือสามารถเปลี่ยนข้อมูลในตัวแปลทีเดียว ก็จะเปลี่ยนทั้งหมด
เรามาดูตัวอย่างกันว่ามีประโยชน์อย่างไร
จากตัวอย่างเราจะสร้าง css variables โดยกำหนดให้ var1 สีดำ var2 สีแดง var3 สีฟ้า
:root{ --var1:black; --var2:red; --var3:blue; }
การนำเอาไปใช้ใน selector ต่างๆทำได้โดยใช้ var(ชื่อ custom properties)
.var1{ background-color:var(--var1); } .var2{ background-color:var(--var2); } .var3{ background-color:var(--var3); }
จะเห็นว่าถ้าเราเปลี่ยนค่าสี่ selector ที่ใช้ var ทั้งหมดที่ใช้ตัวแปลก็จะเปลี่ยนค่าสี background ตาม
ซึ่งสามารถทำให้เราทำทีสีเว็บไซต์ได้ง่ายมากขึ้นไม่ต้องทำแยก css ไฟล์แบบก่อน
ต่อไปจะเป็นการนำเอา js มาใช้เข้าถึงตัว var (custom properties)
ตัวอย่าง
เราจะเพิ่มตัว var จากตัวอย่างแรกชื่อว่า –mouse1
จากนั้นนำไปวางไว้ใน selector ทั้ง 3 อัน
.var1{ background-color:var(--var1); margin-top:var(--mouse1); } .var2{ background-color:var(--var2); margin-top:var(--mouse1); } .var3{ background-color:var(--var3); margin-top:var(--mouse1); }
และเพิ่ม js เพื่อควบคุมค่าตัวแปล
let root = document.documentElement; root.addEventListener("mousemove", e => { // add event mouse move root.style.setProperty('--mouse1', (e.clientY) + "px"); // ใช้แทนค่าตัวแปล css custom properties --mouse1 });
รายชื่อ browser ที่ support custom properties ครับ
หวังว่าคงเป็นประโยชน์เพื่อประยุกค์ใช้ในการสร้างเว็บไซต์ครับ