คอร์ส IT พื้นฐาน HTML 015_คุณสมบัติใหม่ของ HTML5
คุณสมบัติใหม่ของ HTML5
HTML5 เป็นเวอร์ชันล่าสุดของ HTML ซึ่งนำเสนอแท็ก คุณสมบัติ และฟังก์ชันใหม่มากมาย เพิ่มความสามารถและการโต้ตอบของเว็บอย่างมาก
คุณสมบัติใหม่ที่น่าสนใจของ HTML5:
- องค์ประกอบ canvas สำหรับการวาดภาพ
- องค์ประกอบ video และ audio สำหรับการเล่นสื่อ
- การรองรับที่ดีขึ้นสำหรับการจัดเก็บออฟไลน์ในเครื่อง
- องค์ประกอบเนื้อหาพิเศษใหม่ เช่น article, footer, header, nav, section
- ตัวควบคุมฟอร์มใหม่ เช่น calendar, date, time, email, url, search
<canvas>
องค์ประกอบ HTML5 <canvas> ใช้สำหรับการวาดกราฟิกในหน้าเว็บ องค์ประกอบ <canvas> ใช้ API การวาดภาพแบบ JavaScript และสามารถใช้สำหรับสร้างกราฟิกต่างๆ รวมถึงแผนภูมิ กราฟิก แอนิเมชัน เป็นต้น
ตัวอย่าง:
<canvas width="500" height="500"> เบราว์เซอร์ของคุณไม่รองรับแท็ก HTML5 canvas</canvas><script> const canvas = document.querySelector("canvas"); // รับบริบทการวาดภาพ const ctx = canvas.getContext("2d"); // วาดวงกลม ctx.beginPath(); ctx.arc(250, 250, 100, 0, 2 * Math.PI); ctx.fillStyle = "yellow"; ctx.fill();</script>ผลลัพธ์:

<svg>
องค์ประกอบ SVG HTML5 ใช้สำหรับสร้างกราฟิก SVG ในหน้าเว็บ กราฟิก SVG เป็นกราฟิกเวกเตอร์ที่ใช้ XML เป็นพื้นฐาน สามารถขยายได้โดยไม่สูญเสียคุณภาพ และเหมาะสมกับวัตถุประสงค์ต่างๆ รวมถึง:
องค์ประกอบ SVG ประกอบด้วย:
- องค์ประกอบ
<svg>: กำหนดองค์ประกอบรากของกราฟิก SVG - องค์ประกอบ
<path>: กำหนดรูปร่างเส้นทาง - องค์ประกอบ
<rect>: กำหนดรูปร่างสี่เหลี่ยมผืนผ้า - องค์ประกอบ
<circle>: กำหนดรูปร่างวงกลม - องค์ประกอบ
<ellipse>: กำหนดรูปร่างวงรี - องค์ประกอบ
<line>: กำหนดเส้นตรง - องค์ประกอบ
<polygon>: กำหนดรูปหลายเหลี่ยม - องค์ประกอบ
<polyline>: กำหนดเส้นหัก - องค์ประกอบ
<text>: กำหนดข้อความ - องค์ประกอบ
<g>: กำหนดกลุ่ม ใช้สำหรับจัดกลุ่มองค์ประกอบ SVG เข้าด้วยกัน - องค์ประกอบ
<defs>: กำหนดคุณสมบัติทั่วไป สามารถใช้กับองค์ประกอบ SVG หลายตัว
ตัวอย่าง:
<svg width="500" height="500"> <circle cx="250" cy="250" r="100" fill="yellow" /></svg>ผลลัพธ์:

