简体   繁体   中英

What is happening to my grid system? Bootstrap

Why are my pictures lining up strangely at col-sm-6? I understand that at that point each row should two pictures in a row. However, they are stacking strangely and I am left with two pictures in one row and a row of one picture below that. What am I doing wrong?

<div class="container">
  <div class="row">
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
  </div>
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
    </div>
  </div>
   <div class="row">
    <div class="col-xs-12 col-sm-6 col-md-4" >
      <img src="img/moss.jpg" class="img-responsive">
  </div>
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
    </div>
  </div>
   <div class="row">
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
  </div>
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4">
      <img src="img/moss.jpg" class="img-responsive">
    </div>
  </div>
</div>
</section>
</div>

在此处输入图片说明

I need every row to have two pictures on at col-sm-6

No need to repeat row class

<div class="container">
    <div class="row">
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>

        <div class="col-xs-12 col-sm-6 col-md-4" >
            <img src="img/moss.jpg" class="img-responsive">
        </div>
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>

        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>
        <div class="col-xs-12 col-sm-6 col-md-4">
            <img src="img/moss.jpg" class="img-responsive">
        </div>
    </div>
</div> 

In Bootstrap col-sm-6 has 50% width & col-sm-4 has 33.33% width so that you need to used col-sm-4 if you want three image per row.

 .img-responsive { margin-bottom: 15px; } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> </div> <div class="row"> <div class="col-xs-12 col-sm-4" > <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> </div> <div class="row"> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> <div class="col-xs-12 col-sm-4"> <img src="https://www.phoronix.com/assets/categories/linuxgaming.jpg" class="img-responsive"> </div> </div> </div> 

The row class starts a new row block where columns are laid out one after another. In order to display grid view you should place all items in a single row.

In your broken case each row contains up to 3 columns - that is why the third item has no sibling as the next row is rendered underneath.

Please see following snippet (expand it to see media queries in action):

 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> </div> </div> 

Another example using col-xs-12 col-sm-6 col-md-3 col-lg-2 Bootrap's grid system :

 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2"> <img src="https://placebear.com/640/450" class="img-responsive"> </div> </div> </div> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM