CSS大小过渡保留在父div中

时间:2012-09-18 15:19:21

标签: css css3 size css-transitions

我希望有一个图像框,当我把它放在上面时,里面的图像会放大一点(我正在使用尺寸过渡),但框架将保持相同的尺寸。

现在发生了什么,即使框架有一个固定的宽度和高度,它也会随着图像的缩放而放大

HTML:

<div class="img-wrapper">
  <img class="thumbnail" src="http://placekitten.com/400/200">
</div>

和CSS

.img-wrapper {
  width: 400px;
}
.thumbnail {
  width: 400px;
}

.thumbnail {
  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  transition: all 0.2s ease-out;
}

.thumbnail:hover {
  width: 500px;

  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  transition: all 0.2s ease-out;
}

http://codepen.io/pen/KCJny

2 个答案:

答案 0 :(得分:5)

解决这个问题的一种方法是设置overflow:hidden;

所以,这可能有效:

.img-wrapper {
  width: 400px;
  height:200px;
  overflow:hidden;
}

答案 1 :(得分:1)

如果您希望图像保持居中(作为Brian答案的补充),您可以这样做:

.thumbnail {
  width: 400px;
  position:relative;
  left:50%;
  margin-left:-200px;
}

.thumbnail:hover {
  width: 500px;
  margin-left:-250px;
  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  transition: all 0.2s ease-out;
}