SVG และ Canvas เป็นเครื่องมือสำหรับสร้างกราฟิกในหน้าเว็บ ทั้งสองมีข้อดีและข้อเสียของตัวเอง เหมาะสมกับสถานการณ์ที่แตกต่างกัน
SVG เป็นกราฟิกเวกเตอร์ที่ใช้ XML เป็นพื้นฐาน สามารถขยายได้โดยไม่สูญเสียคุณภาพ ซึ่งหมายความว่ากราฟิก SVG สามารถแสดงผลในขนาดใดก็ได้โดยไม่สูญเสียคุณภาพ กราฟิก SVG ยังสามารถจัดการและทำแอนิเมชันโดยใช้ CSS และ JavaScript ได้
Canvas เป็น API การวาดภาพที่ใช้ JavaScript เป็นพื้นฐาน สามารถสร้างกราฟิกบิตแมปได้ ซึ่งหมายความว่ากราฟิก Canvas ไม่สามารถขยายได้โดยไม่สูญเสียคุณภาพ แต่สามารถสร้างกราฟิกที่ซับซ้อนกว่าโดยใช้ JavaScript กราฟิก Canvas ยังสามารถจัดการและทำแอนิเมชันโดยใช้ JavaScript ได้
ความแตกต่างเฉพาะระหว่าง SVG และ Canvas:
| คุณสมบัติ | SVG | Canvas |
|---|---|---|
| ประเภทภาพ | เวกเตอร์ | บิตแมป |
| การขยาย | ไม่สูญเสียคุณภาพ | สูญเสียคุณภาพ |
| ประเภทกราฟิก | สี่เหลี่ยมผืนผ้า วงกลม เส้นทาง เป็นต้น | ใดก็ได้ |
| การจัดการ | CSS, JavaScript | JavaScript |
| แอนิเมชัน | CSS, JavaScript | JavaScript |
| ขนาดไฟล์ | โดยทั่วไปเล็กกว่า | โดยทั่วไปใหญ่กว่า |
| การเข้าถึง | ดีเยี่ยม | ปานกลาง |
-
SVG เหมาะสำหรับสถานการณ์:
- กราฟิกที่ต้องการการขยายโดยไม่สูญเสียคุณภาพ เช่น ไอคอน โลโก้ ภาพประกอบ
- กราฟิกที่ต้องการจัดการและทำแอนิเมชันโดยใช้ CSS และ JavaScript
-
Canvas เหมาะสำหรับสถานการณ์:
- สถานการณ์ที่ต้องการสร้างกราฟิกที่ซับซ้อน เช่น เกม แอนิเมชัน
- สถานการณ์ที่ต้องการการดำเนินการที่ซับซ้อนโดยใช้ JavaScript
ฟอร์ม HTML5
HTML5 นำเสนอประเภทการป้อนข้อมูลและคุณสมบัติใหม่บางอย่างเพื่อเพิ่มฟังก์ชันและความสะดวกในการใช้งานของฟอร์ม
องค์ประกอบฟอร์มใหม่:
- องค์ประกอบ
<datalist>: รายการตัวเลือกที่กำหนดไว้ล่วงหน้าสำหรับองค์ประกอบ<input>
ตัวอย่าง:
<label for="browser">เลือกเบราว์เซอร์:</label><input list="browsers" id="browser" name="browser" autocomplete="off"><datalist id="browsers"> <option value="Chrome"> <option value="Firefox"> <option value="Safari"> <option value="Edge"> <option value="Opera"></datalist>ผลลัพธ์:

| องค์ประกอบ | คำอธิบาย |
|---|---|
<datalist> | กำหนดรายการตัวเลือกที่กำหนดไว้ล่วงหน้าสำหรับองค์ประกอบ <input> |
<output> | แสดงถึงผลลัพธ์ของการคำนวณ |
<keygen> | สร้างคู่คีย์สำหรับฟอร์ม โดยทั่วไปใช้สำหรับการแลกเปลี่ยนคีย์ |
<progress> | กำหนดแถบความคืบหน้าสำหรับงานประเภทใดก็ได้ |
<meter> | วัดค่าสเกลาร์หรือเศษส่วนภายในช่วงที่ทราบ |
คุณสมบัติฟอร์มใหม่:
- คุณสมบัติ autocomplete ของ
<form>/<input>: ระบุว่า form หรือฟิลด์ input ควรมีฟังก์ชันการเติมข้อความอัตโนมัติ เมื่อผู้ใช้เริ่มพิมพ์ในฟิลด์เติมข้อความอัตโนมัติ เบราว์เซอร์ควรแสดงตัวเลือกการกรอกในฟิลด์นั้น
ตัวอย่าง:
<form action="demo-form.php" autocomplete="on"> นามสกุล: <input type="text" name="fname"><br> ชื่อ: <input type="text" name="lname"><br> อีเมล: <input type="email" name="email" autocomplete="off"><br> <input type="submit"></form>ผลลัพธ์:

