Marnix của câu trả lời liên quan đến việc sử dụng hàng đầu và đệm dưới cùng của các yếu tố nội dung; của tôi liên quan đến việc sử dụng biên giới trên và dưới.
Tôi tự mình tìm giải pháp này trong khi cố gắng tìm cách làm điều gì đó tương tự mà không cần sử dụng bảng: làm cho chiều cao của phần tử trung tâm 100%, nhưng sau đó đặt mô hình kích thước hộp thành "border-box "(để chiều cao không chỉ bao gồm nội dung trong hộp mà còn cả đường viền xung quanh hộp), làm cho đường viền trên và dưới thực sự dày (ví dụ, 20px), sau đó sử dụng vị trí cố định để che phủ đầu trang và chân trang đường biên trên và dưới của phần tử trung tâm.
Đây là CSS mẫu của tôi:
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#content {
height: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
/* Ensure that the height of the element includes the
box border, not just the content */
border: 0;
border-top: 20px solid white;
border-bottom: 20px solid white;
/* Leave some space for the header and footer to
overlay. */
}
#header,
#footer {
position: fixed;
left: 0;
right: 0;
height: 20px;
background-color: #eee;
/* Specify a background color so the content text doesn't
bleed through the footer! */
}
#header {
top: 0;
}
#footer {
bottom: 0;
}
này hoạt động trong Google Chrome 24 cho Mac. Tuy nhiên, tôi chưa thử nó trong các trình duyệt khác.
Hy vọng điều này sẽ giúp người khác vẫn đang đối mặt với sự cám dỗ khi chỉ cần sử dụng một bảng và hoàn tất bố cục trang. :-)
hey, nó kinda làm việc ... nhưng tôi đang gặp vấn đề. Giả sử tôi muốn đặt div bên trong nội dung ở độ cao 100% so với chiều cao của nội dung ... làm thế nào? – JCOC611
chỉ cần xem ra để thu hẹp margin. – zzzzBov
@ JCOC611 đảm bảo 'vị trí: tương đối' được đặt trên phần tử cha khi bạn muốn sử dụng kích thước tương đối. – zzzzBov