【问题标题】:Bootstrap cards/thumbnails not lining up side by side correctly in the grid system & card deck引导卡/缩略图在网格系统和卡片组中未正确并排排列
【发布时间】:2016-05-16 16:50:47
【问题描述】:

我在让 Boostrap 的缩略图和卡片在他们的网格系统中并排排列时遇到了问题。基本上,这是一项任务,我必须遵循某些参数: - 必须使用 Bootstrap 网格系统 sm 大小的列 - 这些正方形的内容(缩略图或卡片)必须在移动屏幕上垂直堆叠,并排成 3 个正方形以获得更大的屏幕 - 一切都必须流畅且响应迅速 - 并且必须匹配给我的模型图片

起初,我尝试只使用卡片,但它们没有像我的模型图片那样的轮廓;然后我尝试只使用缩略图,但它们并没有按照我需要的方式垂直堆叠。现在,使用卡片和缩略图,我让它们看起来更像我想要的视觉方式,并且它们在较小的屏幕上正确水平堆叠,但是当我将屏幕变大时它们不会并排堆叠......

要完成这项任务,我还有很长的路要走,我仍然需要创建大量 CSS,但我觉得首先我需要解决这个整体布局问题/为什么这些不能作为响应式正确堆叠单元。

这里是我的小提琴的链接: (我最后一个使用卡片和缩略图): https://jsfiddle.net/Tamara6666/1n6nau4c/

和代码:

<body>
<main>
<div class="container-fluid">
<div class="row">
<div class="card-deck-wrapper">
  <div class="card-deck">
<div class="col-sm-6">
<div class="thumbnail">
<div class="card">
  <img class="card-img-top img-responsive" img src="peppers.jpeg" alt="peppers">
  <div class="card-block">
    <h4 class="card-title">$1.00</h4>
    <p></p>
    <select class="form-control">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
<p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
  </div>
</div>
</div>
<div class="col-sm-6">
<div class="thumbnail">
<div class="card">
  <img class="card-img-top img-responsive" img src="rasp.jpeg" alt="raspberries">
  <div class="card-block">
    <h4 class="card-title">$2.50 <br><small>$5.00 Total</small></h4>
    <p></p>
            <select class="form-control">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
<p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
  </div>
</div>
</div>

<div class="col-sm-6">
<div class="thumbnail">
<div class="card">
  <img class="card-img-top img-responsive" img src="kiwis.jpg" alt="kiwis">
  <div class="card-block">
    <h4 class="card-title">$.30 <br><small>$2.40 Total</small></h4>
    <p></p>
    <select class="form-control">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
 <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
  </div>
</div>
</div>


</div>
</div>

</div>
</div>


</div>
</main>
</body>

(我的第一个只使用缩略图): https://jsfiddle.net/Tamara6666/5thon1mb/

<body>
<main>
<div class="container-fluid">
  <div class="row">

  <div class="col-sm-6 col-md-4">
  <div class="thumbnail">
      <img src="peppers.jpeg" alt="peppers" class="img-responsive">
      <div class="caption">
        <h3 class="text-left">$1.00</h3>
        <select class="form-control">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
<br>
        <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
      </div>
    </div>
  </div>

  <div class="col-sm-6 col-md-4">
  <div class="thumbnail">
      <img src="rasp.jpeg" alt="raspberries" class="img-responsive">
      <div class="caption">
        <h3 class="text-left">$2.50 <br><small>$5.00 Total</small></h3>
        <select class="form-control">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
<br>
        <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
      </div>
    </div>
  </div>

  <div class="col-sm-6 col-md-4">
  <div class="thumbnail">
      <img src="kiwis.jpg" alt="kiwis" class="img-responsive">
      <div class="caption">
        <h3 class="text-left">$.30 <br><small>$2.40 Total</small></h3>
        <select class="form-control">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
<br>
 <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
      </div>
    </div>
  </div>
</div>

但是,正确地堆叠或以流畅/响应的方式行动 - 一切都必须是流畅的,每个盒子必须在更大的屏幕上平等地并排堆叠,并且在彼此的顶部平均堆叠,每个盒子占据整个水平空间在较小的屏幕上。第一个示例更接近于寻找较小屏幕的方式,但根本没有并排堆叠......

第二个并排开始(但盒子不相等),但它不能正确堆叠在移动设备上。我觉得我需要解决这个布局问题,然后才能真正深入研究这个项目的 css 和其他元素,我真的不知道为什么它不起作用;我曾尝试将卡片放入套牌和包装纸中,但没有奏效。

任何帮助将不胜感激,谢谢!

**另外,我必须通过 JSFiddle 上交这个作业——有谁知道我如何让我的 Img 出现在那里?我在老式的 html/css 上了解到您将 img 放在带有您的代码的文件夹中,所以我不确定在 JS Fiddle 上该怎么做——它们是否进入外部资源?如果是,如何?

非常感谢!希望我能学会这一点,并在一些帮助下搞清楚!

