【问题标题】:Maintain padding when scaling image inside fixed size container在固定大小的容器内缩放图像时保持填充
【发布时间】:2015-05-26 22:54:04
【问题描述】:

我正在尝试通过使用 CSS 过渡在悬停时在固定大小的容器内增长图像来创建缩放效果。容器框架有边框和填充,我希望它们在图像增长时保留。问题是当它增长时,右边和底部的填充消失了。

这是 CSS 代码:

.videoframe {
width: 200px;
height: 113px;
border: solid 2px;
border-radius: 20px;
margin-right: 20px;
margin-bottom: 20px;
padding: 10px;
overflow: hidden;
}

.videoframe img {
border-radius: 20px;
width: 200px;
height: 113px;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}

.videoframe img:hover {
width: 300px;
height: 168px;
overflow: hidden;
}

这里是 HTML 代码:

<div class="videoframe"> <img src="image.jpg" /> </div>

有什么方法可以在图像改变大小时保持 10px 的内边距?

【问题讨论】:

  • 如果你在img上加了padding呢?
  • 这不起作用,因为图像拉伸了填充物,因此右侧和底部消失了。

标签: html css padding


【解决方案1】:

我已将过渡转移到框架(当框架悬停时,过渡开始)。

Working Fiddle

HTML:(添加了另一个 div)

<div class="videoframe">
    <div>
        <img src="http://www.ac4bf-thewatch.com/initiates/upload/20130909/big_522e1c989c94f.jpg">
    <div>
 </div>

CSS

.videoframe
{
    width: 200px;
    height: 113px;
    border: 2px solid black;
    border-radius: 20px;
    margin-right: 20px;
    margin-bottom: 20px;
    padding: 10px;
}
.videoframe div
{
    border-radius: 20px;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.videoframe img
{

    width: 100%;
    height: 100%;
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
}

.videoframe:hover img
{
    width: 300px;
    height: 168px;
}

【讨论】:

  • 与 Shalom Aptekar 的代码相同,这里父容器随图像展开,我想避免这种情况。父容器需要保持相同的大小,同时图像展开并隐藏溢出,因此我们最终只能看到图像的左上角。
  • 实际上.. 他在我之后发布了他的解决方案.. 但没关系。我已经更新了我的解决方案。
  • 很抱歉,是的,框架现在保持相同的大小,但问题仍然存在:当图像增长时,右侧和底部的填充消失...
  • 有效!添加第二个容器允许第一个保持其固定大小,非常完美,谢谢!
【解决方案2】:

对不起,我有点困惑,你想让父容器随图像一起扩展吗?

如果是,请查看http://jsfiddle.net/NcaAA/

你可以使用

-moz-box-sizing: border-box; 
-webkit-box-sizing: border-box; 
box-sizing: border-box; 

padding:10px;

保持一致的填充,考虑到您想要的总宽度和高度。

【讨论】:

  • 我希望父容器保持其固定大小,而里面的图像会扩展,给人一种视频缩放的印象。我认为您的建议是用于扩展容器?
  • 哦,好吧!我会这样做,它可能会更容易。 jsfiddle.net/NcaAA
  • 嗯,除非我弄错了,否则容器似乎仍然随着图像增长。
  • 抱歉忘记更新 jsfiddle,我的错。请看 :) jsfiddle.net/NcaAA/5
  • 抱歉,我还是看不出有什么不同,你确定你已经更新了吗?容器对你来说是固定的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多