我正在使用无序列表进行导航,我想在其中使用sIFR(我知道不建议这样做,但现在没有其他选择)。列表项包含一个由sIFR替换的div。
HTML:
<ul class="topnav">
<li class="category">
<div>
<a href="#" title="Home">Home</a>
</div>
</li>
<li class="category>
<div>
<a href="#">Link</a>
</div>
</li></ul>
我使用这个sIFR配置:
sIFR.replace(myfont, {
selector: '.topnav li.category div',
css: ['.sIFR-root { font-size:17px; }',
'a:link { color:#a73759; text-decoration:none; }',
'a:hover {color:#ffffff;}',
],
wmode: 'transparent',
fitExactly: true,
});
悬停正在运行,但只有当我将鼠标悬停在实际的Flash文件上时。当我将鼠标悬停在列表项上时,文本颜色应为白色,列表项是替换div的父项。我该如何做到这一点?
答案 0 :(得分:0)
我没有使用过sIFR,但似乎您需要修改selector
,因为它只针对列表项中的<div>
。
或者只是因为你需要添加li:hover a { color: white }
(只记得IE6不支持这个,它也可能会产生误导,因为点击<li>
实际上不会触发链接)
答案 1 :(得分:0)
我是否正确地假设你想要在悬停时用另一部Flash电影替换Flash电影?在这种情况下,sIFR会产生问题,因为sIFR不会呈现未在页面加载中显示的元素。您可以通过使用CSS隐藏带有文本的p元素来测试它,然后尝试sIFR该文本,它将无法工作。
无法呈现不可见元素的原因,imho,与sIFR无法弄清楚元素应该如何看起来正常的事实有关,因此不知道如何替换该元素。
答案 2 :(得分:0)
最简单的答案是Flash影片应该是标签的全宽和高度。
复杂的答案是你使用JavaScript来告诉Flash电影改变颜色,但这几乎不值得。
答案 3 :(得分:0)
我有完全相同的问题,这是我修复它的方法:
<ul class="navContainer">
<li><div><a href="...">Link</a></div></li>
</ul>
sIFR.replace(myriadpro, {
selector: 'ul.navContainer li div ',
css: '.sIFR-root { background-color: transparent; color: #ffffff; font-weight: bold;text-align:center;} a {color: #ffffff; text-decoration:none;} a:hover {color:#482566; background: #f4f3f8;text-decoration:none}',
wmode: 'transparent',
tuneHeight: 15,
offsetTop: 8,
onRollOver: function(fi){
fi.changeCSS( '.sIFR-root {background-color: #f4f3f8; color: #482566; font-weight: bold;text-align:center;} a {color: #482566; text-decoration:none;} a:hover {color:#482566; background: #f4f3f8;text-decoration:none}');
},
onRollOut: function(fi) {
fi.changeCSS( '.sIFR-root { background-color: transparent; color: #ffffff; font-weight: bold;text-align:center;} a {color: #ffffff; text-decoration:none;} a:hover {color:#482566; background: #f4f3f8;text-decoration:none}');
}
});
tuneHeight使影片符合我LI的大小,而offsetTop将内部链接推入垂直居中。