当前位置: 首页 > 知识库问答 >
问题:

将未知大小的大图像居中到隐藏溢出的较小div中

连德水
2023-03-14

我想在没有javascript和背景图像的div中居中一个img。

下面是一些示例代码

<div> 
    <img src="/happy_cat.png"/> 
</div>
  • 我不知道img的大小,它应该能够超过父级的宽度
  • 我不知道父div的宽度(它是100%)
  • 父div具有固定高度
  • 图像大于父图像,且父图像有溢出:隐藏
  • 只需支持现代浏览器

期望的结果。(忽略不透明等,只需注意定位)。

我知道这可以很容易地完成与背景图像,但这不是一个选项,我。我也可以使用javascript,但这似乎是一个非常沉重的方式来实现这一点。

谢谢!

千斤顶

共有2个答案

石喜
2023-03-14

老问题,新答案:

当图像大于包装div时,文本-align:center或margin:auto将不起作用。但如果图像较小,那么绝对定位或左边缘为负的解决方案将会产生奇怪的效果。

因此,当图像大小实际上不是预先知道的(比如在CSM上),它可能比包装div大或小时,有一个优雅的CSS3解决方案可以满足所有目的:

div {
    display: flex;
    justify-content: center;
    height: 400px; /* or other desired height */
    overflow: hidden;
}
img {
    flex: none; /* keep aspect ratio */
}

注意,根据样式表中的其他规则,您可能需要将width:auto和/或max-width:none追加到IMG。

穆子琪
2023-03-14

那么这个呢:

.img {
   position: absolute;
   left: 50%;
   top: 50%;
   -webkit-transform: translateY(-50%) translateX(-50%);
}

这假设父div的位置相对。我认为如果您希望.img相对定位而不是绝对定位的话,这是可行的。只需删除位置:Absolute并将top/left更改为margin-topmargin-left

您可能希望通过transform-moz-transform等添加浏览器支持。

 类似资料:
  • 问题内容: 我有一个div,并且(说)里面有一个图像,高度始终固定为。 我想使图像水平居中。 这里有3种情况: 图片的宽度等于div的宽度,没有问题 图片的宽度小于div的宽度,我可以在这里使用 图片的宽度大于div的宽度 我希望图像的中心部分在div内可见。 意味着,如果image的宽度为和div的宽度为,并且 我希望图像的第10 px至110 px可见(因此,和的图像隐藏在div下) 是否可以

  • 我试图创建一个GUI如下图所示 然而,当我运行我的文件时,图像的大小仍然保持原来的大小 我怎样才能缩小图像的大小,这样我就可以在旁边添加文本了?

  • 我一直在尝试解决如何仅使用css在div中居中放置超大图像的问题。 我们使用的是流体布局,因此图像容器的宽度随着页面宽度的变化而变化(div的高度是固定的)。该图像位于一个div中,值为inset boxshadow,以便显示为您正在查看页面中的图像。 图像本身已经调整大小,以尽可能宽的值填充周围的div(设计有一个值)。 如果图像比周围的div小,这很容易做到: 但是当图像大于div时,它只是从

  • 我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?

  • 我想减少一个480 X 480位图图像大小到30 X 30像素大小,但保持整个高度和宽度完整。(我不想缩放或使用高度/宽度属性!) 让我用更简单的方式--我试图将位图图像中的像素从480 X 480减少到30 X 30,高度和宽度保持不变,并且在将图像转换为30 X 30后,我预计会有一些失真。 我做了缩放,但它减少了宽度和高度,如果我再次增加宽度和高度,它只是恢复正常的像素。谢谢!

  • 我想知道我是否可以设置div比率响应像一个图像在CSS。例如,我有一个图像(800px x400px),并将css设置为宽度:100%。当我使用桌面屏幕(widht:1400px)时,图像将自动调整大小,得到屏幕全宽=>图像大小(1400px x 700px)。但是元素,我必须同时设置宽度和高度有办法设置空宽度800px,高度400px,它将根据屏幕大小自动调整大小,并且它仍然像图像一样保持比例。