div中的中心图像,隐藏溢出

Puy*_*yol 28 html css center

我有一个400px的图像和一个较小的div(宽度并不总是300px,如我的例子).我想将图像居中在div中,如果有溢出,则隐藏它.

注意:我必须保留position:absolute图像.我正在使用css-transitions,如果我使用position:relative,我的图像会有点震动(https://web.archive.org/web/20120528225923/http://ta6.maxplus.be:8888/).

jsfiddle http://jsfiddle.net/wjw83/1/

Jaa*_*aap 27

你应该让容器相对并给它一个高度,你就完成了.

http://jsfiddle.net/jaap/wjw83/4/

.main {
  width: 300px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  height: 200px;
}

img.absolute {
  left: 50%;
  margin-left: -200px;
  position: absolute;
}
Run Code Online (Sandbox Code Playgroud)
<div class="main">
  <img class="absolute" src="http://via.placeholder.com/400x200/A44/EED?text=Hello" alt="" />
</div>
<br />
<img src="http://via.placeholder.com/400x200/A44/EED?text=Hello" alt="" />
Run Code Online (Sandbox Code Playgroud)

如果您愿意,还可以通过添加负边距和顶部位置来垂直居中图像:http://jsfiddle.net/jaap/wjw83/5/


Sim*_*n G 22

以上解决方案都不适合我.我需要一个动态图像大小来适应圆形父容器overflow:hidden

.circle-container {
    width:100px;
    height:100px;
    text-align:center;
    border-radius:50%;
    overflow:hidden;
}

.circle-img img {
  min-width:100px;
  max-width:none;
  height:100px;
  margin:0 -100%;
}
Run Code Online (Sandbox Code Playgroud)

这里的工作示例:http: //codepen.io/simgooder/pen/yNmXer


Gil*_*Dev 17

最新的解决方案:

HTML

<div class="parent">
    <img src="image.jpg" height="600" width="600"/>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.parent {
    width: 200px;
    height: 200px;
    overflow: hidden;
    /* Magic */
    display: flex;
    align-items: center; /* vertical */
    justify-content: center; /* horizontal */
}
Run Code Online (Sandbox Code Playgroud)


Egl*_*yte 6

找到了MELISSA PENTA 这个不错的解决方案

的HTML

<div class="wrapper">
   <img src="image.jpg" />
</div>
Run Code Online (Sandbox Code Playgroud)

的CSS

div.wrapper {
  height:200px;
  line-height:200px;
  overflow:hidden;
  text-align:center;
  width:200px;
}
div.wrapper img {
  margin:-100%;
}
Run Code Online (Sandbox Code Playgroud)

将div中任何尺寸的图像居中
与圆形包装纸和不同尺寸的图像一起使用。

的CSS

.item-image {
    border: 5px solid #ccc;
    border-radius: 100%;
    margin: 0 auto;
    height: 200px;
    width: 200px;
    overflow: hidden;
    text-align: center;
}
.item-image img {
    height: 200px;    
    margin: -100%;
    max-width: none;
    width: auto;    
}
Run Code Online (Sandbox Code Playgroud)

Codepen的工作示例


小智 5

对我来说 flex-box 可以完美地将图像居中。

这是我的 html 代码:

<div class="img-wrapper">
  <img src="..." >
</div>
Run Code Online (Sandbox Code Playgroud)

这是我用于 css 的:我希望图像与包装元素的宽度相同,但是如果高度大于包装元素的高度,则应该“裁剪”/不显示。

.img-wrapper{
  width: 100%;
  height: 50%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center; 
}
img {
  height: auto;
  width: 100%;
}
Run Code Online (Sandbox Code Playgroud)