要绘制图片图像,我在顶部有两个 div,一个用于保存 5 张缩略图,底部 div 有 5 行文本。这个想法是当我将鼠标悬停在图片 div 上时,我希望它的项目名称显示在底部 div 上。我希望这发生在所有 5 张图片上。到处搜索,发现一些很接近但死路一条的东西。非常感谢任何帮助,因为我正在尝试帮助学生完成他们的项目。我对 CSS 很好,我只是无法完成这项任务。
问问题
122 次
3 回答
3
简单演示
HTML 非常简单。是可选的.photowrapper
,类可以放在a
.
<div class="photowrapper">
<a href="#">
<img src="//placehold.it/200" alt="" />
<div class="label">Text</div>
</a>
</div>
我们需要所有东西都是一个内联块来像图像一样工作。
.photowrapper {
border: 1px solid black;
display: inline-block;
}
.photowrapper a {
display: inline-block;
}
我们默认我们的标签是透明的。当我们.photowrapper
悬停时,它的文本颜色会发生变化。
.photowrapper .label {
color: transparent;
}
.photowrapper:hover .label {
color: black;
}
.photowrapper:hover a
如果您想要下划线,请为您设置装饰的位置添加另一条规则underline
。这会在悬停时禁用它,默认情况下。
.photowrapper a {
text-decoration: none;
}
绝对定位演示
使用相同的 HTML,我们可以将标签放置在相同的位置。
.photowrapper .label {
opacity: 0;
color: black; background: yellow;
-moz-transition: opacity 1s ease;
-webkit-transition: opacity 1s ease;
transition: opacity 1s ease;
position: absolute;
top: 100%;
left: 0;
}
花式
您可以让受支持的浏览器转换颜色以减少生涩的结果。将标签样式替换为:
.photowrapper .label {
min-height: 1em;
color: transparent;
-moz-transition: color 1s ease;
-webkit-transition: color 1s ease;
transition: color 1s ease;
}
如果您的标签不仅仅是文本,您可以改为更改/动画不透明度。
.photowrapper .label {
opacity: 0;
color: black; background: yellow;
-moz-transition: opacity 1s ease;
-webkit-transition: opacity 1s ease;
transition: opacity 1s ease;
}
.photowrapper:hover .label {
opacity: 1;
}
于 2013-08-08T01:38:10.700 回答
1
这样做是使用 data 属性附加名称,然后当图像悬停时,data 属性中的任何内容都设置为带有 id "info" 的 p 标签的 HTML
在行动:http: //jsfiddle.net/calder12/HQQsb/
HTML
<div>
<img src="http://placehold.it/100x100" data-name="Image 1" class="project"/>
<img src="http://placehold.it/100x100" data-name="Image 2" class="project"/>
<img src="http://placehold.it/100x100" data-name="Image 3" class="project"/>
</div>
<div id="infodiv"><p id="info"></p></div>
jQuery
$(document).ready(function(){
$(".project").mouseover(function(){
$("#info").html($(this).data('name'));
}).mouseout(function(){
$("#info").html('');
});
});
于 2013-08-08T01:44:03.680 回答
0
您将需要使用 javascript 或 jquery 让它出现在悬停时。有人在这里问了一些非常相似的问题:
http://stackoverflow.com/questions/1119956/hover-element-a-show-hide-element-b
还有很多教程可以通过简单的谷歌搜索访问,以创建 jquery 脚本来执行您的要求。让我知道您是否需要更多帮助或不知道该怎么做。
于 2013-08-08T01:35:05.893 回答