【问题标题】:Extra padding in a div, next to the imgdiv 中的额外填充,位于 img 旁边
【发布时间】:2015-03-28 00:08:23
【问题描述】:

我在这里搜索了类似的问题,但我找不到我的问题的解决方案。

我有一个#main-containerpadding。在里面我有几个 div,有一个imgimg 的父 div 应该具有相同的高度和宽度,但不幸的是它在右侧有额外的空间。一旦我删除了#main-container 的填充,一切正常。我花了几个小时才找到解决方案。

*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

#main-container {
    padding:30px;
    background:gray;
    height: 350px;
}

#right {
    width:50%;
    background:red;
    margin:0 5%;
    height: 100%;
    float: right;
    text-align: center;
}

#image-container {
    width: auto;
    height: 100%;
    background: black;
    display: inline-block;
}

img {
    max-width:100%;
    max-height:100%;
    display: block;
}

我创建了一个 jsfiddle 示例。红色代表#right div,黑色代表img 的父容器。 http://jsfiddle.net/0y1n6rnq/1/

为什么会这样? 更新:问题出现在firefox中。

【问题讨论】:

  • 不确定你希望你的布局是什么样子
  • 正如我所写的,#image-container 应该具有相同的宽度。
  • 对我来说宽度一样
  • 对不起,我忘了说问题发生在 Firefox 中。
  • 啊,好吧,发生这种情况的原因是因为您的 img 上的 max-height 设置为 100%。因此,您的图像将只有容器的最大 100% 高度,因此如果容器变得比图像宽度更宽,它将有一个空间

标签: html css responsive-design css-float


【解决方案1】:

除非图像大小超过 100%,否则设置 max-width 没有任何作用,因此您需要告诉它拉伸整个长度,在 img 类中添加:100%,它将被修复:)

img{
    width: 100%;
}

【讨论】:

  • 是的,它覆盖了 div 的黑色部分,但是当我使用我的肖像照片作为示例时,我会看起来很胖。 :) (图片不会保持比例,会被拉伸)
  • 是的,要么就是那个,要么溢出:隐藏。如果要保持比例,则需要隐藏部分图像。
【解决方案2】:

检查此代码。如果我们同时使用最大高度和宽度,图像会拉伸脂肪。所以如果我们设置 width: 100% 那么就可以使用 height:auto

*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

#main-container {
    padding:30px;
    background:gray;
    height: 350px;
}

#right {
    width:50%;
    background:red;
    margin:0 5%;
    height: 100%;
    float: right;
    text-align: center;
    overflow: hidden;
}

#image-container {
    width: auto;
    height: 100%;
    background: black;
    display: inline-block;
}

img {
    width: 100%;
    height: auto;
    display: block;
}
<div id="main-container">
    <div id="right">
        <div id="image-container">
            <img src="http://lorempixel.com/450/600/">
        </div>
    </div>
</div>

【讨论】:

  • 您没有调整图像大小,只是用溢出裁剪:隐藏;恐怕这不是最好的解决方案。我想调整大小。
  • 正如我之前所说,它要么隐藏图像的一部分,要么拉伸它。其他任何事情都是不可能的。除非可以调整其所在框的高度。
猜你喜欢
  • 2014-05-28
  • 2013-07-20
  • 2011-03-08
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
相关资源
最近更新 更多