การจัดการกับขนาดของตาราง (Table Size) ใน HTML5 สามารถทำได้หลายวิธีเพื่อให้ตารางแสดงผลได้ตามที่ต้องการ ไม่ว่าจะเป็นการกำหนดขนาดตาราง ขนาดของเซลล์ หรือการควบคุมพื้นที่ภายในและภายนอกเซลล์ ตารางสามารถปรับได้ด้วยการใช้งานทั้ง CSS และ HTML
การกำหนดขนาดตารางด้วย width และ height
สามารถกำหนดขนาดของตารางได้ทั้ง width และ height โดยใช้ HTML attribute หรือ CSS property
ตัวอย่างการใช้ HTML Attribute
<table width="500" height="300" border="1">
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>ตารางนี้จะมีความกว้าง 500px และความสูง 300px แต่การใช้ width และ height ใน HTML แบบนี้ไม่เป็นที่นิยมแล้ว แนะนำให้ใช้ CSS แทน
| Cell 1 | Cell 2 |
ตัวอย่างการใช้ CSS
<style>
table {
width: 500px;
height: 300px;
border: 1px solid black;
}
</style>
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>การใช้ CSS ทำให้สามารถควบคุมการแสดงผลได้ง่ายกว่า และสามารถจัดการกับความยืดหยุ่นในขนาดของตารางได้มากขึ้น
| Cell 1 | Cell 2 |
การกำหนดขนาดตารางแบบเปอร์เซ็นต์
สามารถกำหนดขนาดตารางให้เป็นเปอร์เซ็นต์ของขนาดหน้าจอหรือพื้นที่ของผู้ใช้งาน
ตัวอย่าง
<style>
table {
width: 80%;
border: 1px solid black;
}
</style>
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>ในตัวอย่างนี้ ตารางจะมีความกว้าง 80% ของพื้นที่ที่สามารถแสดงผลได้ เช่นหากพื้นที่กว้าง 1000px ตารางจะมีความกว้าง 800px
| Cell 1 | Cell 2 |
การควบคุมขนาดของเซลล์ในตาราง
สามารถกำหนดขนาดของเซลล์แต่ละช่องได้ด้วย width และ height ที่เซลล์ หรือใช้ colgroup และ col เพื่อควบคุมหลายคอลัมน์พร้อมกัน
การกำหนดขนาดให้แต่ละเซลล์
<table border="1">
<tr>
<td style="width: 200px;">Cell 1</td>
<td style="width: 100px;">Cell 2</td>
</tr>
</table>| Cell 1 | Cell 2 |
การใช้ colgroup และ col
<table border="1">
<colgroup>
<col style="width: 200px;">
<col style="width: 100px;">
</colgroup>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>ในตัวอย่างนี้ ขนาดของคอลัมน์ถูกควบคุมโดย colgroup ซึ่งสามารถใช้เพื่อกำหนดขนาดให้กับคอลัมน์หลายคอลัมน์พร้อมกัน
| Cell 1 | Cell 2 |
การใช้ table-layout เพื่อควบคุมการจัดวาง
CSS table-layout ช่วยควบคุมการกระจายพื้นที่ของตาราง
table-layout: auto;เป็นค่าปกติที่ทำให้เซลล์ในตารางสามารถปรับขนาดได้ตามเนื้อหาtable-layout: fixed;ทำให้แต่ละคอลัมน์มีขนาดที่กำหนดไว้ โดยไม่ขึ้นอยู่กับขนาดของเนื้อหาในเซลล์
ตัวอย่าง table-layout: fixed
<style>
table {
width: 400px;
table-layout: fixed;
border: 1px solid black;
}
td {
border: 1px solid black;
}
</style>
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
</tr>
</table>ในตัวอย่างนี้ ตารางจะมีความกว้าง 400px และแต่ละคอลัมน์จะถูกแบ่งตามพื้นที่เท่ากันโดยไม่คำนึงถึงเนื้อหาภายใน
| Cell 1 | Cell 2 | Cell 3 |
การใช้ border-spacing และ padding
border-spacingใช้ในการควบคุมช่องว่างระหว่างเซลล์ในตารางpaddingใช้ในการกำหนดระยะห่างระหว่างขอบเซลล์กับเนื้อหาภายในเซลล์
ตัวอย่าง
<style>
table {
border: 1px solid black;
border-spacing: 10px;
}
td {
padding: 15px;
border: 1px solid black;
}
</style>
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>ตารางนี้จะมีการเว้นระยะห่างระหว่างเซลล์และขอบ 10px และมีการเว้นระยะห่างภายในเซลล์ (padding) 15px
| Cell 1 | Cell 2 |