【问题讨论】:

    标签: html css twitter-bootstrap responsive-design grid-layout


    【解决方案1】:

    您使用 2 个不同版本的 Bootstrap(卡片是 V4,缩略图是 V3),但两者使用相同的 CSS (v3.3.6)。

    旁注:如果您需要将自己的图像放在 jsFiddle 上,则需要将它们放在可以通过公共互联网访问的地方。即网络服务器等。

    查看工作示例片段。

    Bootstrap V4 Card Grid(你的第一个 jsFiddle)

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet" />
    
    <main>
    
      <div class="container-fluid">
        <div class="row">
    
          <div class="col-sm-4">
    
            <div class="card">
              <img class="card-img-top img-fluid" src="http://placehold.it/750x325" alt="Card image cap">
              <div class="card-block">
                <h4 class="card-title">Card title</h4>
                <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
              </div>
              <ul class="list-group list-group-flush">
                <li class="list-group-item">Cras justo odio</li>
                <li class="list-group-item">Dapibus ac facilisis in</li>
                <li class="list-group-item">Vestibulum at eros</li>
              </ul>
              <div class="card-block">
                <a href="#" class="card-link">Card link</a>
              </div>
            </div>
    
          </div>
    
          <div class="col-sm-4">
    
            <div class="card">
              <img class="card-img-top img-fluid" src="http://placehold.it/750x325" alt="Card image cap">
              <div class="card-block">
                <h4 class="card-title">Card title</h4>
                <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
              </div>
              <ul class="list-group list-group-flush">
                <li class="list-group-item">Cras justo odio</li>
                <li class="list-group-item">Dapibus ac facilisis in</li>
                <li class="list-group-item">Vestibulum at eros</li>
              </ul>
              <div class="card-block">
                <a href="#" class="card-link">Card link</a>
              </div>
            </div>
    
          </div>
    
          <div class="col-sm-4">
    
            <div class="card">
              <img class="card-img-top img-fluid" src="http://placehold.it/750x325" alt="Card image cap">
              <div class="card-block">
                <h4 class="card-title">Card title</h4>
                <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
              </div>
              <ul class="list-group list-group-flush">
                <li class="list-group-item">Cras justo odio</li>
                <li class="list-group-item">Dapibus ac facilisis in</li>
                <li class="list-group-item">Vestibulum at eros</li>
              </ul>
              <div class="card-block">
                <a href="#" class="card-link">Card link</a>
              </div>
            </div>
    
          </div>
    
          <div class="col-sm-4">
    
            <div class="card">
              <img class="card-img-top img-fluid" src="http://placehold.it/750x325" alt="Card image cap">
              <div class="card-block">
                <h4 class="card-title">Card title</h4>
                <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
              </div>
              <ul class="list-group list-group-flush">
                <li class="list-group-item">Cras justo odio</li>
                <li class="list-group-item">Dapibus ac facilisis in</li>
                <li class="list-group-item">Vestibulum at eros</li>
              </ul>
              <div class="card-block">
                <a href="#" class="card-link">Card link</a>
              </div>
            </div>
    
          </div>
    
          <div class="col-sm-4">
    
            <div class="card">
              <img class="card-img-top img-fluid" src="http://placehold.it/750x325" alt="Card image cap">
              <div class="card-block">
                <h4 class="card-title">Card title</h4>
                <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
              </div>
              <ul class="list-group list-group-flush">
                <li class="list-group-item">Cras justo odio</li>
                <li class="list-group-item">Dapibus ac facilisis in</li>
                <li class="list-group-item">Vestibulum at eros</li>
              </ul>
              <div class="card-block">
                <a href="#" class="card-link">Card link</a>
              </div>
            </div>
    
          </div>
    
          <div class="col-sm-4">
    
            <div class="card">
              <img class="card-img-top img-fluid" src="http://placehold.it/750x325" alt="Card image cap">
              <div class="card-block">
                <h4 class="card-title">Card title</h4>
                <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
              </div>
              <ul class="list-group list-group-flush">
                <li class="list-group-item">Cras justo odio</li>
                <li class="list-group-item">Dapibus ac facilisis in</li>
                <li class="list-group-item">Vestibulum at eros</li>
              </ul>
              <div class="card-block">
                <a href="#" class="card-link">Card link</a>
              </div>
            </div>
    
          </div>
    
        </div>
      </div>
    
    </main>

    Bootstrap 3 缩略图网格(你的第二个 jsFiddle)

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
    <main>
      <div class="container-fluid">
        <div class="row">
    
          <div class="col-sm-4">
            <div class="thumbnail">
              <img src="http://placehold.it/750x325" alt="...">
              <div class="caption">
                <h3>Thumbnail label</h3>
                <p>...</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
                </p>
              </div>
            </div>
          </div>
    
          <div class="col-sm-4">
            <div class="thumbnail">
              <img src="http://placehold.it/750x325" alt="...">
              <div class="caption">
                <h3>Thumbnail label</h3>
                <p>...</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
                </p>
              </div>
            </div>
          </div>
    
          <div class="col-sm-4">
            <div class="thumbnail">
              <img src="http://placehold.it/750x325" alt="...">
              <div class="caption">
                <h3>Thumbnail label</h3>
                <p>...</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
                </p>
              </div>
            </div>
          </div>
    
          <div class="col-sm-4">
            <div class="thumbnail">
              <img src="http://placehold.it/750x325" alt="...">
              <div class="caption">
                <h3>Thumbnail label</h3>
                <p>...</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
                </p>
              </div>
            </div>
          </div>
    
          <div class="col-sm-4">
            <div class="thumbnail">
              <img src="http://placehold.it/750x325" alt="...">
              <div class="caption">
                <h3>Thumbnail label</h3>
                <p>...</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
                </p>
              </div>
            </div>
          </div>
    
          <div class="col-sm-4">
            <div class="thumbnail">
              <img src="http://placehold.it/750x325" alt="...">
              <div class="caption">
                <h3>Thumbnail label</h3>
                <p>...</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
                </p>
              </div>
            </div>
          </div>
    
        </div>
      </div>
    </main>

    【讨论】:

    • 谢谢你为我清理了@vanburen——我没有意识到我不能同时使用它们——谢谢——我会试着清理一下,看看能不能修复它 - 谢谢!
    • 嘿@vanburen - 我有一个问题要问你 - 我重新开始,只是使用缩略图和像你的代码一样,但我的缩略图一直到右边仍然比其他 2 短一点屏幕熄灭了,所有 3 个都并排 - 我不知道它发生了什么 - 对于移动设备,它均匀地堆叠在其他屏幕上,但左边的屏幕并排关闭,我不知道为什么:jsfiddle.net/Tamara6666/3dvf02xr 抱歉问,但我需要 2 来解决这个问题,看来你对此了解很多......谢谢你
    • jsFiddle 中的第一列(最左边)较短;唯一的原因是它不像其他两列那样包含 total &lt;br&gt;&lt;small&gt;$5.00 Total&lt;/small&gt;。这是你的意思还是别的什么?
    • 哦,哇,是的!谢谢@vanburen - 也许我可以重新定位这些东西以改变布局 - 谢谢!谢谢你也向我解释了这个像素,非常感谢!谢谢!
    • 不客气,看看这个问题的答案,因为它可能对您的布局有所帮助。 stackoverflow.com/questions/34570290/…
    【解决方案2】:
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
        <!-- Bootstrap -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" >
        <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
      </head>
      <body>
        <div class="container-fluid">
          <div class="row">
            <div class="card-deck-wrapper">
              <div class="card-deck">
                <div class="col-sm-4">
                  <div class="thumbnail">
                    <div class="card">
                      <img class="card-img-top img-responsive" img src="peppers.jpeg" alt="peppers">
                      <div class="card-block">
                        <h4 class="card-title">$1.00</h4>
                        <p></p>
                        <select class="form-control">
                          <option>1</option>
                          <option>2</option>
                          <option>3</option>
                          <option>4</option>
                          <option>5</option>
                        </select>
                        <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
                      </div>
                      <!--card-block-->
                    </div>
                    <!--card-->
                  </div>
                  <!--thumbnail-->
                </div>
                <!--col-sm-6-->
                <div class="col-sm-4">
                  <div class="thumbnail">
                    <div class="card">
                      <img class="card-img-top img-responsive" img src="rasp.jpeg" alt="raspberries">
                      <div class="card-block">
                        <h4 class="card-title">$2.50 <br><small>$5.00 Total</small></h4>
                        <p></p>
                        <select class="form-control">
                          <option>1</option>
                          <option>2</option>
                          <option>3</option>
                          <option>4</option>
                          <option>5</option>
                        </select>
                        <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
                      </div>
                      <!--card-block-->
                    </div>
                    <!--card-->
                  </div>
                  <!--thumbnail-->
                </div>
                <!--col-sm-4-->
                <div class="col-sm-4">
                  <div class="thumbnail">
                    <div class="card">
                      <img class="card-img-top img-responsive" img src="kiwis.jpg" alt="kiwis">
                      <div class="card-block">
                        <h4 class="card-title">$.30 <br><small>$2.40 Total</small></h4>
                        <p></p>
                        <select class="form-control">
                          <option>1</option>
                          <option>2</option>
                          <option>3</option>
                          <option>4</option>
                          <option>5</option>
                        </select>
                        <p><button type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span>ADD TO CART</button></p>
                      </div>
                      <!--card-block-->
                    </div>
                    <!--card-->
                  </div>
                  <!--thumbnail-->
                </div>
                <!--cols-m-4-->
              </div>
              <!--card-check-->
            </div>
            <!--card-deck-wrapper-->
          </div>
          <!--row-->
        </div>
        <!--container-fluid-->
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
      </body>
    </html>
    

    【讨论】:

    • 谢谢,@siddaka sivareddy - 我现在要测试一下,还没有机会看 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2021-12-23
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多