2012-02-21 40 views
6

Vì vậy, tôi muốn có chân trang dính trên một trang và có được this one để làm việc cho tôi. Tất cả là tốt, nhưng không, không thực sự ..Chú thích chân trang, hay đúng hơn: nội dung không được kéo dài xuống chân trang

Vấn đề là tôi muốn nội dung phía trên chân trang để kéo dài tất cả các con đường xuống nó. Bây giờ hộp chứa nội dung chính kết thúc ngay sau văn bản trong hộp và có một khoảng trống lớn giữa chân trang và nội dung. Những gì tôi muốn là nền tảng của nội dung chính để kéo dài đến chân trang! Xem hình ảnh đẹp của tôi!

footerproblem

Đây là những gì tôi có ngay bây giờ trong html:

<div id="wrap"> 
    <!-- start header --> 
    <div id="header"> 
     <div id="header-content"> 
     </div> 
    </div> 
    <!-- end header --> 

    <!-- start main --> 
    <div id="main"> 
    <div id="main-content"> 
    </div> 
    </div> 
    <!-- end main --> 
</div> 
<!-- start footer --> 
<div id="footer"> 
</div> 

Và trong css:

html { 
    height: 100%; } 

body { 
    height: 100%;} 

/* wrap */ 
#wrap { 
    min-height: 100%; } 

/* main */ 
#main { 
    background-color: #43145c; 
    overflow: auto; 
    padding-bottom: 50px; } 

#main-content { 
    width: 720px; 
    margin: auto; 
    background-color: #643280; 
    padding-top: 20px; } 

#footer { 
    position: relative; 
    margin-top: -50px; 
    height: 50px; 
    clear: both; 
    background: red; } 

Tôi đã cố gắng thiết lập chiều cao tối thiểu của chính 100%, nhưng didn 't làm việc. Tôi chỉ muốn backgroundcolor của nội dung chính tất cả các con đường xuống footer, vì nó khác với cơ thể và hộp chính.

Có ý nghĩa gì không? Có ai giúp được không?

+0

đặt chiều cao tối thiểu của chính không thể hoạt động, bởi vì bố mẹ không có chiều cao được đặt. –

Trả lời

1

Hãy thử điều này:

Thay HTML và BODY của bạn Styles trong Style Sheet với điều này:

html,body {height: 100%;} 

Sau đó thay thế "wrapper" của bạn với điều này:

#wrap { min-height: 100%;
height: auto; }

Hope những sự giúp đỡ đó.

+0

Không, thực sự .. = (Bằng cách nào đó hộp chính cần lấy chiều cao tối thiểu của khoảng trống giữa đầu trang và chân trang, nhưng tôi không biết làm thế nào! – stinaq

+0

@StinaQ: Thêm chiều cao tối thiểu: chiều cao của chân trang; MAIN chính và áp dụng câu trả lời của tôi cho những gì được chỉ định. Hãy thử nó và nếu tất cả đều thất bại .. Kiểm tra này ra: http://ryanfait.com/sticky-footer/ –

1

Hãy thử

HTML này

<body> 
    <div id="wrap"> 
    <!-- start header --> 
    <div id="header"> 
     <div id="header-content"> 
     </div> 
    </div> 
    <!-- end header --> 

    <!-- start main --> 
    <div id="main"> 
     <div id="main-content"> 
     </div> 
    </div> 
    <!-- end main --> 

    <div class="push"></div> 
    </div> 

    <!-- start footer --> 
    <div id="footer"> 
    </div> 
</body> 

CSS

 * { 
      margin: 0; 
      padding: 0; 
     } 

     html, 
     body { 
      height: 100%; 
     } 

     /* wrap */ 
     #wrap { 
      background: green; 
      height: auto !important; 
      margin: 0 auto; 
     } 

     #wrap, 
     #main, 
     #main-content { 
      margin-bottom: -50px; 
      min-height: 100%; 
      height: 100%; 

     } 

     /* main */ 
     #main { 
      background-color: #43145c; 
     } 

     #main-content { 
      width: 720px; 
      margin: 0 auto; 
      background-color: #643280; 
     } 

     .push, #footer { 
      height: 50px; 
     } 

     #footer { 
      position: relative; 
      background: red; 
     }​ 
3

Tôi biết điều này đã được yêu cầu 6 tháng trước, nhưng tôi đã được tìm kiếm giải pháp cho vấn đề này cho khá trong khi bây giờ và hy vọng những người khác có thể hưởng lợi từ giải pháp mà tôi sử dụng được lưu trữ. Bạn đã phát hiện ra khi bạn nói rằng bằng cách nào đó hộp chính cần phải có được chiều cao tối thiểu của không gian giữa đầu trang và chân trang. Thật không may, tôi không biết làm thế nào điều này có thể được thực hiện với CSS tinh khiết, nó khá dễ dàng với javascript tất nhiên nhưng giải pháp đó không phải lúc nào cũng khả thi, và nó là loại lộn xộn về tách mã. Tin tốt là tùy thuộc vào những gì bạn cần làm, có một bản hack CSS mà bạn có thể sử dụng.

Điều tôi đã làm là thêm phần tử được định vị hoàn toàn bên dưới phần cơ bản được kéo dài từ bên dưới tiêu đề lên phía trên chân trang. Cách này tôi có thể thêm nền hoặc tô màu trên #divBelowBody về cơ bản này cho phép tôi giả vờ vấn đề này giải quyết (mặc dù giải pháp này để lại một vị đắng trong miệng của tôi).

Ngoài ra, nếu bạn muốn thêm đường viền quanh div nội dung của mình và hy vọng rằng nó được mở rộng đến chân trang ngay cả khi nội dung nhỏ, bạn bị vặn (mặc dù không thực sự, tôi có thể nghĩ đến hack) hai để làm cho hoàn toàn khả thi này), vì vậy nó chỉ có tác dụng nếu bạn đang hy vọng sẽ thêm một nền tảng hoặc gradient, vv

bạn có thể xem mã trong hành động ở đây: http://jsfiddle.net/qHAxG/ Mở rộng phần kết quả theo chiều ngang để thấy rõ hơn những gì đang diễn ra trên.

0

xem THIS bản trình diễn: nó có thể được sử dụng. Có vẻ như bạn muốn một div có màu nền để kéo dài xuống đáy. Nhưng vấn đề với chân trang dính là nó vẫn ở phía dưới cũng được - nhận được ra khỏi con đường của bạn khi nội dung kéo dài qua cổng xem. Vì vậy, nó cần một khoảng cách (chiều cao của nội dung) để biết làm thế nào khi làm điều đó. Nếu chiều cao đó không được chỉ định bởi nội dung thực tế ... 100% cũng không thực sự làm điều đó. bởi vì phần chân "dính" không thực sự hoạt động ... nó sẽ tắt màn hình. Nó thực sự là gì 100%?

toàn bộ điều này đã làm tôi thất vọng trong một năm ... nhưng tôi luôn tìm cách làm cho nó trông giống như cách tôi muốn ngay cả khi tôi không thể hoạt động theo cách mình muốn ... hy vọng rằng liên kết bản demo ở trên có thể sẽ cho mượn một phần khác vào câu đố. Chúc may mắn !

Các vấn đề liên quan