【发布时间】:2013-03-15 05:34:28
【问题描述】:
我有一个包含图像的导航菜单,并且我使用 CSS 过渡和不透明度在图像上设置了鼠标悬停发光效果的动画。出于 SEO 目的,我希望导航菜单包含文本链接。
发光效果是使用 CSS background-image 和 html 前景图像完成的。在将鼠标悬停在前景图像的不透明度上时,它会慢慢变为 0,从而露出下面的背景图像。
我已经研究出如何将文本放置在图像上,使用 position:relative 用于父级 div 和 position:absolute 用于 p。但是当鼠标悬停在文字上时,不再算作悬停在图像上,因为文字在图像的上方。结果,发光效果不起作用。
在 Flash 中,将鼠标悬停在一个对象上很容易导致另一个对象发生变化。有没有办法在 CSS 中做到这一点?如果没有,那么javascript可以做我需要的吗?
编辑
感谢您的回复。这是代码。抱歉,如果造成混乱,我已经很多年没有做过任何 HTML 编码,也从未使用过 CSS。
到目前为止,我只在第一个按钮上放了文字和链接。
<div id="nav">
<ul>
<li><a href="index.htm"><p class="homebutton">HOME</p><img class="navbutton" src="_images/home-button.png" alt="Website Navigation. Home Button" title="Home" height="115" width="120" /></a></li>
<li><img class="navbutton" src="_images/how-button.png" alt="Website Navigation. How To Use Our Services Button" title="How To Use Our Services" height="115" width="120" /></li>
<li><img class="navbutton" src="_images/playstation-button.png" alt="Website Navigation. Playstation Repair Button" title="Playstation Repair" height="115" width="120" /></li>
<li><img class="navbutton" src="_images/xbox-button.png" alt="Website Navigation. Xbox Repair Button" title="Xbox Repair" height="115" width="120" /></li>
<li><img class="navbutton" src="_images/wii-button.png" alt="Website Navigation. Wii Repair Button" title="Wii Repair" height="115" width="120" /></li>
<li><img class="navbutton" src="_images/reviews-button.png" alt="Website Navigation. Customer Reviews Button" title="Customer Reviews" height="115" width="120" /></li>
<li><img class="navbutton" src="_images/map-button.png" alt="Website Navigation. Location And Map Button" title="Location and Map" height="115" width="120" /></li>
<li><img class="navbutton" src="_images/contact-button.png" alt="Website Navigation. Contact Us Button" title="Contact Us" height="115" width="120" /></li>
</ul>
<!-- end .nav --></div>
CSS
#nav {
background-image: url(../_images/nav-bg.png);
width:960px;
height:115px;
margin-bottom:10px;
position:relative;
}
.navbutton {
-webkit-transition:opacity 0.7s ease-in-out;
-moz-transition:opacity 0.7s ease-in-out;
-o-transition:opacity 0.7s ease-in-out;
transition:opacity 0.7s ease-in-out;
float:left;
}
img.navbutton:hover {
opacity:0;
}
.homebutton {
position:absolute;
left:19px;
top:70px;
color:rgba(255,255,255,1);
font-weight:bold;
font-size:16px;
}
编辑 2
好的,我创建了一个小提琴以使其更易于理解:http://jsfiddle.net/sK5q2/
如您所见,当鼠标悬停在文本上时图像不会褪色
【问题讨论】:
-
嗨,克里斯,发布 CSS/HTML 对您很有帮助。如果你简单地把它放在“小提琴”(jsfiddle.net)中,那就更棒了。通过这样做,SO 成员可以轻松查看您的代码并根据需要进行调整并帮助指出任何问题。
-
在 SO 中,我们使用粘贴 html 和 CSS - 在与 L&F 相关的问题中,还有 JSFIDDLE 或 Tinkerbin 或 Liveweave 链接。别人很难通过阅读纯文本来“想象”你的问题..
-
如果您的分组 DIV 元素同时包含 P 元素和图像 - 那么您为什么不将格式应用于 :hovering DIV 元素...?
-
@CBrow - 那么我不需要为每个按钮单独设置一个 DIV 吗?如果可能的话,我宁愿把它们都放在同一个 DIV 中
-
另外我认为文本会随着按钮淡出