พื้นฐานการสร้างเว็บไซต์ด้วย HTML
บทเรียนนี้จะครอบคลุมพื้นฐานที่สำคัญที่สุดของ HTML (HyperText Markup Language) ซึ่งเป็นภาษาหลักในการสร้างโครงสร้างของหน้าเว็บ
1.1 ทำความรู้จักกับเว็บและเครื่องมือ
เว็บไซต์ทำงานอย่างไร: Client-Server Model
เว็บไซต์ คือชุดของเอกสารและไฟล์ที่เชื่อมโยงกันผ่านเครือข่ายอินเทอร์เน็ต การทำงานของเว็บไซต์เป็นไปตามหลักการ Client-Server Model ดังนี้:
- Client (ไคลเอนต์): คือโปรแกรมเว็บเบราว์เซอร์ (เช่น Chrome, Firefox, Safari) ที่ทำงานอยู่บนเครื่องของผู้ใช้
- Server (เซิร์ฟเวอร์): คือคอมพิวเตอร์ที่เก็บไฟล์เว็บไซต์และโปรแกรมที่ใช้ในการประมวลผล
เมื่อผู้ใช้พิมพ์ URL ในเบราว์เซอร์ (Client) เบราว์เซอร์จะส่งคำขอ (Request) ไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะประมวลผลและส่งไฟล์ HTML, CSS, JavaScript และรูปภาพกลับมา (Response) จากนั้นเบราว์เซอร์จะทำการแปล (Render) ไฟล์เหล่านั้นให้กลายเป็นหน้าเว็บที่เราเห็น
เครื่องมือที่ต้องใช้
ในการเริ่มต้น คุณต้องการเพียงสองสิ่ง:
- เว็บเบราว์เซอร์ (Web Browser): สำหรับดูผลลัพธ์ของโค้ด (แนะนำ Chrome หรือ Firefox)
- โปรแกรมแก้ไขโค้ด (Text Editor/IDE): สำหรับเขียนโค้ด (แนะนำ VS Code เพราะมีฟีเจอร์ช่วยเขียนโค้ดและส่วนเสริมมากมาย)
1.2 โครงสร้างพื้นฐาน HTML
เอกสาร HTML ทุกฉบับจะมีโครงสร้างพื้นฐานที่ต้องมี เพื่อให้เบราว์เซอร์เข้าใจและแสดงผลได้อย่างถูกต้อง
องค์ประกอบหลักของ HTML
| องค์ประกอบ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| Tag (แท็ก) | คำสั่งที่ใช้กำหนดโครงสร้างและเนื้อหา มักจะมาเป็นคู่ (เปิดและปิด) | <p>...</p> |
| Element (องค์ประกอบ) | ประกอบด้วยแท็กเปิด, เนื้อหา, และแท็กปิด | <p>นี่คือย่อหน้า</p> |
| Attribute (แอตทริบิวต์) | ข้อมูลเพิ่มเติมที่ใส่ในแท็กเปิด เพื่อกำหนดคุณสมบัติของ Element นั้นๆ | <img src="image.jpg" alt="รูปภาพ"> |
โครงสร้างเอกสาร HTML5
นี่คือโครงสร้างพื้นฐานที่สมบูรณ์ของเอกสาร HTML5:
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ชื่อหน้าเว็บไซต์</title>
</head>
<body>
<!-- ส่วนเนื้อหาของเว็บไซต์จะอยู่ภายในแท็ก <body> -->
<h1>ยินดีต้อนรับสู่เว็บไซต์</h1>
<p>นี่คือเนื้อหาแรกของเว็บไซต์ของเรา</p>
</body>
</html>| แท็ก | หน้าที่ |
|---|---|
<!DOCTYPE html> |
ประกาศว่าเป็นเอกสาร HTML5 |
<html lang="th"> |
แท็กหลักที่ครอบคลุมเนื้อหาทั้งหมดของหน้าเว็บ และกำหนดภาษาเป็นภาษาไทย |
<head> |
ส่วนหัวของเอกสาร ไม่แสดงผลบนหน้าจอ แต่เก็บข้อมูลสำคัญสำหรับเบราว์เซอร์และ Search Engine |
<meta charset="UTF-8"> |
กำหนดชุดตัวอักษรเป็น UTF-8 เพื่อรองรับภาษาไทย |
<meta name="viewport"...> |
สำคัญสำหรับการทำ Responsive Web Design |
<title> |
ข้อความที่จะแสดงบนแถบชื่อเรื่องของเบราว์เซอร์ |
<body> |
ส่วนเนื้อหาทั้งหมดที่จะแสดงบนหน้าเว็บ |
1.3 การจัดการข้อความและหัวเรื่อง
HTML มีแท็กสำหรับกำหนดลำดับความสำคัญและรูปแบบของข้อความ
หัวเรื่อง (Headings)
ใช้แท็ก <h1> ถึง <h6> เพื่อกำหนดลำดับความสำคัญของหัวข้อ <h1> คือหัวข้อที่สำคัญที่สุด และควรมีเพียงอันเดียวต่อหน้า
<h1>หัวเรื่องหลัก (สำคัญที่สุด)</h1>
<h2>หัวเรื่องรอง</h2>
<h3>หัวข้อย่อย</h3>
<!-- ... ไปจนถึง <h6> -->ย่อหน้าและขึ้นบรรทัดใหม่
| แท็ก | หน้าที่ |
|---|---|
<p> |
กำหนดข้อความเป็นย่อหน้า (Paragraph) |
<br> |
ขึ้นบรรทัดใหม่ (Line Break) เป็นแท็กเดี่ยว (Self-closing tag) |
<hr> |
เส้นแบ่งแนวนอน (Horizontal Rule) |
การเน้นข้อความ
| แท็ก | หน้าที่ |
|---|---|
<strong> |
เน้นข้อความให้มีความสำคัญมาก (มักแสดงผลเป็นตัวหนา) |
<em> |
เน้นข้อความ (มักแสดงผลเป็นตัวเอียง) |
1.4 การสร้างรายการและลิงก์
รายการ (Lists)
มี 2 ประเภทหลัก:
-
รายการแบบมีลำดับ (Ordered List): ใช้
<ol>และ<li><ol> <li>ขั้นตอนที่ 1</li> <li>ขั้นตอนที่ 2</li> <li>ขั้นตอนที่ 3</li> </ol> -
รายการแบบไม่มีลำดับ (Unordered List): ใช้
<ul>และ<li><ul> <li>รายการ A</li> <li>รายการ B</li> <li>รายการ C</li> </ul>
ลิงก์ (Links)
ใช้แท็ก <a> (Anchor) เพื่อเชื่อมโยงไปยังหน้าเว็บอื่นหรือไฟล์อื่น
<!-- ลิงก์ไปยังเว็บไซต์ภายนอก -->
<p>
เยี่ยมชม <a href="https://www.google.com" target="_blank">Google</a>
</p>
<!-- ลิงก์ไปยังหน้าภายในเว็บไซต์เดียวกัน -->
<p>
<a href="about.html">เกี่ยวกับเรา</a>
</p>| Attribute | หน้าที่ |
|---|---|
href |
กำหนด URL ปลายทางของลิงก์ |
target="_blank" |
สั่งให้เปิดลิงก์ในแท็บใหม่ |
1.5 การแทรกรูปภาพและสื่อ
รูปภาพ (Images)
ใช้แท็ก <img> ซึ่งเป็นแท็กเดี่ยว (Self-closing tag)
<img src="images/logo.png" alt="โลโก้บริษัท" width="150" height="150">| Attribute | หน้าที่ |
|---|---|
src |
กำหนดที่อยู่ (Path) ของไฟล์รูปภาพ |
alt |
ข้อความอธิบายรูปภาพ (สำคัญสำหรับ SEO และผู้พิการทางสายตา) |
width, height |
กำหนดขนาดของรูปภาพ (แนะนำให้กำหนดขนาดด้วย CSS แทน) |
สื่อ (Media: Video & Audio)
ใช้แท็ก <video> และ <audio>
<video src="media/intro.mp4" controls width="400">
เบราว์เซอร์ของคุณไม่รองรับวิดีโอนี้
</video>
<audio src="media/music.mp3" controls>
เบราว์เซอร์ของคุณไม่รองรับไฟล์เสียงนี้
</audio>controls Attribute จะแสดงปุ่มควบคุมการเล่น (Play, Pause, Volume)
1.6 การสร้างตาราง
ใช้แท็ก <table> เพื่อสร้างตารางสำหรับแสดงข้อมูลที่เป็นระเบียบ (ไม่ควรใช้เพื่อจัด Layout)
<table>
<thead>
<tr>
<th>ชื่อสินค้า</th>
<th>ราคา</th>
<th>จำนวน</th>
</tr>
</thead>
<tbody>
<tr>
<td>โน้ตบุ๊ก</td>
<td>25,000 บาท</td>
<td>1</td>
</tr>
<tr>
<td>เมาส์</td>
<td>500 บาท</td>
<td>2</td>
</tr>
</tbody>
</table>| แท็ก | หน้าที่ |
|---|---|
<table> |
แท็กหลักของตาราง |
<thead> |
ส่วนหัวของตาราง |
<tbody> |
ส่วนเนื้อหาของตาราง |
<tr> |
แถว (Table Row) |
<th> |
หัวข้อในตาราง (Table Header Cell) |
<td> |
ข้อมูลในตาราง (Table Data Cell) |
1.7 การสร้างฟอร์มรับข้อมูล
ฟอร์มเป็นส่วนสำคัญสำหรับการโต้ตอบกับผู้ใช้ ใช้แท็ก <form> และ <input>
<form action="process_data.php" method="POST">
<label for="username">ชื่อผู้ใช้:</label>
<input type="text" id="username" name="username" required>
<br>
<label for="password">รหัสผ่าน:</label>
<input type="password" id="password" name="password" required>
<br>
<input type="checkbox" id="remember" name="remember" value="yes">
<label for="remember">จำฉันไว้</label>
<br>
<button type="submit">เข้าสู่ระบบ</button>
</form>| แท็ก/Attribute | หน้าที่ |
|---|---|
<form> |
แท็กหลักของฟอร์ม |
action |
กำหนดไฟล์ที่จะประมวลผลข้อมูลฟอร์ม (ในที่นี้คือ process_data.php) |
method |
กำหนดวิธีการส่งข้อมูล (GET หรือ POST) |
<label> |
ข้อความกำกับช่องกรอกข้อมูล |
<input type="text"> |
ช่องกรอกข้อความทั่วไป |
<input type="password"> |
ช่องกรอกรหัสผ่าน (ซ่อนตัวอักษร) |
<input type="checkbox"> |
ช่องเลือกแบบหลายตัวเลือก |
<button type="submit"> |
ปุ่มสำหรับส่งข้อมูลฟอร์ม |
name |
ชื่อของข้อมูลที่จะส่งไปยังเซิร์ฟเวอร์ (สำคัญมาก) |
required |
บังคับให้ผู้ใช้กรอกข้อมูลในช่องนี้ |
1.8 โครงสร้างหน้าเว็บด้วย Semantic HTML
Semantic HTML คือการใช้แท็กที่มีความหมายเพื่ออธิบายเนื้อหาของมัน ช่วยให้ Search Engine และเครื่องมือสำหรับผู้พิการทางสายตาเข้าใจโครงสร้างหน้าเว็บได้ดีขึ้น
| แท็ก | ความหมายเชิงโครงสร้าง |
|---|---|
<header> |
ส่วนหัวของเว็บไซต์หรือของส่วนเนื้อหาใดๆ |
<nav> |
ส่วนที่เก็บลิงก์นำทางหลักของเว็บไซต์ |
<main> |
เนื้อหาหลักและสำคัญที่สุดของเอกสาร (ควรมีเพียงอันเดียว) |
<section> |
ส่วนของเนื้อหาที่มีความสัมพันธ์กันตามหัวข้อ |
<article> |
เนื้อหาที่เป็นอิสระและสมบูรณ์ในตัวเอง (เช่น บทความ, โพสต์บล็อก) |
<aside> |
เนื้อหาเสริมที่เกี่ยวข้องกับเนื้อหาหลัก (เช่น Sidebar) |
<footer> |
ส่วนท้ายของเว็บไซต์หรือของส่วนเนื้อหาใดๆ |
ตัวอย่างโครงสร้าง Semantic:
<body>
<header>
<h1>ชื่อเว็บไซต์</h1>
<nav>
<ul>
<li><a href="/">หน้าแรก</a></li>
<li><a href="/about">เกี่ยวกับ</a></li>
</ul>
</nav>
</header>
<main>
<section>
<h2>บทความล่าสุด</h2>
<article>
<h3>หัวข้อบทความที่ 1</h3>
<p>เนื้อหาบทความย่อๆ...</p>
</article>
</section>
<aside>
<h4>โฆษณา</h4>
<p>พื้นที่โฆษณา</p>
</aside>
</main>
<footer>
<p>© 2025 Manus AI. สงวนลิขสิทธิ์</p>
</footer>
</body>แบบฝึกหัดท้ายบท
- สร้างไฟล์ HTML ใหม่ที่มีโครงสร้างพื้นฐาน HTML5 ที่สมบูรณ์
- ใส่หัวเรื่อง
<h1>และย่อหน้า<p>อย่างน้อย 3 ย่อหน้า - สร้างรายการแบบมีลำดับสำหรับขั้นตอนการทำอาหาร 3 ขั้นตอน
- สร้างลิงก์ไปยังเว็บไซต์ที่คุณชื่นชอบ และให้เปิดในแท็บใหม่
- แทรกรูปภาพใดๆ (สมมติว่าชื่อไฟล์
my_photo.jpg) และกำหนดaltattribute ที่เหมาะสม
ในบทถัดไป เราจะเรียนรู้วิธีการจัดรูปแบบหน้าเว็บให้สวยงามด้วย CSS
ตัวอย่างโค้ดแบบฝึกหัดท้ายบท (HTML)
นี่คือตัวอย่างโค้ดที่ตอบโจทย์แบบฝึกหัดทั้งหมด:
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>แบบฝึกหัด HTML - My First Website</title>
</head>
<body>
<!-- ข้อ 2: หัวเรื่อง h1 และ 3 ย่อหน้า -->
<h1>เว็บไซต์แรกของฉัน</h1>
<p>
นี่คือย่อหน้าแรกของเว็บไซต์ที่สร้างขึ้นจากการเรียนรู้พื้นฐาน HTML
เราใช้แท็ก `<p>` เพื่อจัดกลุ่มข้อความให้เป็นย่อหน้าอย่างถูกต้องตามหลักการสร้างเว็บไซต์
<strong>การสร้างโครงสร้างที่ถูกต้องเป็นสิ่งสำคัญที่สุด</strong>
</p>
<p>
ย่อหน้าถัดมาเป็นส่วนเสริมเพื่อให้เนื้อหามีความน่าสนใจยิ่งขึ้น
เราสามารถใช้แท็ก `<em>` เพื่อเน้นข้อความบางส่วนได้
<em>อย่าลืมตรวจสอบโค้ดของคุณเสมอ</em>
</p>
<p>
ย่อหน้าสุดท้ายนี้เป็นการสรุปสั้นๆ ถึงความสำเร็จในการสร้างหน้าเว็บเบื้องต้น
ในบทเรียนถัดไป เราจะมาเรียนรู้วิธีการทำให้หน้าเว็บนี้สวยงามด้วย CSS
</p>
<!-- ข้อ 3: รายการแบบมีลำดับ -->
<h2>ขั้นตอนการทำอาหารง่ายๆ</h2>
<ol>
<li>เตรียมวัตถุดิบทั้งหมดให้พร้อม</li>
<li>เริ่มทำอาหารตามขั้นตอนที่กำหนด</li>
<li>จัดจานให้สวยงามและพร้อมเสิร์ฟ</li>
</ol>
<!-- ข้อ 4: ลิงก์ไปยังเว็บไซต์ที่คุณชื่นชอบ (เปิดในแท็บใหม่) -->
<h2>ลิงก์ที่น่าสนใจ</h2>
<p>
เยี่ยมชมเว็บไซต์ <a href="https://www.google.com" target="_blank">Google</a> เพื่อค้นหาข้อมูลเพิ่มเติม
</p>
<!-- ข้อ 5: แทรกรูปภาพ -->
<h2>รูปภาพตัวอย่าง</h2>
<img src="my_photo.jpg" alt="รูปภาพวิวทิวทัศน์ที่สวยงาม" width="300">
</body>
</html>หมายเหตุ: สำหรับข้อ 5 คุณต้องมีไฟล์ชื่อ my_photo.jpg อยู่ในโฟลเดอร์เดียวกับไฟล์ HTML นี้เพื่อให้รูปภาพแสดงผล