我对鼠标图像悬停有影响,但我遇到了问题。
我有3篇文章,当我悬停图像时,所有其他图像都向右移动。
我发现问题出在这里:.second-effect:hover a.info {},因为如果我在悬停图片时移除transform:scale(1,1)
,其他图片就不会移动。
但是如果没有这种转换,我想要在图像中心显示的图标字体就不会出现。
问题在于:
.second-effect:hover a.info {
opacity:1;
-moz-transform:scale(1,1);
-webkit-transform:scale(1,1);
-o-transform:scale(1,1);
-ms-transform:scale(1,1);
transform:scale(1,1);
-moz-transition-delay:0.3s;
-webkit-transition-delay:0.3s;
-o-transition-delay:0.3s;
-ms-transition-delay:0.3s;
transition-delay:0.3s;
}
所以我想在我的图像中心有一个图标字体,我正在使用css过渡。
如果我删除了transform:scale(1,1)
图标,则不会显示。
如果我在悬停图像时不删除此代码,其他图像也会移动。
有谁能理解为什么会这样?
我的jsfiddle:
http://jsfiddle.net/ritz/m78QF/1/
我这个问题的全部HTML:
<article id="news">
<div class="view second-effect">
<img src="imagens/transferir (1).jpg" />
<div class="mask">
<a href="#" class="info"><i class="fa fa-download"></i></a>
</div>
</div>
<h2>
<a>Title Post number one</a>
<br />
</h2>
<span>Date of post number one</span>
<p>Post Number one</p>
</article>
我对这个问题的全部css:
.info>i{font-size:1.7em; margin-top:15px; color:#000; }
#news img
{
width:155px;
height:140px;
}
.view a.info {
padding:0;
width:20px;
height:20px;
}
.view {
width: 155px;
height: 140px;
float: left;
overflow: hidden;
position: relative;
text-align: center;
box-shadow: 0px 0px 5px #aaa;
cursor: default;
margin-right:20px;
border:3px solid #ccc;
margin-top:4px;
}
.view .mask, .view .content {
width: 155px;
height: 140px;
position: absolute;
overflow: hidden;
top: 0;
left: 0;
}
.view img {
display: block;
position: relative;
}
.view a.info>i{
}
.second-effect .mask {
opacity: 0;
overflow:visible;
border:0px solid rgba(0,0,0,0.7);
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
-webkit-transition: all 0.4s ease-in-out;
-moz-transition: all 0.4s ease-in-out;
-o-transition: all 0.4s ease-in-out;
-ms-transition: all 0.4s ease-in-out;
transition: all 0.4s ease-in-out;
}
.second-effect a.info {
position:relative;
top:-10px;
opacity:0;
-moz-transform:scale(0,0);
-webkit-transform:scale(0,0);
-o-transform:scale(0,0);
-ms-transform:scale(0,0);
transform:scale(0,0);
-webkit-transition: -webkit-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
-moz-transition: -moz-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
-o-transition: -o-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
-ms-transition: -ms-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
transition: transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
}
.second-effect:hover .mask {
opacity: 1;
border:55px solid rgba(0,0,0,0.7);
}
.second-effect:hover a.info {
opacity:1;
-moz-transform:scale(1,1);
-webkit-transform:scale(1,1);
-o-transform:scale(1,1);
-ms-transform:scale(1,1);
transform:scale(1,1);
-moz-transition-delay:0.3s;
-webkit-transition-delay:0.3s;
-o-transition-delay:0.3s;
-ms-transition-delay:0.3s;
transition-delay:0.3s;
}
答案 0 :(得分:0)
将bottom: 5px;
添加到.view img
应该可以实现此目的。
JSFiddle宽度已更新.view img
.view img {
display: block;
position: relative;
bottom: 5px
}
编辑: 变化
.second-effect:hover .mask {
opacity: 1;
border: 55px solid rgba(0,0,0,0.7);
}
到
.second-effect:hover .mask {
opacity: 1;
border: 55px solid rgba(0,0,0,0.7);
padding-top: 36px;
}
它会使过渡区的白色区域变大。
答案 1 :(得分:0)
为什么您的CSS设置了margin-top
?那会不会压低你的图标?尝试将其评论出来,看看它是否会改变图标的位置。如果确实如此,只需缩小margin-top
,即可将图标放置到位。
.info>i
{
font-size:1.7em;
/* margin-top:15px; */
color:#000;
margin-bottom:5px;
}