| คุณสมบัติ | คำอธิบาย |
|---|---|
autocomplete | ระบุว่าฟิลด์ป้อนข้อมูลควรเปิดใช้งานฟังก์ชันเติมข้อความอัตโนมัติหรือไม่ |
novalidate | ปิดการตรวจสอบความถูกต้องของฟอร์มโดยเบราว์เซอร์ |
form | ระบุฟอร์มที่องค์ประกอบ <input> เป็นสมาชิก เชื่อมโยงกับฟอร์มเฉพาะ |
formaction | ระบุ URL ที่จะใช้เมื่อส่งฟอร์ม |
formenctype | ระบุประเภทการเข้ารหัสที่จะใช้เมื่อส่งฟอร์ม (เช่น application/x-www-form-urlencoded หรือ multipart/form-data) |
formmethod | ระบุวิธี HTTP ที่จะใช้เมื่อส่งฟอร์ม (เช่น get หรือ post) |
formnovalidate | ปิดการตรวจสอบความถูกต้องของฟอร์มโดยเบราว์เซอร์เมื่อส่งฟอร์ม |
formtarget | ระบุหน้าต่างหรือเฟรมเป้าหมายที่จะเปิดหลังจากส่งฟอร์ม |
height | ตั้งค่าความสูงขององค์ประกอบ <input type="image"> |
width | ตั้งค่าความกว้างขององค์ประกอบ <input type="image"> |
list | ระบุ id ขององค์ประกอบ <datalist> ที่เชื่อมโยงกับองค์ประกอบ <input> หรือ <textarea> |
min | ระบุค่าต่ำสุดขององค์ประกอบ <input> |
max | ระบุค่าสูงสุดขององค์ประกอบ <input> |
pattern | กำหนดนิพจน์ทั่วไปเพื่อตรวจสอบฟิลด์ป้อนข้อมูลเมื่อส่งฟอร์ม |
placeholder | ให้คำแนะนำสั้นๆ เกี่ยวกับฟิลด์ป้อนข้อมูล แสดงเฉพาะเมื่อฟิลด์ว่างเท่านั้น |
required | ระบุว่าฟิลด์ป้อนข้อมูลเป็นฟิลด์บังคับหรือไม่ |
step | ระบุช่วงตัวเลขที่ถูกต้องขององค์ประกอบ <input> |
ประเภท input ใหม่:
<form action="/submit" method="post"> <label for="name">ชื่อ:</label> <input type="text" id="name" required /> <br> <label for="email">ที่อยู่อีเมล:</label> <input type="email" id="email" required /> <br> <label for="birthday">วันเกิด:</label> <input type="date" id="birthday" required /> <br> <label for="phone">หมายเลขโทรศัพท์:</label> <input type="tel" id="phone" required /> <br> <input type="submit" value="ส่ง" /></form>ผลลัพธ์:

