• ฟังก์ชัน CSS shape() เริ่มรองรับแล้วในเบราว์เซอร์ Chromium และ WebKit
  • ต่างจาก path() แบบเดิม ตอนนี้สามารถ กำหนดรูปทรงที่ซับซ้อน ได้ด้วย ไวยากรณ์และหน่วยแบบ CSS ที่อ่านง่ายกว่า
  • เมื่อต้องสร้างรูปทรงซับซ้อนใน clip-path ก็สามารถทำได้ด้วย คำสั่งภาษาอังกฤษ แทนการใช้พิกัดแบบ SVG
  • มี คำสั่งใหม่ อย่าง line, arc, curve เป็นต้น ที่ช่วยให้เขียนเส้น เส้นโค้ง และอาร์กได้กระชับขึ้น
  • ตอนนี้ shape() ยัง รองรับแอนิเมชันได้จำกัด แต่ สามารถเปลี่ยนแบบไดนามิกตาม hover/focus ได้

ภาพรวม

  • ฟังก์ชัน CSS shape() ใช้ร่วมกับ clip-path เพื่อให้สามารถ คลิปรูปทรงที่ซับซ้อน ได้ในเบราว์เซอร์
  • ก่อนหน้านี้สามารถใช้รูปทรงพื้นฐานอย่าง circle, ellipse, polygon ได้ แต่ถ้าจะทำ รูปทรงอิสระต้องใช้ path() เท่านั้น
  • path() ต้อง ใส่พิกัดและคำสั่งของ SVG ตรง ๆ จึงอ่านยากและมีช่วงการเรียนรู้ค่อนข้างสูง

คุณลักษณะของฟังก์ชัน shape()

  • สามารถ ประกอบรูปทรงเวกเตอร์ในสไตล์แบบ CSS ได้
  • ระบุจุดเริ่มต้นได้ด้วย คีย์เวิร์ดทิศทาง (from top left) หรือ ค่าพิกัด (from 0 0)
  • รูปทรงจะ ประกอบด้วยชุดคำสั่งต่อเนื่องกัน เช่น line, vline, arc, curve, smooth

คำอธิบายคำสั่งหลัก

  • line
    • ความหมาย: วาดเส้นจากจุดเริ่มต้น
    • วิธีใช้: ใช้คีย์เวิร์ด by เพื่อระบุตำแหน่งแบบสัมพัทธ์
    • ตัวอย่าง: line by -2px 3px
  • vline
    • ความหมาย: วาดเส้นแนวตั้ง
    • วิธีใช้: ใช้ to สำหรับตำแหน่งแบบสัมบูรณ์ และ by สำหรับตำแหน่งแบบสัมพัทธ์
    • ตัวอย่าง: vline to 50px
  • hline
    • ความหมาย: วาดเส้นแนวนอน
    • วิธีใช้: ใช้ to สำหรับตำแหน่งแบบสัมบูรณ์ และ by สำหรับตำแหน่งแบบสัมพัทธ์
    • ตัวอย่าง: hline to 95%
  • arc
    • ความหมาย: วาดเส้นโค้งแบบวงรี
    • วิธีใช้:
      • to: จุดปลายของอาร์ก
      • with: ทิศทางการเอียงของอาร์ก (แนวนอน/แนวตั้ง)
      • of: รัศมีของวงรีที่อาร์กนั้นเป็นส่วนหนึ่งของมัน (แนวนอน/แนวตั้ง)
    • ตัวอย่าง: arc to 10% 50% of 1%
  • curve
    • ความหมาย: วาดเส้นโค้งเบซิเยร์
    • วิธีใช้:
      • to: จุดปลายของเส้นโค้ง
      • with: จุดควบคุมของเส้นโค้ง (ใช้ปรับความโค้ง)
    • ตัวอย่าง: curve to 0% 100% with 50% 0%
  • smooth
    • ความหมาย: วาดเส้นโค้งแบบลื่นไหล (เส้นโค้งเบซิเยร์ที่เชื่อมต่อกัน)
    • วิธีใช้:
      • to: จุดปลาย
      • by: พิกัดแบบสัมพัทธ์
      • with: จุดควบคุม

อื่น ๆ

  • shape() เปลี่ยนแบบไดนามิกได้ในสถานะ hover/focus
  • ในเบราว์เซอร์ปัจจุบัน แอนิเมชัน transition ยังไม่ทำงาน
  • สามารถใช้ฟังก์ชันคำนวณ calc() ได้ด้วย

ลิงก์อ้างอิง

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น