我正在学习CSS,现在我有了这个:
https://jsfiddle.net/marquesm91/ahwxwyca/
基本上,我想要突出显示我点击的元素,并在单击元素外部时保持突出显示。当我在元素之间切换时,它只突出显示实际元素。
$(function() {
$('#menu').metisMenu({
toggle: false // disable the auto collapse. Default: true.
});
});

#menu a:hover,
#menu a:focus {
color: #fff;
background-color: #2a6496;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/onokumus/metisMenu/master/dist/metisMenu.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link href="http://rawgit.com/onokumus/metisMenu/master/dist/metisMenu.min.css" rel="stylesheet" />
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="container-fluid">
<div class="row">
<div class="col-xs-6">
<aside class="sidebar">
<nav class="sidebar-nav">
<ul class="metismenu" id="menu">
<li>
<a href="#" aria-expanded="false">Menu<span class="glyphicon arrow"></span></a>
<ul aria-expanded="false">
<li><a href="#">item 2.1</a>
</li>
<li><a href="#">item 2.2</a>
</li>
<li><a href="#">item 2.3</a>
</li>
<li><a href="#">item 2.4</a>
</li>
</ul>
</li>
</ul>
</nav>
</aside>
</div>
</div>
</div>
&#13;
到现在为止,我的CSS并没有帮助我。有什么建议吗?
答案 0 :(得分:0)
CSS可以与悬停互动,但无法以您描述的方式与点击互动。你需要Javascript。
$('#menu').find("a").click(function(){
$(this).css("background-color","#2a6496");
$(this).css("color","#fff");
});
这是fiddle。
PS,在使用jQuery制作小提琴时,请务必从JS菜单中选择jQuery。
也许这更接近你想要的东西:
$('#menu').find("a").focus(function() {
$('#menu').find("a").each(function() {
$(this).css("background-color", "initial");
$(this).css("color", "initial");
});
$(this).css("background-color", "#2a6496");
$(this).css("color", "#fff");
});
https://jsfiddle.net/zq0cpohb/
这只会突出显示点击的最后一个元素..
答案 1 :(得分:0)
如果没有一些CSS hack,这是不可能的。
最好的方法是通过JavaScript。
尝试这样的事情:
$("#menu a").click(function() {
$(this).addClass("focused");
});
CSS:
.focused {
color: #fff;
background-color: #2a6496;
}