html - CSS 菜单 - 导航栏在选择子项后拒绝突出显示父项

标签 html css drop-down-menu navbar dropdown

我知道那里有 400 个这样的线程,但似乎每个人的代码都有点不同:我已经设置了我的 CSS,以便每次将鼠标悬停在导航页面上时都会出现一个蓝色条,并且单击该链接页面时,蓝色条会停留在它上面。当我单击带有下拉菜单的链接之一时,我无法让它停留在父页面上。我能够让一个蓝色条出现在下拉列表中(笑),但根本无法让它与父项保持一致。我已经尝试了所有祖先提示,所有菜单当前提示,我只是束手无策。如果有任何帮助,我将永远感激不已。

        /*** ----------------------------CHANGE THE COLOR OF THE SQUARES UNDERNEATH THE NAVIGATION BAR HERE ------------------------------- ***/
    nav ul li a:hover, nav ul li a.current {
        border-bottom: 5px solid #00BCF2;
        color: #00BCF2;
    }

    /*** THIS WILL PROBABILY GET US TO WHERE WE WANT TO BE WITH ADDING AND HOVERING THE PARENT LINK 



     nav ul li:hover > a, .current-menu-ancestor > a, .current-menu-parent > a {
            background-color: #536f9e !important;
            color: #ffffff !important;
        }
        ***/

    /*** add publications from box site level 1 here ***/
    /**** Dropdown ****/
    /*** ----------------------------- CHANGE THE LOGO OF THE DROPDOWN ARROW ------------------------------ ***/



    /*** ----------------------------- CHANGE THE height OF THE DROPDOWN menu ------------------------------ ***/

    .dropdown{
        padding: 14px 16px 37px 10px;
        background: url('images/dropdown_icon.png') no-repeat 99% 21px;
    }
    .dropdown:hover{
        border-bottom: none;
    }
    nav ul ul{
        display: none;
        margin: 0;
        position: absolute;
        background-color: #000;
        z-index: 1;

    }
    nav ul li:hover  ul{
        display: block;
            opacity: 0.9;


    }
    nav ul li ul li{
        margin: 0;



    }
    /*** ----------------------------- CHANGE THE WIDTH OF THE DROPDOWN MENU ------------------------------ ***/
    nav ul li ul li a{ 
        margin: 0;
        padding: 5px 10px;
        width: 100px;
    }
    /*** ----------------------------- CREATE BLUE BARS INSIDE OF DROPDOWN ------------------------------ ***/

    nav ul li:hover ul li a:hover, nav ul li:hover ul li a.current{
        border-bottom: none;
    }

根据要求,我开始使用的 HTML --> header 是:

    <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>XXXXXX</title>

    <link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />

    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
    $(function(){
    $('a').each(function() {
    if ($(this).prop('href') == window.location.href) {
    $(this).addClass('current');
    }
    <!--END OF HEADER -->
    });
    });
    </script>
</head>
<body>
    <div id="wrapper">

        <!--========================== L O G O  &   N A V    B A R ============================-->
        <header>
            <div id="logo">
                <a href="home.html"><img src="images/xylophone.png" alt="YouRock" /></a>
            </div>
            <nav>
                <ul>
                    <li><a href="home.html">Home</a></li>
                    <li><a href="about.html">About</a></li>
                    <li><a href="portfolio.html">Founders</a></li>
                    <li><a href="#" class="dropdown">Pipeline</a>
                        <ul>
                        <ul>
                            <li><a href="timeline.html">Timeline</a></li>
                            <li><a href="Phases.html">Phase I / II</a></li>

最佳答案

嗯,检查事件链接是否在下拉 block 内的最简单方法是设置一个类。将类设置为 <li> 也可能有用包含 .dropdown链接以便轻松实现:

<li class="drop-li"><a href="#" class="dropdown">Pipeline</a>
        <ul>
            <li><a href="timeline.html" class="dropdowned">Timeline</a></li>
            <li><a href="Phases.html" class="dropdowned">Phase I / II</a></li>
        </ul>

现在您可以像这样突出显示所需的父链接:

$(function(){
    $('a').each(function() {
    if ($(this).prop('href') == window.location.href) {
        if ($(this).attr('class') == 'dropdowned'){
            $(this).closest('.drop-li').children('a').addClass('current');
        }
        else{
            $(this).addClass('current');
        }
    }
}

无论您有多少个下拉菜单以及您的链接和模板的名称是什么,它都会起作用。

关于html - CSS 菜单 - 导航栏在选择子项后拒绝突出显示父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33046381/

相关文章:

javascript - 如何使用 jquery 在鼠标悬停时显示隐藏的 div?

html - 下拉菜单隐藏在图像后面

html - CSS:只修改类中的一个元素

html - CSS 列表项文本和图标对齐

html - 如何制作像 WikiHow 一样的导航栏?

asp.net-mvc - 传递 IEnumerable 变量以在 ASP .NET MVC 中查看

html - CSS 下拉菜单在 Google Chrome 中无法正常工作(悬停时子菜单消失)

html - 在移动 View 中使用 css 显示隐藏的 div

html - 为什么我的列不会 float 到容器的左边缘?

html - 边框图像在移动设备上无法正常显示,不知道该怎么做