0Pricing
HTML Academy · บทเรียน

SVG viewBox และการปรับขนาดแบบตอบสนอง

ทำให้ SVG ปรับขนาดได้อย่างถูกต้องบนหน้าจอทุกขนาด

SVG viewBox และการปรับขนาดแบบตอบสนอง เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

width และ height เทียบกับ viewBox

width และ height ของ SVG กำหนดขนาดที่แสดงผลใน DOM ส่วนแอตทริบิวต์ viewBox กำหนดพื้นที่พิกัดภายใน ทั้งสองส่วนเป็นอิสระจากกัน ดังนั้น viewBox ที่เป็น "0 0 100 100" เมื่อใช้ร่วมกับ width="200" height="200" จะขยายพื้นที่พิกัดเป็น 2 เท่า

ไวยากรณ์ของ viewBox

viewBox="min-x min-y width height" รูปแบบที่ใช้บ่อยที่สุดคือ viewBox="0 0 100 100" ซึ่งกำหนดพื้นที่พิกัดขนาด 100x100 โดยเริ่มจากจุดกำเนิด ค่าพิกัดใน SVG จะอ้างอิงพื้นที่นี้ ไม่ใช่พิกเซล

SVG แบบปรับตามขนาด

สำหรับ SVG แบบปรับตามขนาด ให้ละเว้นแอตทริบิวต์ width และ height (หรือกำหนดเป็น 100%) แล้วให้ viewBox กำหนดสัดส่วน เพิ่ม CSS ดังนี้: svg { width: 100%; height: auto; } SVG จะปรับขนาดให้พอดีกับคอนเทนเนอร์ โดยยังรักษาอัตราส่วนไว้

preserveAspectRatio

preserveAspectRatio ควบคุมวิธีที่ viewBox จะพอดีกับวิวพอร์ตของ SVG เมื่ออัตราส่วนแตกต่างกัน ค่าที่ใช้ได้มีดังนี้: "xMidYMid meet" (ค่าเริ่มต้น — มีแถบว่าง), "xMidYMid slice" (ตัดส่วนเกินเพื่อเติมพื้นที่) และ "none" (ยืดให้พอดีโดยไม่รักษาอัตราส่วน)

min-x และ min-y สำหรับการเลื่อนมุมมอง

การเปลี่ยนค่า min-x และ min-y จะเลื่อนส่วนที่มองเห็นของพื้นที่พิกัด SVG viewBox="50 50 100 100" จะแสดงบริเวณตั้งแต่ (50,50) ถึง (150,150) วิธีนี้ช่วยให้เลื่อนมุมมองแบบโต้ตอบได้ด้วยการอัปเดตค่า viewBox ด้วย JavaScript

การซูมด้วย viewBox

ลดขนาดของ viewBox เพื่อซูมเข้า: viewBox="25 25 50 50" จะแสดงบริเวณที่เล็กลงและขยายให้เต็มองค์ประกอบ SVG เพิ่มขนาดเพื่อซูมออก อัปเดต viewBox เมื่อเกิดเหตุการณ์ล้อเมาส์ เพื่อซูมแบบโต้ตอบได้โดยไม่ต้องปรับขนาดองค์ประกอบ SVG

SVG ใน img เทียบกับ SVG แบบอินไลน์

SVG ในแท็ก img จะปรับขนาดตามหน้าจอด้วย object-fit แต่ไม่สามารถจัดรูปแบบด้วย CSS หรือควบคุมด้วยสคริปต์ได้ ส่วน SVG แบบอินไลน์จะเข้าถึงได้เต็มที่ด้วย CSS และ JavaScript แต่ทำให้ขนาด HTML เพิ่มขึ้น ให้เลือกใช้ตามความต้องการด้านการโต้ตอบ

รูปแบบ SVG สำหรับไอคอน

SVG สำหรับไอคอนใช้ viewBox แบบคงที่ เช่น "0 0 24 24" และไม่กำหนด width/height เพื่อให้ CSS เป็นผู้กำหนดขนาด: .icon { width: 1.5rem; height: 1.5rem; } viewBox ช่วยให้ไอคอนปรับขนาดได้อย่างถูกต้องทุกขนาด พร้อมคงความคมชัดของกราฟิกเวกเตอร์

Symbol สำหรับชุดไอคอน

กำหนดไอคอนไว้ในองค์ประกอบ <symbol viewBox="0 0 24 24"> ภายใน SVG ที่ซ่อนไว้ จากนั้นอ้างอิงด้วย <use href="#icon-name"> องค์ประกอบ use แต่ละรายการสามารถมี width, height, fill และสีของตัวเองได้ ทำให้ใช้ไฟล์ชุดไอคอนเดียวกับไอคอนทั้งหมด

currentColor สำหรับการกำหนดธีม

SVG ที่ใช้ fill="currentColor" จะรับค่าคุณสมบัติสี CSS จากองค์ประกอบนั้นหรือองค์ประกอบแม่ กำหนด color: red ให้กับ SVG หรือองค์ประกอบแม่ แล้วไอคอนจะเติมสีแดงโดยอัตโนมัติ วิธีนี้ทำให้ไอคอนสีเดียวเปลี่ยนตามสีข้อความได้โดยไม่ต้องจัดรูปแบบเฉพาะสำหรับ SVG

การแก้ไขปัญหา viewBox

หากเนื้อหา SVG ดูเหมือนถูกตัดหรืออยู่ในตำแหน่งที่ไม่คาดคิด ให้บันทึกข้อมูลหรือตรวจสอบค่า viewBox ข้อผิดพลาดที่พบบ่อยคือกำหนด viewBox ตามขนาดพิกเซลของภาพต้นฉบับโดยไม่ปรับให้สอดคล้องกับขนาดที่แสดงผล ทำให้เกิดปัญหาการปรับขนาด ตรวจสอบว่า viewBox สอดคล้องกับขอบเขตเนื้อหาจริงของภาพ SVG

ตรวจสอบความรู้

จะทำให้ SVG ปรับขนาดตามหน้าจอเพื่อพอดีกับความกว้างของคอนเทนเนอร์ใด ๆ ได้อย่างไร

สรุป

viewBox ของ SVG กำหนดพื้นที่พิกัดภายในที่เป็นอิสระจากขนาดพิกเซลที่แสดงผล จึงช่วยให้ปรับขนาดตามหน้าจอได้ การกำหนด width:100%; height:auto ร่วมกับ viewBox ทำให้ SVG ปรับเข้ากับคอนเทนเนอร์ทุกขนาดได้ รูปแบบชุดไอคอนด้วย symbol+use การกำหนดธีมด้วย currentColor และการควบคุมด้วย preserveAspectRatio รวมกันเป็นเครื่องมือสำหรับใช้ SVG ที่ยืดหยุ่นและปรับธีมได้

คำถามที่พบบ่อย

บทเรียน “SVG viewBox และการปรับขนาดแบบตอบสนอง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “SVG viewBox และการปรับขนาดแบบตอบสนอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “SVG viewBox และการปรับขนาดแบบตอบสนอง”

ทำให้ SVG ปรับขนาดได้อย่างถูกต้องบนหน้าจอทุกขนาด คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “SVG viewBox และการปรับขนาดแบบตอบสนอง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม

ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. SVG แบบอินไลน์เทียบกับ img และ object
  2. รูปร่าง SVG พื้นฐาน: rect circle path
  3. SVG viewBox และการปรับขนาดแบบตอบสนอง
  4. การทำภาพเคลื่อนไหว SVG ด้วย CSS และ SMIL
← กลับไปที่ HTML Academy