Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript sIFR3:控制a和a:通过CSS而不是JS替换内部的悬停样式_Javascript_Html_Css_Sifr - Fatal编程技术网

Javascript sIFR3:控制a和a:通过CSS而不是JS替换内部的悬停样式

Javascript sIFR3:控制a和a:通过CSS而不是JS替换内部的悬停样式,javascript,html,css,sifr,Javascript,Html,Css,Sifr,为了在我的网站上为sIFR功能提供优雅和最少的编码,我希望尽可能多地在CSS中定义样式。我是这样做的: •定义一个由sIFR3替换的H3标签 •H3由CSS根据其容器提供不同的颜色,例如: body.blue-txt h3{ color: #009CDA; } body.white-txt h3{ color: #FFFFFF; } body.yellow-txt h3{ color: #FFFF00; } body.etc.... •H3可能包含一个锚(我知道语义问题,但这就是目前的情况……

为了在我的网站上为sIFR功能提供优雅和最少的编码,我希望尽可能多地在CSS中定义样式。我是这样做的:

•定义一个由sIFR3替换的H3标签

•H3由CSS根据其容器提供不同的颜色,例如:

body.blue-txt h3{ color: #009CDA; }
body.white-txt h3{ color: #FFFFFF; }
body.yellow-txt h3{ color: #FFFF00; }
body.etc....
•H3可能包含一个锚(我知道语义问题,但这就是目前的情况……对不起)

设置为:

sIFR.useStyleCheck = true;
我想sIFR3会用CSS样式表中正确的颜色显示替换后的正常H3文本。到目前为止,一切顺利: 我可以通过使用sifr.replace()的css参数来调整sifr-config.js中的蓝色文本:

但在JS和CSS中,我的sIFR替换中的每一种文本颜色都必须进行编码。因此,我想让sIFR.useStyleCheck设置只考虑sIFR-config.CSS中的CSS,如:

body.blue-txt h3{ color: #009CDA; }
body.blue-txt h3 a{ color: #009CDA; }
body.blue-txt h3 a:hover{ color: #009CDA; text-decoration: underline; }

只是这似乎不起作用。。。链接文本一直以#0000FF的形式弹出,悬停处没有下划线。这只是
还不是一项功能吗?
,还是我做错了什么?

看起来v2.0的这个分支正是您所需要的

另一种可能性是FLIR图像替换


如果我可以建议的话,为什么不使用@font-face呢?到目前为止,大多数人已经升级到Firefox3+,WebKit浏览器(Safari、Chrome等)已经实现了一段时间,甚至IE5.5+也支持@font-face。这将解决您的:悬停问题,并将更加语义和逻辑,以及更快,但更好的是没有闪光灯!)


但老实说,@font-face将是最好的选择,除非您专门针对
useStyleCheck
对Flash电影中的颜色没有影响。您需要在
sIFR.replace()
参数中指定所有样式(字体大小除外)


现在,您可以使用回调根据被替换元素的当前样式更新应用的CSS。不过,您确实需要自己对其进行编程。

sIFR 2已经过时了。这一点很好,但我们必须等待用@font-face重构这个css;这是一个现有的网站,它在如何实现sIFR方面有一些小问题。但是对于新的网站来说,这当然是一条路要走。是的,我看到我上面的代码有一个不起作用的例子,被广告为起作用,我会改变文本。不过,我不确定modifyCss()是否符合我的要求。我的样式表中的CSS
color
属性不能自动使用(就像字体大小一样),而不是通过sIFR.replace()中的CSS参数强制使用吗?当然可以,但是您可以在那里指定其他CSS属性,这些属性不能从浏览器CSS中移除。因此决定不解除任何东西。
body.blue-txt h3{ color: #009CDA; }
body.blue-txt h3 a{ color: #009CDA; }
body.blue-txt h3 a:hover{ color: #009CDA; text-decoration: underline; }