Điều đó có khả thi khi sử dụng CSS và hai thẻ DIV chặn nội tuyến (hoặc bất cứ thứ gì) thay vì sử dụng bảng không?
Phiên bản bảng là cái này (viền được thêm vào để bạn có thể thấy nó):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table style="width:100%;">
<tr>
<td style="border:1px solid black;width:100px;height:10px;"></td>
<td style="border:1px solid black;height:10px;"></td>
</tr>
</table>
</body>
</html>
Nó tạo ra một cột bên trái với WIDTH CỐ ĐỊNH (không phải là chiều rộng phần trăm) và một cột bên phải mở rộng để lấp đầy KHÔNG GIAN TUYỆT VỜI trên dòng. Nghe có vẻ khá đơn giản phải không? Hơn nữa, vì không có gì là "nổi", chiều cao của ngăn chứa cha mẹ mở rộng đúng cách để bao gồm chiều cao của nội dung.
--BEGIN RANT--
Tôi đã thấy các triển khai "sửa lỗi rõ ràng" và "chén thánh" cho bố cục nhiều cột với cột bên có chiều rộng cố định, và chúng rất phức tạp. Chúng đảo ngược thứ tự của các phần tử, chúng sử dụng độ rộng phần trăm hoặc chúng sử dụng số float, lề âm và mối quan hệ giữa các thuộc tính "trái", "phải" và "lề" rất phức tạp. Hơn nữa, các bố cục có độ nhạy pixel phụ để việc thêm ngay cả một pixel viền, phần đệm hoặc lề sẽ phá vỡ toàn bộ bố cục và gửi toàn bộ cột cho dòng tiếp theo. Ví dụ, lỗi làm tròn là một vấn đề ngay cả khi bạn cố gắng làm điều gì đó đơn giản, như đặt 4 phần tử trên một dòng, với chiều rộng của mỗi người được đặt thành 25%.
--END RANT--
Tôi đã thử sử dụng "khối nội tuyến" và "khoảng trắng: nowrap;", nhưng vấn đề là tôi không thể lấy phần tử thứ 2 để lấp đầy khoảng trống còn lại trên dòng. Đặt chiều rộng thành một cái gì đó như "width: 100% - (LeftColumWidth) px" sẽ hoạt động trong một số trường hợp, nhưng thực hiện tính toán trong thuộc tính chiều rộng không thực sự được hỗ trợ.
display: table-*
cấu trúc sẽ hoạt động, nhưng thực sự không "nhiều ngữ nghĩa" hơn (là một trường hợp khủng khiếp củadiv
súp) và phá vỡ khả năng tương thích IE6. Cá nhân tôi sẽ gắn bó với<table>
, trừ khi có ai đó nghĩ ra một ý tưởng đơn giản thiên tài hoạt động mà không có