Элементы, которые не являются входными данными или не «заслуживают внимания» [© / ™ / etc.], Не будут признавать псевдоклассы :focus
, :active
и т. Д., Которые предлагает CSS.Возможно, вы могли бы взломать его с помощью якоря (<a>
), но теперь у вас остается предоставление цели href
и, опять же, без вмешательства javascript вы будете либо прокручивать окно до названного идентификатора привязки / совпадающего идентификатора, либопопытка взломать любые другие эффекты, используя <a>
.А без href
вы теряете много врожденных способностей.
С учетом сказанного маленький javascript может делать именно то, что вам нужно, оставаясь при этом (относительно) легким.И, в худшем случае, браузер, который либо не поддерживает javascript, либо отключает его, может использовать только :hover
способность.
С этим вот альтернатива javascript:
Создайте класс:
#NavItem .active { background-color: #FF8700; }
Затем:
var ul = document.getElementById('NavItem');
if (ul){
var li = ul.getElementsByTagName('li');
for (var i = 0; i < li.length; i++){
li[i].onclick = function(e){
var re = /\b(active)\b/;
if (this.className.test(re)){
this.className = this.className.replace(re,'').replace(/^\s+$/,'');
}else{
this.className += ' active';
}
}
}
}
Или хороший метод jQuery:
$('#NavItem li').click(function(e){
$(this).toggleClass('active');
});