| ประเภท | ฟังก์ชัน |
|---|---|
| color | ใช้สำหรับป้อนค่าสี |
| date | ใช้สำหรับป้อนค่าวันที่ |
| datetime-local | ใช้สำหรับป้อนค่าวันที่และเวลา |
| ใช้สำหรับป้อนที่อยู่อีเมล | |
| file | ใช้สำหรับอัปโหลดไฟล์ |
| month | ใช้สำหรับป้อนค่าเดือน |
| number | ใช้สำหรับป้อนค่าตัวเลข |
| range | ใช้สำหรับป้อนค่าช่วง |
| search | ใช้สำหรับป้อนสตริงการค้นหา |
| tel | ใช้สำหรับป้อนหมายเลขโทรศัพท์ |
| time | ใช้สำหรับป้อนค่าเวลา |
| url | ใช้สำหรับป้อนที่อยู่ URL |
[!สรุป]
| องค์ประกอบ | ฟังก์ชัน | แนะนำหรือไม่ |
|---|---|---|
| องค์ประกอบที่เพิ่มใหม่ | ||
<canvas> | กำหนดกราฟิก เช่น แผนภูมิและภาพอื่นๆ แท็กนี้ใช้ API การวาดภาพ JavaScript เป็นพื้นฐาน | แนะนำ |
<audio> | กำหนดเนื้อหาเสียง | แนะนำ |
<video> | กำหนดวิดีโอ (video หรือ movie) | แนะนำ |
<source> | กำหนดทรัพยากรมัลติมีเดีย <video> และ <audio> | แนะนำ |
<track> | กำหนดคำบรรยายหรือการแปลของเสียงหรือวิดีโอ | แนะนำ |
<datalist> | กำหนดรายการตัวเลือก ใช้องค์ประกอบนี้ร่วมกับองค์ประกอบ input เพื่อกำหนดค่าที่เป็นไปได้ของ input | แนะนำ |
<keygen> | ระบุฟิลด์ตัวสร้างคู่คีย์สำหรับฟอร์ม | แนะนำ |
<output> | กำหนดเอาต์พุตประเภทต่างๆ เช่น เอาต์พุตของสคริปต์ | แนะนำ |
<article> | กำหนดพื้นที่เนื้อหาอิสระของหน้า | แนะนำ |
<aside> | กำหนดเนื้อหาแถบด้านข้างของหน้า | แนะนำ |
<bdi> | อนุญาตให้คุณตั้งค่าข้อความส่วนหนึ่งให้แยกออกจากการตั้งค่าทิศทางข้อความของ องค์ประกอบแม่ | แนะนำ |
<dialog> | กำหนดกล่องโต้ตอบ | แนะนำ |
<figure> | กำหนดพื้นที่ที่มีภาพหรือเนื้อหาภาพอื่นๆ | แนะนำ |
<footer> | กำหนดพื้นที่ด้านล่างของหน้าหรือส่วนของหน้า | แนะนำ |
<header> | กำหนดพื้นที่ด้านบนของหน้าหรือส่วนของหน้า | แนะนำ |
<main> | กำหนดพื้นที่เนื้อหาหลักของหน้า | แนะนำ |
<mark> | กำหนดข้อความที่สำคัญหรือเน้น | แนะนำ |
<meter> | กำหนดความคืบหน้าหรือช่วงค่า | แนะนำ |
<nav> | กำหนดพื้นที่การนำทางของหน้าหรือส่วนของหน้า | แนะนำ |
<progress> | กำหนดแถบความคืบหน้า | แนะนำ |
<time> | กำหนดวันที่หรือเวลา | แนะนำ |
<wbr> | อนุญาตให้แทรกอักขระที่สามารถแบ่งบรรทัดได้ในข้อความ | แนะนำ |
| องค์ประกอบที่เลิกใช้หรือไม่แนะนำ | ||
<acronym> | กำหนดคำย่อ แนะนำให้ใช้องค์ประกอบ <abbr> แทน | แนะนำ |
<applet> | กำหนด Java applet แนะนำให้ใช้ JavaScript หรือเทคโนโลยีสมัยใหม่อื่นๆ แทน | ไม่แนะนำ |
<basefont> | ตั้งค่าขนาดและสีฟอนต์เริ่มต้นสำหรับข้อความทั้งหมดในหน้า แนะนำให้ใช้ CSS เพื่อตั้งค่าสไตล์ข้อความ | ไม่แนะนำ |
<big> | ตั้งค่าขนาดฟอนต์ของข้อความ แนะนำให้ใช้ CSS เพื่อตั้งค่าสไตล์ข้อความ | ไม่แนะนำ |
<center> | บังคับให้ข้อความจัดกึ่งกลาง แนะนำให้ใช้ CSS เพื่อตั้งค่าการจัดตำแหน่งข้อความ | ไม่แนะนำ |
<dir> | กำหนดรายการไดเรกทอรี แนะนำให้ใช้องค์ประกอบ <ul> แทน | ไม่แนะนำ |
<font> | ตั้งค่าขนาด สี สไตล์ เป็นต้นของฟอนต์ข้อความ แนะนำให้ใช้ CSS เพื่อตั้งค่าสไตล์ข้อความ | ไม่แนะนำ |
<frame> | กำหนดเฟรม แนะนำให้ใช้องค์ประกอบ iframe แทน | ไม่แนะนำ |
<frameset> | กำหนดชุดเฟรม แนะนำให้ใช้องค์ประกอบ iframe แทน | ไม่แนะนำ |
<noframes> | ให้เนื้อหาทางเลือกสำหรับเบราว์เซอร์ที่ไม่รองรับเฟรม แนะนำให้ใช้ JavaScript เพื่อตรวจสอบว่าเบราว์เซอร์รองรับเฟรมหรือไม่ และแสดงหรือซ่อนเนื้อหาตามสถานการณ์ | ไม่แนะนำ |
<strike> | ตั้งค่าเส้นขีดทับข้อความ แนะนำให้ใช้ CSS เพื่อตั้งค่าสไตล์ข้อความ | ไม่แนะนำ |
<tt> | ตั้งค่าฟอนต์ความกว้างคงที่สำหรับข้อความ แนะนำให้ใช้ CSS เพื่อตั้งค่าฟอนต์ข้อความ | ไม่แนะนำ |