最近我一直致力于Shower HTML5+CSS3 presentation template即将发表演讲。淋浴使用CSS :target
pseudo-class,可以轻松识别幻灯片概览中的当前幻灯片。
我理解:target
如何通过网址中的哈希工作,但是我无法让它从所有元素中清除:target
CSS。
所以我的问题是:假设在一个元素被:target
之后,我们如何清除所有:target
并使用JavaScript将其恢复为常规?使用History API似乎不起作用。
答案 0 :(得分:1)
我之前尝试过以下两个语句但它不起作用(至少在Firefox上):
history.pushState({}, 'null', window.location.pathname);
window.location.href.substr(0, window.location.href.indexOf('#'));
诀窍是改用它:
window.location.hash = '';
如果我们尝试通过JavaScript清除:target
选项,则问题才存在。包含不存在或空哈希的锚标记有效:http://jsfiddle.net/SMbsb/3/
答案 1 :(得分:0)
要使用不使用Javascript的链接清除哈希目标,您只需使用<a>
制作另一个href="#"
代码。
简单示例:http://jsfiddle.net/Y5XB7/
单击顶部的黑色方块以激活:target
,然后单击底部的黑色方块以清除它。
<a href="#" ...> ... </a>