2012-10-16 26 views
7

Tôi đã đọc rất nhiều ở đây và không thể tìm thấy giải pháp cho câu trả lời của tôi.Độ cao div 100% cao của cha mẹ động mà không có vị trí tuyệt đối?

Tôi có div vùng chứa, với nhiều div được thả nổi bên trái, theo html bên dưới.

<div class="catbg0" id="b1"> 

    <div class="catb1">#</div> 
    <div class="catb2">Board Name</div> 
    <div class="catb3">Topics</div> 
    <div class="catb4">Posts</div> 
    <div class="catb5">Last Post</div> 
    <div class="clearboth"></div> 

</div> 

Vấn đề của tôi là .catbg0 không có một chiều cao cụ thể, nội dung của .catb2 đẩy nó xuống với chiều cao của nó, và như nội dung có thể thay đổi tôi không thể thiết lập một chiều cao cụ thể. Tôi muốn phần còn lại của các lớp .catb đi đến 100% chiều cao của lớp .catbg0, nhưng thiết lập chiều cao: 100%; không hoạt động.

Dưới đây là CSS liên quan đến điều trên.

.catb1 {float: left; width: 9%; height: 100%; min-height: 100%;} 
.catb2 {float: left; width: 52%; height: 100%; min-height: 100%;} 
.catb3 {float: left; width: 8%; height: 100%; min-height: 100%;} 
.catb4 {float: left; width: 8%; height: 100%; min-height: 100%;} 
.catb5 {float: left; width: 23%; height: 100%; min-height: 100%;} 
.clearboth {clear: both; height:0; width: 0; margin: 0; padding: 0;} 

Mọi ý tưởng? Cảm ơn.

+2

Chào mừng bạn đến với SO! Điều này sẽ dễ dàng hơn để trả lời nếu bạn đã bao gồm CSS có liên quan. – JcFx

Trả lời

2

Như tôi biết chỉ chặn với vị trí: tuyệt đối có thể có chiều cao 100% và con của nó.

Nếu bạn chắc chắn rằng .catb2 có chiều cao lớn nhất của .catb * cố gắng thêm wrapper:

<div class="catbg0" id="b1"> 

    <div class="catb2">Board Name</div> 

    <div class="wrapper"> 
     <div class="catb1">#</div> 
     <!-- margin == catb2 width --> 
     <div class="catb3">Topics</div> 
     <div class="catb4">Posts</div> 
     <div class="catb5">Last Post</div> 
    </div> 

    <div class="clearboth"></div> 

</div> 

CSS

.catbg0 { position: relative; } 
.wrapper { position: absolute; width: 100%; height: 100%; } 
.catb2 { margin-left: /* catb1 width here */ } 

T.B. Có thể nó sẽ hữu ích cho bạn - A new micro clearfix hack

+0

Điều đó có vẻ hoạt động tốt, ngoại trừ thực tế div .catb2 hiện bị ẩn đằng sau phần còn lại của các div được thả nổi? Nếu tôi thêm .catb1 {margin-right: 52% (width of .catbg2)} nó hoạt động tốt tuy nhiên? Có phải vì tôi không thay đổi phần một cách chính xác? – sangwe11

+0

Có, bạn có thể thêm .catb1 {margin-right: 52%;} hoặc .catb3 {margin-left: 52%}. nó không quan trọng –

+0

đây là một ví dụ jsfiddle cho điều này: https://jsfiddle.net/f14p9kzL/ Tôi cũng không muốn sử dụng vị trí tuyệt đối nhưng không có gì tôi đã cố gắng làm việc và điều này thực sự là giải pháp tốt nhất – Francisc0

0

Tôi không chắc lắm. Nhưng cho thùng chứa (catbg0) tràn: ẩn; có thể làm việc. Thông thường những gì này làm là kéo dài div mà nó được áp dụng cho (Khi một chiều cao cụ thể không được thiết lập).

Lưu ý: nó vẫn là một tràn, từ dài vv và divs sẽ chỉ tiếp tục kể từ khi mặt nạ tràn div.

+0

Đã thêm CSS có liên quan. Ngoài ra, vấn đề tôi đang cố gắng sửa chữa isnt kéo dài xuống div container, phần tử clearboth làm điều đó, nó kéo dài .catb1, .catb3, .catb4, .catb5, đến bất kỳ chiều cao nào .catb2 cũng trải dài .catb0. – sangwe11