我希望能够将鼠标悬停在图像上,调用旁边的文本链接上的悬停属性。
我有一个视频的图像预览和旁边写的视频名称作为文本字符串。我想这样做,所以我可以将鼠标悬停在图片上,使文字仍然像悬停效果一样改变颜色,而不必将图像和文本全部放在一个图像上,这是出于明显的搜索和可用性原因;将文本保留为文本等。
更新:我还想确保现在在“span”中的文本链接不能仅使用“margin-left”移动,而是可以提升。默认情况下,代码我只是下降到60x60px图像底部的水平。我希望它更高,所以看起来不错,但“margin-bottom”对此没有帮助。我希望它在60x60 img的“中心高度”...不在默认情况下的底部。
任何想法?谢谢!
P.S。我对这里发布的java脚本和jquery想法持开放态度,但我是一个完整的新手,需要额外的解释。我更喜欢CSS。
我现在的代码是:
我的HTML是:
<div id="example">
<a href="#">
<img src="image/source_60x60px.jpg">
<span class="video_text">Image Text</span>
</a>
</div>
我的css是:
div#example { float:left; width:358px; height:60px; margin-top:20px; }
div#example a { color:#B9B9B9; width:100%;}
div#example a:hover { color:#67a; text-decoration:none;}
span.videotext { margin-left:80px;}
答案 0 :(得分:3)
怎么样?
<style>
a
{
color: #000000;
}
a:hover
{
color: #a9a9a9;
}
</style>
<a href="#"><img src="imagepath" alt="Image Title" /> Image Text</a>
答案 1 :(得分:3)
您可以使用CSS或使用Javascript执行此操作。如果不知道您的标记以及元素的布局方式,就无法确定哪个选项最佳。
a:hover span { color:red; }
<a href="1.html">
<img src="1.jpg" />
<span>Title: One</span>
</a>
在该示例中,我们在链接中包含文本和图像。然后我们在:hover事件中修改文本的颜色。
div.hovered p { color:red; }
<div class="preview">
<img src="1.jpg" />
<p>Title: One</p>
</div>
$("div.preview img").hover(
function () { $(this).parent().addClass("hovered"); },
function () { $(this).parent().removeClass("hovered"); }
);
此示例展示了一个解决方案,该解决方案只是将一个类添加到父容器中,而父容器又修改了标题的表示形式。通过将图像悬停在容器中来控制此事件。
定位文字并不困难。快速简便的方法是使用relative定位父容器,使用absolute:
定位文本<div class="container">
<a href="#">
<img src="1.jpg" />
<span class="title">Hello World</span>
</a>
</div>
div.container { position:relative; width:150px; }
div.container span.title { position:absolute; top:0; left:50px; width:100px; }
这是一个简单的例子。您可以根据需要修改值。
答案 2 :(得分:0)
基于Jonathan的回答,但是对于javascript,如果你不使用jQuery:
<div onmousemove="hover('text1',true)" onmouseout="hover('text1',false)" >
<img src="1.jpg" />
<p id="text1">Title: One</p>
</div>
<script type="text/javascript">
function hover(elemID, on){
element = document.getElementById(elemID);
if(on){
element.style.color='red';
}
else
{
element.style.color='black';
}
}
</script>
答案 3 :(得分:0)
道歉。我误读了你的问题。这是另一个刺:
<强> HTML 强>
<div class="video">
<a href="" title="title">
<img alt="title" src="path/to/image" />
Video Title
</a>
</div>
<强> CSS 强>
.video {
line-height: 75px;
margin: 10px;
padding: 10px;
width: 200px;
}
.video img {
float: left;
margin-right: 15px;
}
.video a:hover {
color: #hexcol;
}
.video:after {
clear: both;
content: ".";
display: block;
height: 0;
visibility: hidden;
}
显然,这里有一些你不需要但我用它们在浏览器中测试的样式。如果希望文本与视频缩略图垂直对齐,则需要将line-height属性设置为与缩略图图像相同的高度。这会将文本推到视频的中间位置。