Bootstrap 强制引导响应图像为方形

jobtbby3  于 2023-10-14  发布在  Bootstrap
关注(0)|答案(6)|浏览(207)

图像在循环中创建,其中:

  1. <div id="row">
  2. <div class="col-sm-6">
  3. <div id="row">
  4. <?php
  5. foreach ($products as $product)
  6. {
  7. ?>
  8. <div class="col-sm-6">
  9. <a href="/admin/product/" class="thumbnail">
  10. <div class="caption">
  11. title<br>
  12. 10 x viewed
  13. </div>
  14. <img src="/assets/img/product/<?php echo $product['img'] ?>" class="img img-responsive full-width" />
  15. </a>
  16. </div>
  17. <?php
  18. }
  19. ?>
  20. </div>
  21. </div>
  22. </div>

图像是从不同的大小有些是高于宽度,和有些是宽然后高度。我怎么能强迫所有的图像具有相同的高度,同时响应。这是确定为他们有宽度:100%,但我不能使用高度:自动,比例将保持然后。我应该怎么做,使我的图像平方,而他们的React,我不知道的%。

例如,绿色衬衫没有他的宽度高

我不想使用jquery,只想使用CSS!

kqqjbcuj

kqqjbcuj1#

你可以这样做:
1.使用padding-bottom:100%; overflow:hidden; position:relative将图像 Package 在容器中
1.将图像完全放置在该容器中。

FIDDLE
说明:

填充顶部/底部(如边距顶部/底部)是根据父元素的宽度计算的。由于.image div与其父元素的宽度相同,设置padding-bottom:100%;给予与宽度相同的高度,因此它是方形的(其内容需要绝对定位或浮动,因此不会更改父元素的大小)。

  • HTML:*
  1. <div class="col-sm-6">
  2. <a href="#" class="thumbnail">
  3. <div class="caption">
  4. title<br/>3 x bekeken
  5. </div>
  6. <div class="image">
  7. <img src="" class="img img-responsive full-width" />
  8. </div>
  9. </a>
  10. </div>
  • CSS:*
  1. .image{
  2. position:relative;
  3. overflow:hidden;
  4. padding-bottom:100%;
  5. }
  6. .image img{
  7. position:absolute;
  8. }
展开查看全部
j0pj023g

j0pj023g2#

这里是最好的解决方案,为每一个大小的图像http://jsfiddle.net/oboshto/p9L2q/53/
HTML相同:

  1. <div class="col-sm-6">
  2. <a href="#" class="thumbnail">
  3. <div class="caption">
  4. title<br/>3 x bekeken
  5. </div>
  6. <div class="image">
  7. <img src="" class="img img-responsive full-width" />
  8. </div>
  9. </a>
  10. </div>

新CSS:

  1. .image{
  2. position:relative;
  3. overflow:hidden;
  4. padding-bottom:100%;
  5. }
  6. .image img{
  7. position: absolute;
  8. max-width: 100%;
  9. max-height: 100%;
  10. top: 50%;
  11. left: 50%;
  12. transform: translateX(-50%) translateY(-50%);
  13. }
展开查看全部
szqfcxe2

szqfcxe23#

你可以将所有的图片 Package 在一个div中,然后将div的overflow设置为hidden。只要div是正方形,那么你的图像就会被裁剪。div也可以响应。similar post

db2dz4w8

db2dz4w84#

这个链接对我有用。JSFiddle
而不是使用<div><img/></div>background-position; background-size; background-repeat将做的伎俩。

xqkwcwgp

xqkwcwgp5#

web-tiki answer几乎对我有效,对于更大的图像,我必须添加此HTML和CSS以使它们在正方形内居中:

  1. .image{
  2. position:relative;
  3. overflow:hidden;
  4. padding-bottom:100%;
  5. }
  6. .image img{
  7. position:absolute;
  8. width: 100%;
  9. height: 100%;
  10. object-fit: cover;
  11. }
  1. <div class="col-sm-6">
  2. <a href="#" class="thumbnail">
  3. <div class="caption">
  4. title<br/>3 x bekeken
  5. </div>
  6. <div class="image">
  7. <img src="" class="img img-responsive full-width" />
  8. </div>
  9. </a>
  10. </div>
展开查看全部
tct7dpnv

tct7dpnv6#

在我看来,这是一个符合Bootstrap精神的解决方案:

  1. <div class="ratio ratio-1x1">
  2. <img class="img-fluid src="my_image.png" />
  3. </div>

在Bootstrap 5.3上进行了测试,但Bootstrap 5已经支持这种方式,并且在Bootstrap 4中也支持不同的模式。

相关问题