Làm cách nào tôi có thể có được một cột Bootstrap để trải rộng nhiều hàng?


158

Tôi đang cố gắng tìm ra cách thực hiện lưới sau với Bootstrap.

Tôi không chắc chắn cách tôi tạo hộp (số 1) kéo dài hai hàng. Các hộp được tạo lập trình theo thứ tự chúng được đặt ra. Hộp 1 là một thông điệp chào mừng.

nhập mô tả hình ảnh ở đây

Bất kỳ ý tưởng về cách tốt nhất để đi với điều này?


1
twitter.github.io/bootstrap/scaffolding.html#gridSystem , Bạn có thể lồng hệ thống lưới Bootstrap.
TheHippo

1
Vì vậy, tạo 2 hàng, thay vì 3, lồng 2 hàng trong hàng đầu tiên? Điều này có thể có vấn đề khi các hộp được tạo lập trình.
James Jeffery

1
Không biết nó có hoạt động không, nhưng liệu việc thêm pull-leftlớp vào tất cả các hộp có hoạt động không? nó sẽ không làm cho hộp 1 có cùng chiều cao với 2 + 4, nhưng nó sẽ cho phép nó hoạt động khi bạn đặt chiều cao.
Hailwood

Hailwood, đặt nó như một câu trả lời nếu bạn có thể, nếu không tôi sẽ dán mã của tôi. Nó hoạt động ... ít nhất là trên Chrome. Cần kiểm tra nó trong các trình duyệt khác.
James Jeffery

@Hailwood nguyên vẹn, không cần kéo trái. Chỉ cần thiết lập một chiều cao trên phần tử đầu tiên hoạt động.
James Jeffery

Câu trả lời:


164

Đối với Bootstrap 3:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>


<div class="row">
    <div class="col-md-4">
        <div class="well">1
            <br/>
            <br/>
            <br/>
            <br/>
            <br/>
        </div>
    </div>
    <div class="col-md-8">
        <div class="row">
            <div class="col-md-6">
                <div class="well">2</div>
            </div>
            <div class="col-md-6">
                <div class="well">3</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-6">
                <div class="well">4</div>
            </div>
            <div class="col-md-6">
                <div class="well">5</div>
            </div>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-md-4">
        <div class="well">6</div>
    </div>
    <div class="col-md-4">
        <div class="well">7</div>
    </div>
    <div class="col-md-4">
        <div class="well">8</div>
    </div>
</div>

Đối với Bootstrap 2:

Xem bản demo trên JSFiddle (Bootstrap 2): http://jsfiddle.net/SxcqH/52/


Làm thế nào bạn có thể làm cho hộp bốn và năm lấp đầy chiều cao của hàng khi hộp một phát triển?
Imran New Zealand


Đây là ví dụ không hoàn toàn hoạt động, cạnh dưới của cột đầu tiên hơi lệch so với phần còn lại.
JackKalish

Đây là một câu trả lời tuyệt vời, nhưng nếu hộp 5 cũng cần phải mở rộng sang hàng 3, và hơn thế nữa, thì sao?
Misha'el

@ Misha'el Điều đó khá đơn giản, chỉ cần làm những gì anh ấy đã làm cho hộp 1 và áp dụng nó vào hộp 3/5. Cần có 3 cột có kích thước bằng nhau, một cột ở bên ngoài sẽ chỉ chứa 1 hàng, một cột ở hai hàng bên trong.
Nathan Williams

17

Giống như các ý kiến ​​gợi ý, giải pháp là sử dụng các nhịp / hàng lồng nhau.

<div class="container">
    <div class="row">
        <div class="span4">1</div>
        <div class="span8">
            <div class="row">
                <div class="span4">2</div>
                <div class="span4">3</div>
            </div>
            <div class="row">
                <div class="span4">4</div>
                <div class="span4">5</div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="span4">6</div>
        <div class="span4">7</div>
        <div class="span4">8</div>
    </div>
</div>

1

Ví dụ dưới đây dường như hoạt động. Chỉ cần đặt chiều cao cho phần tử đầu tiên

<ul class="row">
    <li class="span4" style="height: 100px"><h1>1</h1></li>
    <li class="span4"><h1>2</h1></li>
    <li class="span4"><h1>3</h1></li>
    <li class="span4"><h1>4</h1></li>
    <li class="span4"><h1>5</h1></li>
    <li class="span4"><h1>6</h1></li>
    <li class="span4"><h1>7</h1></li>
    <li class="span4"><h1>8</h1></li>
</ul>

Tôi không thể không nghĩ rằng đó là việc sử dụng sai một hàng mặc dù.


1

Tôi tin rằng phần liên quan đến cách kéo dài các hàng đã được trả lời kỹ lưỡng (tức là bằng các hàng lồng nhau), nhưng tôi cũng gặp phải vấn đề về các hàng lồng nhau của mình không làm đầy container của chúng. Trong khi flexbox và lề âm là một tùy chọn, một giải pháp dễ dàng hơn nhiều là sử dụng h-50lớp được xác định trước trên các rowhộp chứa 2, 3, 4 và 5.

Lưu ý: Tôi đang sử dụng Bootstrap-4, tôi chỉ muốn chia sẻ vì tôi gặp phải vấn đề tương tự và thấy đây là một giải pháp thanh lịch hơn :)


0
<div class="row">
  <div class="col-4 alert alert-primary">
     1
  </div>
  <div class="col-8">
    <div class="row">
      <div class="col-6 alert alert-primary">
        2
      </div>
      <div class="col-6 alert alert-primary">
        3
      </div>
      <div class="col-6 alert alert-primary">
        4
      </div>
      <div class="col-6 alert alert-primary">
        5
      </div>
    </div>
  </div>
</div>
<div class="row">
  <div class="col-4 alert alert-primary">
    6
  </div>
  <div class="col-4 alert alert-primary">
    7
  </div>
  <div class="col-4 alert alert-primary">
    8
  </div>
</div>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.