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

colspan และ rowspan สำหรับการครอบคลุมเซลล์

ผสานเซลล์ข้ามคอลัมน์และแถว

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

การขยายช่วงเซลล์คืออะไร

โดยค่าเริ่มต้น เซลล์ตารางแต่ละเซลล์จะครอบคลุมหนึ่งแถวและหนึ่งคอลัมน์ การขยายช่วงเซลล์ ช่วยให้เซลล์ขยายครอบคลุมหลายคอลัมน์หรือหลายแถวได้:

  • colspan — ครอบคลุมหลายคอลัมน์
  • rowspan — ครอบคลุมหลายแถว

colspan

แอตทริบิวต์ colspan ทำให้เซลล์ครอบคลุมหลายคอลัมน์:

<table>
  <tr>
    <th colspan="3">2024 Quarterly Sales</th>
  </tr>
  <tr>
    <th>Q1</th>
    <th>Q2</th>
    <th>Q3</th>
  </tr>
  <tr>
    <td>$10k</td>
    <td>$12k</td>
    <td>$15k</td>
  </tr>
</table>

rowspan

แอตทริบิวต์ rowspan ทำให้เซลล์ครอบคลุมหลายแถว:

<table>
  <tr>
    <th rowspan="2">John</th>
    <td>HTML</td>
    <td>95</td>
  </tr>
  <tr>
    <!-- no th here — John's cell spans this row -->
    <td>CSS</td>
    <td>88</td>
  </tr>
</table>

การใช้ colspan และ rowspan ร่วมกัน

สามารถใช้แอตทริบิวต์ทั้งสองร่วมกันในเซลล์เดียวได้:

<table>
  <tr>
    <th colspan="2" rowspan="2">Top-Left Corner</th>
    <th>Col 3</th>
  </tr>
  <tr>
    <td>Row 2, Col 3</td>
  </tr>
  <tr>
    <td>Row 3, Col 1</td>
    <td>Row 3, Col 2</td>
    <td>Row 3, Col 3</td>
  </tr>
</table>

การคำนึงถึงเซลล์ที่ขยายช่วง

เมื่อเซลล์ครอบคลุมหลายคอลัมน์ ให้ละคอลัมน์เหล่านั้นออกจากแถวที่อยู่ในช่วงเดียวกัน:

<table>
  <tr>
    <td colspan="2">Spans 2 columns</td>
    <!-- This row has: 1 td = 2 columns wide -->
    <td>Third column</td>
  </tr>
  <tr>
    <td>Col 1</td>   <!-- back to 1 column each -->
    <td>Col 2</td>
    <td>Col 3</td>
  </tr>
</table>

รูปแบบการขยายช่วงที่พบบ่อย

ตัวอย่างการขยายช่วงในตารางที่พบได้จริง:

<!-- Group header spanning all data columns -->
<thead>
  <tr>
    <th rowspan="2">Name</th>
    <th colspan="3">Test Scores</th>
  </tr>
  <tr>
    <th>Math</th><th>Science</th><th>English</th>
  </tr>
</thead>

การใช้ rowspan สำหรับผสานหัวแถว

ใช้ rowspan เพื่อสร้างป้ายกำกับกลุ่มแถวที่ผสานกัน:

<tbody>
  <tr>
    <th rowspan="3">Frontend</th>
    <td>HTML</td>
    <td>Structure</td>
  </tr>
  <tr>
    <!-- Frontend spans this row -->
    <td>CSS</td>
    <td>Presentation</td>
  </tr>
  <tr>
    <td>JavaScript</td>
    <td>Behavior</td>
  </tr>
</tbody>

colspan=0 — เซลล์เต็มความกว้าง

ค่า colspan เป็น 0 จะทำให้เซลล์ครอบคลุมคอลัมน์ที่เหลือทั้งหมดในกลุ่มคอลัมน์ (ไม่ค่อยมีการใช้):

<!-- colspan="0" spans the entire colgroup -->
<td colspan="0">Full width row</td>

การขยายช่วงเซลล์กับการเข้าถึง

ตารางที่มีการขยายช่วงซับซ้อนต้องใช้แอตทริบิวต์ scope และ headers สำหรับโปรแกรมอ่านหน้าจอ:

<th scope="colgroup" colspan="3">2024 Scores</th>
<!-- scope="colgroup" applies to a spanning header -->

<!-- For complex tables, use headers attribute on td: -->
<td headers="col-q1 row-alice">95</td>

การแก้ไขปัญหาการขยายช่วง

ข้อผิดพลาดที่พบบ่อยในการขยายช่วง:

  • มีเซลล์ในแถวมากหรือน้อยเกินไปหลังการขยายช่วง
  • rowspan ขยายเกินจำนวนแถว
  • ช่วงทับซ้อนกัน (เซลล์สองเซลล์อ้างสิทธิ์ตำแหน่งเดียวกัน)

ใช้ DevTools ของเบราว์เซอร์เพื่อตรวจสอบโครงสร้างตาราง หากมีสิ่งใดแสดงผลไม่ถูกต้อง

CSS สำหรับเซลล์ที่ขยายช่วง

จัดรูปแบบเซลล์ที่ครอบคลุมหลายคอลัมน์หรือหลายแถว:

[colspan] {
  text-align: center;
  font-weight: bold;
  background-color: #e2e8f0;
}

/* Or use attribute selectors for specific spans: */
[colspan="3"] {
  background-color: #dbeafe;
}

การพิมพ์และการขยายช่วง

เบราว์เซอร์สมัยใหม่จะพิมพ์เซลล์ที่ขยายช่วงได้อย่างถูกต้อง อย่างไรก็ตาม:

  • หากแถว thead ครอบคลุมหลายคอลัมน์ แถวเหล่านั้นจะแสดงซ้ำอย่างถูกต้องในทุกหน้าที่พิมพ์
  • rowspan ภายใน tbody จะไม่แสดงซ้ำเมื่อขึ้นหน้าใหม่
  • ควรทดสอบตารางที่ซับซ้อนในหน้าตัวอย่างก่อนพิมพ์ก่อนนำไปใช้งานจริง

ตรวจสอบความเข้าใจ

คุณมีเซลล์ตารางที่ควรครอบคลุม 3 คอลัมน์ ต้องใช้แอตทริบิวต์ใด

ทบทวน: colspan และ rowspan

สิ่งสำคัญของการขยายช่วงเซลล์:

  • colspan — เซลล์ครอบคลุมหลายคอลัมน์
  • rowspan — เซลล์ครอบคลุมหลายแถว
  • คำนึงถึงเซลล์ที่ขยายช่วง โดยละเซลล์ที่อยู่ในช่วงนั้นออก
  • เพิ่ม scope="colgroup" เพื่อให้ส่วนหัวที่ขยายช่วงเข้าถึงได้
  • ใช้ DevTools เพื่อแก้ไขปัญหาเค้าโครง

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

บทเรียน “colspan และ rowspan สำหรับการครอบคลุมเซลล์” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “colspan และ rowspan สำหรับการครอบคลุมเซลล์”

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

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

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

บทเรียน “colspan และ rowspan สำหรับการครอบคลุมเซลล์” ใช้เวลานานแค่ไหน

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

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

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

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

  1. table, tr, td และ th
  2. โครงสร้าง thead, tbody และ tfoot
  3. colspan และ rowspan สำหรับการครอบคลุมเซลล์
  4. การเข้าถึงตาราง: scope, summary และ caption
← กลับไปที่ HTML Academy