嗨,我正在使用“背景图像”制作一个简单的缩略图网格(2x3),可以是横向或纵向的,效果很好。但我希望他们在悬停时放大到更高分辨率的图像。我认为高分辨率的需要以某种方式隐藏。谢谢
问问题
626 次
2 回答
2
您可以使用background-size:
CSS3 中的属性来执行此操作:
简单的 HTML:
<div class="wrapper">
<div class="thumb"></div>
<div class="thumb"></div>
<div class="thumb"></div>
<div class="thumb"></div>
<div class="thumb"></div>
<div class="thumb"></div>
<span class="clear"></span>
</div>
CSS:
.wrapper
{
width: 300px;
height: 200px;
}
.thumb
{
background: url(http://placehold.it/100x100) no-repeat;
background-size: 50% 50%; /*CSS3*/
background-position: 50% 50%;
width: 100px;
height: 100px;
float: left;
-webkit-transition: background-size 1s; /*CSS3*/
-moz-transition: background-size 1s; /*CSS3*/
}
.thumb:hover
{
background-size: 100% 100%;
-webkit-transition: background-size 1s; /*CSS3*/
-moz-transition: background-size 1s; /*CSS3*/
cursor: pointer;
}
span.clear
{
display: block;
height: 0;
width: 100%;
clear: both;
}
您所做的是立即提供更高分辨率的图像,然后使用background-size:
属性按比例缩小它们。然后在悬停时放大图像。这可以防止加载每个图像的两个版本,并且使用 CSS3 转换它看起来也很酷;)
请记住,这是 CSS3,所以(我认为)IE8 及更低版本不支持此功能。
于 2012-11-21T09:25:13.443 回答
1
这是对凯尔答案的修改。我不确定它是否适合您的需求(不使用background-image
,而只是一个<img>
标签),但我发布它以防万一有人发现它有用。除了使用背景大小,还可以使用 CSS3 变换(scale
在这种情况下)和过渡。
于 2012-11-21T09:37:39.900 回答