用CSS禁用菜单上的悬停
-
12-12-2019 - |
题
我一直在试图解决这个星期 - 我相信它很简单,但我真的很挣扎!
我正在尝试更改我的导航,以便用户必须单击它以显示它。我相信Magento默认是他们只是徘徊,至少这就是我正在发生的事情。有人告诉我,他们认为这是我认为可能是对的CSS课程的影响。值得注意的是,我的移动版本(在桌面上查看时)确实启用单击,但桌面显示在悬停时。
这是我的nav-primary的css:
.nav-primary a {
color:#9a9a9a;
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
text-transform: uppercase;
}
.nav-primary a:hover {
color:#000;
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
text-transform: uppercase;
}
#header-account li a,
.nav-primary a.level0 {
width: 200px;
text-align: left;
color: #636363;
text-transform: uppercase;
line-height: 20px;
padding-top: 0;
padding-right: 15px;
padding-bottom: 0;
margin-left: 300px;
}
#header-account li:last-child a,
.nav-primary li.level0:last-child a.level0 {
border-bottom: 0;
}
.no-touch #header-account a:hover,
.no-touch .nav-primary a:hover {
text-decoration: none;
}
.nav-primary {
display: block;
padding-top: 30px;
}
.nav-primary a {
text-decoration: none;
position: relative;
display: block;
color: #636363;
line-height: 30px;
font-family: "Raleway", "Helvetica Neue", Verdana, Arial, sans-serif;
}
.nav-primary li {
position: relative;
}
.nav-primary li.level1 a {
margin-left: 350px;
}
.nav-primary .menu-active > ul.level0,
.nav-primary li.level0 li.sub-menu-active > ul {
display: block;
}
.nav-primary li.level0 > a {
text-transform: uppercase;
}
/* ============================================ *
* Small Viewports - Accordion Style Menu
* ============================================ */
.nav-primary a.level0,
.nav-primary a {
line-height: 25px;
}
.nav-primary li.level0 ul {
display: none;
}
.nav-primary li.level0 li {
padding: 0 0 0 25px;
}
.nav-primary li.level1 a {
padding: 0 15px 0 25px;
}
.nav-primary li.parent > a:after {
content: '';
position: absolute;
width: 0;
height: 0;
display: block;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid #cccccc;
border-right: none;
top: 50%;
left: 10px;
right: auto;
margin-top: -5px;
}
.nav-primary li.parent.sub-menu-active > a:after,
.nav-primary li.parent.menu-active > a:after {
content: '';
position: absolute;
width: 0;
height: 0;
display: block;
border-right: 5px solid transparent;
border-left: 5px solid transparent;
border-top: 5px solid #cccccc;
border-bottom: none;
top: 50%;
left: 10px;
right: auto;
margin-top: -5px;
}
.nav-primary li.menu-active > a,
.nav-primary li.sub-menu-active > a {
color: #000;
}
/* ============================================ *
* Large Viewports - Dropdown Menu
* ============================================ */
.nav-primary li.menu-active > ul {
display: block;
}
.
这是一个使它们出现在悬停时或只是在那里:
.nav-primary li.level0 ul { display: none; }
.
但我不确定要从悬停中换来要改变什么,以单击?
更新:
我已将我的/app.js中的代码更改为以下内容,似乎是工作!
mouseClickAction: function(event, target) {
if(this.useSmallScreenBehavior()) {
return; // don't do mouse enter functionality on smaller screens
}
$j(target).addClass('menu-active'); //show current menu
},
/**
* On large screens, hide menu.
* On small screens, do nothing.
*
* @param event
* @param target
*/
mouseClickAction: function(event, target) {
if(this.useSmallScreenBehavior()) {
return; // don't do mouse leave functionality on smaller screens
}
$j(target).removeClass('menu-active'); //hide all menus
},
/**
* On large screens, don't interfere so that browser will follow link.
* On small screens, toggle menu visibility.
*
* @param event
* @param target
*/
mouseClickAction: function(event, target) {
{
event.preventDefault(); //don't follow link
this.toggleMenuVisibility(target); //instead, toggle visibility
}
},
.
我基本上现在它与小屏幕版本相同;用户点击以显示一个很棒的下一个类别!我确实有几个类别,即显示静态块而不是转移到现在不起作用的页面。任何想法如何仍然允许静态块显示?
解决方案
您指定的选择器正在添加显示:无挂起您的下降。这可能保持不变,您需要更改的是显示它们的部分。它看起来像是由这个选择器完成的 “.Nav-Primary .menu-Active> ul.level0”它使菜单项显示:再次块。您真正需要更改的是将“菜单活动”类添加到菜单中的最高级别UL的JavaScript,在将为Skin / Frontend / RWD / Default / JS / App.js中的RWD主题中。
其他提示
您正在寻找onclick事件,通常使用jQuery而不是CSS完成。有一个CSS解决方法涉及使用复选框。查看回答这个问题。