これは、すでに述べたように、現在の CSS では不可能です。ただし、プレーンな JavaScript では可能です (ただし、次のデモは と API をサポートするブラウザでのみ機能しdocument.querySelector()
ますaddEventListener()
) element.classList
。
function hashMonitor() {
var D = document,
active = D.querySelector('a.active'),
link = D.querySelector('[href="#' + D.querySelector(':target').id + '"]');
if (active) {
active.classList.remove('active');
}
link.classList.add('active');
}
window.addEventListener('hashchange', hashMonitor, false);
JS フィドルのデモ。
おそらく、CSS のレベル 4 (現在のところ、実際にはまったくサポートされていません) でこれが可能になる可能性がありますが、実装が現れるまで、そのようなセレクターがどのように使用されるかを推測することは無駄に思えます。
参考文献: