html - 错误的图像悬停效果

标签 html css

我有四个大小相同的图像,都设置为页面宽度的 20%

<div class="portrait">
    <img src="#">
</div>
<div class="portrait">
    <img src="#">
</div>
<div class="portrait">
    <img src="#">
</div>
<div class="portrait">
    <img src="#">
</div>

在我的网站中水平对齐。悬停时,我希望图像在原始边框内缩放(如 https://codepen.io/math2001/pen/zZXBbj?editors=1100 ),这是我通过 CSS3 过渡和溢出:隐藏实现的。

.portrait {
float: left;
width: 20%;
overflow: hidden;
}
.portrait img {
width: 100%;
transition: transform 0.2s linear;
}
.portrait img:hover {
transform: scale(1.1);
}

图像的宽度没有超出肖像原始 20% 的限制,但高度超过了。我知道问题是包装 div 的高度没有固定的限制,但我不知道如何创建一个,因为一切都是按比例缩放的。我该如何解决这个问题?

最佳答案

transform 放在容器而不是图像上:

.portrait {
  float:left;
  width:20%;
  overflow:hidden;
  transition:transform 0.2s linear;
}
.portrait img {
  width:100%;
}
.portrait:hover {
  transform: scale(1.1);
}
<div class="portrait">
    <img src="http://placehold.it/250x250">
</div>
<div class="portrait">
    <img src="http://placehold.it/250x250/000/ccc">
</div>
<div class="portrait">
    <img src="http://placehold.it/250x250/aaa/eee">
</div>
<div class="portrait">
    <img src="http://placehold.it/250x250/ccc/fff">
</div>

关于html - 错误的图像悬停效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43240075/

相关文章:

html - HTML/CSS 中嵌套列表的缩进

HTML 颜色和边距呈现不同(相同的代码、CSS 和浏览器)

css - 当表格变小时切断表格背景的底部

css - 无法正确定位 div

html - bootstrap 4 是否有内置的水平分隔线?

jquery - Bootstrap 嵌套 Accordion 字体-很棒的图标

javascript - Angular 2/4 @Input 只移动内在函数——不移动列表或对象

javascript - 如何将完整图像放入 panelbody/card/div?

javascript - 使用 jquery 滚动时替换 html 类

html - iOS 视网膜图像大小限制?