Thuộc tính tableLayout kiểm soát thuật toán bố cục bảng. Hai giá trị chính: auto (mặc định, tính theo nội dung) và fixed (tính theo width cột cố định, nhanh hơn).
Ví dụ minh họa
Mã sau chuyển bảng sang table-layout: fixed khi nhấn nút:
<!DOCTYPE html>
<html>
<head>
<style>
table, td {
border: 2px solid blue;
}
#myID {
width: 100%;
}
</style>
</head>
<body>
<button onclick="setTableLayout()">Đặt Layout = Fixed</button>
<table id="myID">
<tr><td>Văn bản demo dài</td><td>Văn bản khác</td></tr>
<tr><td>Một</td><td>1</td></tr>
<tr><td>Hai</td><td>2</td></tr>
<tr><td>Ba</td><td>3</td></tr>
</table>
<script>
function setTableLayout() {
document.getElementById("myID").style.tableLayout = "fixed";
/* Cột sẽ tuân theo width định nghĩa (hoặc chia đều), không co giãn theo nội dung */
}
</script>
</body>
</html>
So sánh auto vs fixed
| Giá trị | Thuật toán | Hiệu năng | Khi nào dùng |
|---|---|---|---|
auto | Đọc toàn bộ nội dung tính width cột | Chậm hơn (cần render toàn bộ) | Bảng nhỏ, nội dung không cố định |
fixed | Dùng width cột đầu hàng (hoặc chia đều) | Nhanh hơn (render hàng đầu tiên) | Bảng lớn, width cố định, cần hiệu năng |
Lưu ý khi dùng fixed
- Cần định nghĩa
widthcho bảng (hoặccol,colgroup). - Nội dung quá dài sẽ bị cắt/đè (dùng
overflow,text-overflow,white-spaceđể xử lý). - Cột không có width sẽ chia sẻ không gian còn lại đều nhau.