2013-07-03 23 views
6

Tôi hiện đang điều tra việc sử dụng bootstrap Twitter làm nền tảng cho các dự án phát triển web trong tương lai cho khách hàng. Tôi đã trải qua tất cả tài liệu chuẩn trên trang Github của họ và từ sự hiểu biết của tôi, để sử dụng bố cục lưới một cách hiệu quả, các hàng của bạn chỉ được chứa tổng cộng mười hai cột (được tạo thành từ các phần tử khác nhau hoặc một phần tử).Các vấn đề về lưới khởi động Twitter - Các mục chứa tràn khi giảm kích thước cửa sổ bằng cách sử dụng đáp ứng

Với điều này trong tâm trí tôi đã tiến hành một thử nghiệm nhỏ với một số văn bản kéo dài 4 cột trong một hàng cùng với một div bù đắp kéo dài 6 cột. Điều này dường như làm việc tốt tuy nhiên, tôi đã cố gắng để bao gồm một hàng duy nhất chứa một div spanning 3 cột được bù đắp bởi 9 cột (vẫn còn tổng cộng 12) để cho ấn tượng rằng nội dung trong div được thả ngay trên trang. Vấn đề là điều này xuất hiện tốt khi chế độ cửa sổ là phù hợp với một máy tính để bàn tuy nhiên khi tôi bắt đầu quy mô cửa sổ, các nội dung của div được đẩy ra khỏi container tổng thể. Nếu tôi tiếp tục mở rộng cửa sổ xuống, các phần tử chồng như tôi mong đợi cho chế độ xem di động.

Câu hỏi của tôi là, tại sao điều này hoạt động theo cách này? Sự hiểu biết của tôi là miễn là có 12 cột nội dung sẽ vẫn được bao bọc trong vùng chứa bên ngoài của họ.

Mã của tôi có thể được tìm thấy bên dưới. Có rất nhiều css nội tuyến nhưng điều này chỉ dành cho mục đích thử nghiệm. Đây là bootstrap cổ phiếu với tất cả các tùy chọn được kiểm tra ở giai đoạn tùy biến có nghĩa là tất cả các tùy chọn đáp ứng được bao gồm.

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Bootstrap Example</title> 
    <meta name="viewport" content="width-device-width, initial-scale=1.0"> 
    <!--BOOTSTRAP--> 
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
    </head> 
<body> 
    <div class="container-fluid" style="border: 1px solid #cccccc"> 
     <div class="row-fluid"> 
     <div class="span4">This is a div spanning 4 columns</div> 
     <div class="span6 offset2">This is a div spanning 6 columns. It should appear alongside the column spanning 4 columns.</div> 
     </div> 
     <div class="row-fluid"> 
     <div class="span3 offset9"> 
      <form class="form-search"> 
       <div class="row-fluid"> 
        <div class="input-append span2"> 
         <input type="text" class="input-medium search-query"> 
         <button type="submit" class="btn btn-info"><i class="icon-search icon-white"></i> Search </button> 
        </div> 
       </div> 
      </form> 
     </div> 
    </div> 
    </div> 
    </body> 
<script src="http://code.jquery.com/jquery.js"></script> 
<script src="js/bootstrap.min.js"></script> 
</html> 

Điều này xảy ra cho dù tôi có sử dụng bố cục lỏng hay không. Trong ví dụ về chất lỏng, hộp tìm kiếm sẽ xuất hiện như thể nó đang tắt màn hình. Trong ví dụ cố định, nó sẽ phủ lên đường viền màu xám của vùng chứa.

Trả lời

4

Có phải thêm mã của bạn ở đây: http://bootply.com/66598

Hình ảnh dưới đây cho thấy vấn đề của bạn/câu hỏi (tôi nghĩ): enter image description here

Để hiểu vấn đề của bạn, bạn sẽ phải nghiên cứu lưới và hiểu sự khác biệt giữa lưới mặc định và lưới chất lỏng, xem: http://twitter.github.io/bootstrap/scaffolding.html#gridSystem

