【问题标题】:CSS place image in middle of div: with overflow hiddenCSS将图像放在div中间:隐藏溢出
【发布时间】:2012-06-28 01:06:58
【问题描述】:

我想在 div 容器中放置一个宽度为 200 像素且高度未知的个人资料图片。 div 为 150 像素 x 150 像素。 img 应水平居中,两侧隐藏出血。我无法让它工作,未知的高度搞砸了,因为 img 宽度的显示方式取决于高度。 - 景观图像将获得更高的宽度以填充高度差并保持图像成比例。如果是纵向图片,宽度应该是 150px 作为 div...

观看图片:http://s18.postimage.org/52hfcc5h3/Sk_rmavbild_2012_06_26_kl_19_12_49.png

#profilePicture {
    display: block;
    float: left;
    width: 150px;
    height: 150px;
    overflow: hidden;
    position: relative;
    margin: 0 auto;

    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}
#profilePicture img {
    min-width: 150px;
    min-height: 150px;
    left: 50%;
    margin-left: -100px;
    top: 50%;
    margin-top: -100px;
    position:absolute;

    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}

【问题讨论】:

  • 您能否提供所需解决方案的 Photoshop 或类似图像?
  • 如果您可以使用背景图像,@JOPLOmacedo 的解决方案可能是最好的实现。如果您需要在页面上显示图像,您可能不得不求助于使用强制图像尺寸的逻辑。我认为没有一个纯 CSS 解决方案可以同时满足您的这两个要求。

标签: css image center


【解决方案1】:

我想你想做的是this

.main{
width:150px;
margin: 0 auto;
overflow:visible;
position: relative;
height: 200px;
outline: 1px solid blue;
}

img.absolute{
width: 200px;
left: 50%;
margin-left: -100px;
margin-top: 0;
position:relative;
outline: 1px solid red; 
}

我认为这种情况下没有必要使用绝对定位。

【讨论】:

  • 不...即使图像足够高,这也会使图像流血,如果图像不够高,宽度仍将是 200px..
【解决方案2】:

您是否考虑过使用背景图片?这会让事情变得更容易。

.img {
    overflow: hidden;
    background-image: url('/xyz.jpg');
    background-size: cover;
    background-position: center;
}

这是小提琴 -> http://jsfiddle.net/haNj3/1/

【讨论】:

  • 可以,但不能解决问题。图像的大小需要调整。我需要 CSS3。
  • 但我想这可能适用于我正在做的事情。我也在设置 background-position: top center;
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 2013-03-17
  • 2012-06-05
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 2013-05-04
  • 2021-09-30
相关资源
最近更新 更多