2013-09-02 61 views
6

Xem hình ảnh sau:Twitter Bootstrap Legacy: chiều cao thống nhất về nhịp

enter image description here

Những gì tôi cần là để mở rộng cột B để phù hợp với chiều cao cột đầu tiên, hoặc nếu tôi có nhiều cột họ luôn duy trì cùng chiều cao, điều chỉnh chiều cao cột lớn nhất.

Tôi đã chơi một thời gian mà không thành công với <div class="clearfix"></div>height: 100%.

Tôi đang sử dụng Twitter Bootstrap 2.3.2.

HTML:

<div id="main" class="row-fluid"> 
     <div class="span6"> 
      <div> 
       ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 
       BBBBBBBBBBBBBBBBBBBBBBBBBB 
      </div> 
     </div> 
     <div class="span6"> 
      <div> 
       B 
      </div> 
     </div> 
    </div> 

CSS:

@import url("http://twitter.github.com/bootstrap/assets/css/bootstrap.css"); 

     #main { 
      height: 5em; 
     } 
     .span6 { 
      background-color: lightgray; 
      border: 1px solid red; 
     } 

     .span6 > div { 
      background-color: lightblue; 
      border: 1px solid green; 
     } 

Đối với một số lý do fiddle không giống với hình ảnh với đoạn code trên, nhưng nếu bạn dán nó vào một test.html nó hoạt động đúng.

EDIT:

Và làm thế nào tôi có thể sắp xếp chiều cao của khu vực nội span div s?

EDIT 2:

Với sự hướng dẫn @Coop Cuối cùng tôi quản lý để có điều này được sắp xếp ra ngoài. Tôi đến với đoạn mã sau:

var content_height = []; 

jQuery('.row-fluid > div') 
    .each(function() { 
     content_height.push(jQuery(this).css({minHeight: 0}).height()); 
    }) 
    .each(function() { 
     jQuery(this).css({ 

     minHeight: Math.max.apply(Math, content_height) 
     }); 
    }); 
+1

Yeh đây là vấn đề tuổi già đối với các nhịp độ cao của chất lỏng. Tôi không thích các giải pháp CSS này vì chúng lộn xộn hoặc không tương thích ngược. Bạn có phiền khi sử dụng jQuery không? Nếu không, tôi có thể đăng một giải pháp với điều đó. – Coop

+0

@Adrift: Điều đó không làm việc trong mã ban đầu của tôi: (Bên cạnh đó, tôi cần phải duy trì chiều rộng như chiều rộng Bootstrap mặc định kể từ khi tôi sẽ thay đổi chiều rộng cột sau đó bằng cách thay đổi lớp span của nó. Thanks anyway :) – diosney

+0

@Coop: Chắc chắn rồi! Bất kỳ giải pháp được chào đón!:) Tôi thích một CSS thuần túy nhưng nếu bạn làm việc tốt và không có giải pháp CSS tôi sẽ gắn bó với bạn! :) – diosney

Trả lời

3

Để thực hiện việc này bằng giải pháp jQuery:

Đầu tiên hãy thêm lớp eHeight cho tất cả các div trong một hàng bạn muốn cung cấp cho cùng một chiều cao. Sau đó, thêm jQuery dưới đây:

$('.eHeight').each(function() { 
    var eHeight = $(this).parent().innerHeight(); 
    $(this).outerHeight(eHeight); 
}); 

Xem fiddle đây: http://jsfiddle.net/VA6D4/

Lưu ý rằng jQuery cần phải được trong một $(window).load vì Google Chrome cho 0 chiều cao và chiều rộng hình ảnh trước khi tải.

+0

Vâng, có vẻ như jQuery là cược tốt nhất ở đây. Khi tôi đã làm việc một giải pháp, tôi sẽ đăng nó ở đây như là một bình luận. – diosney

+0

Tuyệt. Tôi đã chơi xung quanh với rất nhiều giải pháp CSS và các bố trí khác để đạt được điều này trong quá khứ, nhưng đi đến kết luận rằng bit đơn giản này của jQuery là giải pháp tốt nhất. – Coop

+0

Tôi đã cố gắng khắc phục điều đó bằng cách sử dụng mã trong EDIT 2. Tôi sẽ đánh dấu câu trả lời của bạn là được chấp nhận vì bạn đã giúp tôi rất nhiều trong cách :) Cảm ơn – diosney

3

Xem này Fiddle Bạn có thể làm điều đó bằng cách thêm đệm lớn với lợi nhuận tiêu cực lớn và sau đó quấn tuổi của bạn với overflow: hidden;

CSS

.sameheight { 
    margin-bottom: -99999px; 
    padding-bottom: 99999px; 
    background-color:green; 
} 
.wrap { 
    overflow: hidden; 
} 
+0

Chà! Khéo léo! Làm việc tốt! Bạn có thể tử tế với tôi và giải thích lý thuyết đằng sau? Làm thế nào có thể hoạt động zero-result này với các lề, các paddings có thể khiến nó hoạt động? – diosney

+0

Aah giải pháp thú vị. Tôi cũng muốn biết lý thuyết. – Coop

+1

Mmmm, tôi nghĩ rằng bắt đầu có được nó. Chỉ cần một câu hỏi vẫn còn: nếu tôi có một div bên trong bên trong nhịp, với đường viền và màu nền, và muốn có chiều cao cột khác, làm thế nào tôi sẽ làm điều đó? Nếu tôi hiểu chính xác giải pháp của bạn, đường viền dưới cùng sẽ bị cắt với tràn phụ huynh, phải không? – diosney