CSS使div中的任何图像居中

Posted

技术标签:

【中文标题】CSS使div中的任何图像居中【英文标题】:CSS center any image in div 【发布时间】:2016-09-25 22:02:12 【问题描述】:

假设我有 divwidth: 300pxheight: 200px 我希望div 中的任何图像都水平和垂直居中,无论图像大于还是小于div

对于较小的图像margin: 0 auto 效果很好,但较高的图像会向右突出并且不居中。

对于更大的图像,这可行:

height: 100%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

我找不到这些的任何组合,也没有找到任何解决方案如何完美地居中此图像。

【问题讨论】:

但您仍想滚动查看整个图片或只是“裁剪”视图。 Centering an image within a div的可能重复 【参考方案1】:

position: absolute 添加到imgposition: relativediv

.el 
  position: relative;
  width: 100px;
  height: 100px;
  border: 1px solid black;
  margin: 50px 150px;

img 
  opacity: 0.4;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
<div class="el">
  <img src="http://placehold.it/350x150">
  <img src="http://placehold.it/50x50/000000/ffffff">
</div>

【讨论】:

【参考方案2】:

试试这个

div
  display: flex;
  align-items: center;
  justify-content: center

【讨论】:

...但请注意浏览器兼容性问题caniuse.com/#feat=flexbox 好吧,可能工作,但兼容性说再见。

以上是关于CSS使div中的任何图像居中的主要内容,如果未能解决你的问题,请参考以下文章

仅使用css在div中垂直居中图像[重复]

CSS - 在浮动 div 中垂直居中图像

CSS如何在不改变图像样式的情况下垂直居中图像和文本

如何使响应式 SVG 图像居中? [复制]

如何使图像在图中居中?

仅使用 CSS 和 HTML 垂直和水平居中可变大小的图像放大(在 div 中)