Sự cố của bạn sẽ xảy ra trên màn hình rộng hơn 767px chiều rộng. Bên dưới các cột chiều rộng này (div có class = "span {x}") sẽ được xếp chồng. Trên màn hình lớn vấn đề cũng sẽ không xảy ra.

Lưới mặc định (Twitter Bootstrap 2.x):

Khi làm tổ hàng hàng con được một khoảng thời tổng mà tổng lên đến khoảng thời gian mẹ của nó.

Ví dụ:

<div class="row"> 
<div class="span6"> 
<!--nesting--> 
    <div class="row"> 
    <div class="span3"></div> 
    <div class="span3"></div> 
    </div> 
</div> 
<div class="span6"> 
</div> 
</div> 

Trong lưới các lớp tuổi có chiều rộng cố định trong pixel (tùy trên chiều rộng màn hình), xem:
giữa 768px và 980px màn hình rộng: Mỗi span1 sẽ 940 - (11 máng xối 20px)/12 = 60px (trên 980px (1170-11 * 30)/12 = 70px).

Bây giờ, sự cố của bạn đã được đặt: <input type="text" class="input-medium search-query"> .đầu vào-trung bình sẽ cung cấp cho đầu vào này một chiều rộng cố định là 150px và nút "tìm kiếm" cũng mất không gian (75px;). Bạn đặt điều này trong một phù thủy span2 (<div class="input-append span2">) là trong khoảng 3 (<div class="span3 offset9">). Trên lưới 940 mặc định, span3 có chiều rộng 3x60 + 2x20 = 220px; trong khi hộp thư của bạn mất 75 + 150 = 225px. Vì lý do này, hộp khóa của bạn sẽ bị vỡ ra khỏi lưới điện . Một span4 sẽ không có vấn đề này. Tất nhiên nó cũng sẽ phá vỡ ra của bạn span2.

Lưới chất lỏng (Bootstrap 2.x của Twitter và Twitters Bootstrap 3):

Trong lưới chất lỏng mỗi cột (khoảng {x}) của nhận được một tỷ lệ phần trăm của chiều rộng của nó là mẹ. Khi lồng hàng con có thể được chia nhỏ lại thành 12 cột.

Ví dụ:

<div class="row-fluid"> 
<div class="span6"> 
<!--nesting--> 
    <div class="row"> 
    <div class="span6">50% of the parent and 25% of the grid</div> 
    <div class="span6">50% of the parent and 25% of the grid</div> 
    </div> 
</div> 
<div class="span6"> 
    <div class="row"> 
    <div class="span12">100% of the parent and 50% of the grid</div> 
    </div> 
</div> 
</div> 

Trong trường hợp của bạn hộp tìm kiếm của bạn được lồng trong một span2 trong một span3. Khoảng 3 sẽ có khoảng 25% chiều rộng lưới. Khi 25% lưới của bạn chiều rộng sẽ nhỏ hơn 225px, hộp tìm kiếm sẽ tách ra khỏi lưới. Vì vậy, vấn đề của bạn sẽ bắt đầu xung quanh chiều rộng màn hình là 4 x 225 = 900px (ngay bên dưới lưới mặc định là 940 pixel). Cũng ở đây nó sẽ giúp đưa hộp đựng của bạn trong một khoảng 4 hoặc 5. CHÚ Ý <div class="input-append span2"> sẽ có chiều rộng 16,6% của 25% của lưới (rất nhỏ).

giải pháp có thể: Sử dụng một lớp kéo phù hợp với hộp tìm kiếm của bạn:

<div class="row-fluid"> 
    <div class="span3 offset9"> 
     <form class="form-search"> 

       <div class="input-append pull-right"> 
        <input type="text" class="input-medium search-query"> 
        <button type="submit" class="btn btn-info"><i class="icon-search icon-white"></i> Search </button> 
       </div> 

     </form> 
    </div> 
</div> 
Các vấn đề liên quan