所以我有一个使用标准Bootstrap 3类和结构的导航栏,最近我想看看你是否可以在悬停时打开下拉菜单。
我做了一些搜索并找到了这个片段:
.dropdown:hover .dropdown-menu{
display: block;
}
这会在悬停时打开菜单,这很棒(无需切换.dropdown-toggle
我的问题是我的.dropdown-toggle
有一个focus
状态,只有在对该元素进行关注时才会发生这种状态,因此当我悬停并且菜单打开时,我的悬停状态永远不会应用,因为我不必再单击顶部菜单项。
所以问题是:当:focus
处于活动状态时,有没有办法强制:hover
状态?
我试着这样做:
.dropdown:hover #home .dropdown-toggle:focus{
background: #00aaff;
border: #00aaff 1px solid;
}
所以基本上在悬停时添加样式到焦点,但我认为我真正需要做的是在:focus
上添加:hover
类,这更像是一个JavaScript吗?
答案 0 :(得分:0)
$(".dropdown").hover(function(){
$('#home .dropdown-toggle').focus();
});
在css中
#home .dropdown-toggle:focus{
background: #00aaff;
border: #00aaff 1px solid;
}
当焦点开启时,css会被应用。
答案 1 :(得分:0)
我认为这是一个JavaScript事物'。你可以附上一个鼠标悬停'事件到菜单,当被触发时,将改变菜单的CSS和.dropdown-toggle元素的CSS。
我认为触发"焦点"并不是很有意义。如果您使用JavaScript,则修改CSS状态(在此特定示例中,我将使用JQuery库)。
一个简单的例子:https://jsfiddle.net/matu2vd6/5/
HTML:
<div class='dropdown'>My dropdown element.</div>
<div class='dropdown-toggle'>My dropdown-toggle element.</div>
JS / JQUERY:
let dropDownEl = $(".dropdown");
let dropDownToggleEl = $(".dropdown-toggle");
dropDownEl.on("mouseover", function() {
dropDownToggleEl.css({"background": "#00aaff",
"border": "#00aaff 1px solid"});
});
dropDownEl.on("mouseout", function() {
dropDownToggleEl.css({"background": "transparent",
"border": "none"});
});