【问题标题】:CSS Resize/Zoom-In effect on Image while keeping Dimensions在保持尺寸的同时对图像进行 CSS 调整大小/放大效果
【发布时间】:2014-04-24 21:49:08
【问题描述】:

我想使用 CSS3 scale() 过渡来实现翻转效果,但我想保持翻转图像尺寸相同。因此,效果是图像放大了,但仍被限制在其现有的宽度和高度。

img:hover {
    transform:scale(1.5);
    -ms-transform:scale(1.5); /* IE 9 */
    -moz-transform:scale(1.5); /* Firefox */
    -webkit-transform:scale(1.5); /* Safari and Chrome */
    -o-transform:scale(1.5); /* Opera */
}

这是一个基本的 fiddle 开头。

但是,我希望图像保持宽度/高度。

我不喜欢使用 css3 规模。也许通过调整元素大小有更好的方法。

【问题讨论】:

    标签: html css rollover


    【解决方案1】:

    您可以通过使用<div> 包装图像并将overflow: hidden 添加到该元素来实现:

    <div class="img-wrapper">
        <img src="..." />
    </div>
    
    .img-wrapper {
        display: inline-block; /* change the default display type to inline-block */
        overflow: hidden;      /* hide the overflow */
    }
    

    WORKING DEMO.


    另外值得注意的是,&lt;img&gt; 元素(与其他内联元素一样)默认位于其 baseline 上。还有there would be4~5px gap at the bottom of the image

    该垂直间隙属于下行者的保留空间,例如:g j p q y。您可以通过将vertical-align 属性添加到具有baseline 以外的值的图像来解决对齐问题。

    另外,为了更好的用户体验,您可以在图片中添加transition

    因此我们将得到以下结果:

    .img-wrapper img {
        transition: all .2s ease;
        vertical-align: middle;
    }
    

    UPDATED DEMO.

    .img-wrapper {
        display: inline-block;
        overflow: hidden;
        
        border: 1px solid gray;
    }
    
    .img-wrapper img {
        -webkit-transition: all .2s ease;
        -moz-transition: all .2s ease;
        -ms-transition: all .2s ease;
        -o-transition: all .2s ease;
        transition: all .2s ease;
        
        vertical-align: middle;
    }
    
    .img-wrapper img:hover {
        -webkit-transform:scale(1.5); /* Safari and Chrome */
        -moz-transform:scale(1.5); /* Firefox */
        -ms-transform:scale(1.5); /* IE 9 */
        -o-transform:scale(1.5); /* Opera */
        transform:scale(1.5);
    }
    <div class="img-wrapper">
        <img src="http://ts2.mm.bing.net/th?id=HN.608017620862175177&pid=15.1&H=160%20&W=80" />
    </div>

    【讨论】:

    • 好主意。我对其进行了一些更新,为包装器添加了一个边框,并在包装​​器上设置了一个高度:jsfiddle.net/7vY7v/2(它没有紧紧地包裹图像)
    • @mtyson 在图像中添加transition 怎么样? :) jsfiddle.net/hashem/7vY7v/3
    • 我想做这样的事情来响应,但当然在某些时候你需要限制一个容器,图像在里面缩放......即非百分比。
    猜你喜欢
    • 2019-06-06
    • 2013-05-12
    • 2013-04-11
    • 1970-01-01
    • 2014-12-06
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多