调整图像大小以适合div(引导程序)


97

我正在尝试使图像适合特定大小的div。不幸的是,图像不符合要求,而是按比例缩小到不够大的尺寸。我不确定使图像适合其内部的最佳方法是什么。

如果这还不够,我将很乐意提供更多代码,并且愿意修复其他我忽略的错误。

这是HTML

<div class="span3 top1">  
        <div class="row">
          <div class="span3 food1">
              <img src="images/food1.jpg" alt="">
          </div>
        </div>
            <div class="row">
              <div class="span3 name1">
                  heres the name
            </div>
            </div>
          <div class="row">
              <div class="span3 description1">
                  heres where i describe and say "read more"
            </div>
            </div>


      </div>

我的CSS

.top1{

    height:390px;
    background-color:#FFFFFF;
    margin-top:10px;


}

.food1{

background-color:#000000;
height:230px;


}

.name1{

background-color:#555555;
height:90px;

}

.description1{

background-color:#777777;
height:70px;


}

我已经张贴在这里是回答了类似的问题:stackoverflow.com/questions/41870216/...
FredyWenger

Answers:


57

您可以显式定义widthheight的图像,但结果可能不是最佳外观。

.food1 img {
    width:100%;
    height: 230px;
}

jsFiddle


...根据您的评论,您也可以屏蔽任何内容overflow-请参见此示例,以查看受高度限制并由于太宽而被截断的图像。

.top1 {
    height:390px;
    background-color:#FFFFFF;
    margin-top:10px;
    overflow: hidden;
}

.top1 img {
    height:100%;
}

我很想这样做,很不幸,就像您说的那样,结果并不是最好的。理想情况下,我希望将图像缩小,以使图像的高度适合div的高度,并且将隐藏超出约束div宽度的图像宽度。如果这能引起人们的注意
smilefreak24

是的,这就是我想要的!非常感谢!
smilefreak24

另一个答案是最好的答案,只需将class =“ img-response”添加到img标签即可解决问题!
iMobaio

1
更好地width:100%;max-width:100%;更好个个都是阶级img-responsive在BS3或img-fluid在BS4。
纳比·卡兹

167

尝试这种方式:

<div class="container">
    <div class="col-md-4" style="padding-left: 0px;  padding-right: 0px;">
        <img src="images/food1.jpg" class="img-responsive">
    </div>
</div>

更新:

在Bootstrap 4中img-responsive变为img-fluid,因此使用Bootstrap 4的解决方案是:

<div class="container">
    <div class="col-md-4 px-0">
        <img src="images/food1.jpg" class="img-fluid">
    </div>
</div>

5
凉!class =“ img-sensitive”帮助了。也许这应该是今天公认的答案。
Anupam

1
class =“ img-sensitive”是绝对可行的方法!这应该是公认的答案。
iMobaio'7

28
它是img-fluid现在,不是img-responsive
wordsforthewise


32

只需将类添加img-responsive到您的img标签中即可,它适用于Bootstrap 3及更高版本!


抱歉,请您具体说一下,谢谢!我没有正确回答您的问题!
沙什

7

我遇到了同样的问题,偶然发现了以下简单的解决方案。只需在图像上添加一些填充,它就会调整自身大小以适合div。

<div class="col-sm-3">
  <img src="xxx.png" class="img-responsive" style="padding-top: 5px">
</div>

1
使用Bootstrap解决,而不是自定义CSS。谢谢。
mattgreen '16

7

我用这个为我工作。

<div class="col-sm-3">
  <img src="xxx.png" style="width: auto; height: 195px;">
</div>

4

如果有人在寻找Bootstrap-4。这里是

<div class="row no-gutters">
    <div class="col-10">
        <img class="img-fluid" src="/resources/img1.jpg" alt="">
    </div>
</div>

如果您在其中带有文本的另一列,则这不是理想的解决方案,因为它也将很难抵制边界的边缘
James Burke

2

大多数时候,bootstrap项目使用jQuery,因此您可以使用jQuery。

只是得到的宽度和家长的高度JQuery.offsetHeight()JQuery.offsetWidth(),并将它们设置为子元素与JQuery.width()JQuery.height()

如果您想使其响应,请在中也重复上述步骤$(window).resize(func)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.