Tôi có một trang web với một cơ thể trông giống như thế:HTML layout: thêm cột bên phải trang web hiện
<body>
<div id="header">...</div>
<div id="content">...</div>
<div id="footer">...</div>
</body>
Không tuyệt đối/thủ thuật định vị tương đối được sử dụng trong những div
s, nhưng có rất nhiều float
s, clear
s, margin
s và padding
s theo kiểu div
s và các yếu tố bên trong của chúng. Tất cả điều này mang lại một trang web trông như thế:
┌───────────────┐
│ header │
└───────────────┘
┌───────────────┐
│ content │
└───────────────┘
┌───────────────┐
│ footer │
└───────────────┘
Câu hỏi của tôi là: làm thế nào để tôi thêm một chiều rộng cố định độc lập cột bên trái (sidebar) với nội dung bổ sung mà sẽ co lại toàn bộ trang web (header-content-footer) và dịch chuyển sang phải.
┌────┐┌─────────┐
│side││ header │
│bar │└─────────┘
│ │┌─────────┐
│ ││ content │
│ │└─────────┘
│ │┌─────────┐
│ ││ footer │
└────┘└─────────┘
tôi biết một giải pháp gần như lý tưởng, nhưng nó là xấu xí và đòi hỏi phải tái làm tổ divs hiện:
<body>
<table>
<tr>
<td id="sidebar">...</td>
<td>
<div id="header">...</div>
<div id="content">...</div>
<div id="footer">...</div>
</td>
</tr>
</table>
</body>
Có thể làm như vậy tao nhã, chỉ cần thêm một yếu tố bên ngoài đâu đó trong cơ thể, tức là, như thế?
<body>
<div id="sidebar">...</div>
<div id="header">...</div>
<div id="content">...</div>
<div id="footer">...</div>
</body>
Tôi đã thử các cách tiếp cận ngây thơ - chẳng hạn như phong cách:
#sidebar { float: left; width: 20em; }
hoặc
#header { margin-left: 20em; }
#content { margin-left: 20em; }
#footer { margin-left: 20em; }
Đây là loại công trình, nhưng nó phá vỡ trong thời gian sớm clear: both
hoặc clear: left
đang gặp phải trong tiêu đề/content/footer.
Vì vậy, có bất kỳ giải pháp thay thế nào cho giải pháp bảng không?
Cảm ơn! Giải pháp này cũng bao gồm tiêu đề/nội dung/chân trang làm tổ lại, nhưng ít nhất nó không cồng kềnh như giải pháp dựa trên bảng. Có thể nào giữ lại đầu trang/nội dung/chân trang trong 'nội dung'? Tôi đoán có thể tạo kiểu 'body' với vị trí tương đối và đệm? – GreyCat
Ở đây bạn đi, giải pháp của bạn cũng hoạt động trên 'body': http://jsfiddle.net/jAVQv/1/ - có vẻ như đó là chính xác những gì tôi cần ở đây. Tôi hiểu rằng kiểu dáng 'body' là một thực hành không tốt, nhưng tôi đoán nó tốt hơn tất cả các lựa chọn thay thế (tức là làm tổ lại) trong trường hợp này. – GreyCat