CSS Drop Down – Sub Menu Color

后端 未结 2 1833
被撕碎了的回忆
被撕碎了的回忆 2021-01-21 09:29

I\'m looking for some advice on this issue.

I went through a tutorial a while back to build a CSS drop down menu and can\'t seem to change the default color of the sub m

相关标签:
2条回答
  • 2021-01-21 09:59

    From the above code for changing the color of submenus, you have not targeted the child elements of the main menus. For that you need to target them and add new rules to specifically target that element and change the color. Here is the solution.

    On hover of the items with submenus, the color change for instance here green color on display of the submenus.

    nav ul li:hover ul li a{color:green;}
    

    On hover of the submenus, change of color from green to yellow for instance.

    nav ul li:hover ul li a:hover{color:yellow;}
    

    To elaborate this,

    The HTML:

       <nav>
        <ul>
            <li><a class="selected" href="index.html">Home</a></li>
            <li><a href="clothing.html">Clothing</a></li>
            <li><a href="gear.html">Gear</a></li>
            <li><a href="brand.html">Brand</a>
                <ul>
                    <li><a href="#">XXXXXX</a></li>
                    <li><a href="#">XXXXXX</a></li>
                </ul>
            </li>
            <li><a href="fighter.html">Fighters</a>
                <ul>
                    <li><a href="#">XXXXXX</a></li>
                    <li><a href="#">XXXXXX</a></li>
                </ul>
            </li>
            <li><a href="account.html">My Account</a></li>
        </ul>
    </nav>
    

    The CSS:

        nav {
        position:relative;
        float:right;
        font-size:14px;
        margin-top:35px;
        font-weight:bold;
        padding-right:178px;
        z-index:4;
    }
    nav ul ul {
        display:none; /* hide sub menus */
    }
    nav ul li:hover > ul {
        display:block; /* show sub menus on hover */
    }
    nav ul {
        float:right;
        font-size:14px;
        margin-top:-3px;
        text-transform:uppercase;
        list-style:none;
        position:relative; /* position sub menu according to nav */
        display:inline-table; /* condense with of sub menu to fit */
    }
    nav ul:after {
        content:"";
        clear:both;
        display:block; /* clear floats on other list items */
    }
    nav ul li {
        float:left;
    }
    nav ul li:hover a {
        color:#ee1f3b;
        text-decoration:none;
        -webkit-transition-property:color; 
        -webkit-transition-duration:0.2s, 0.2s; 
        -webkit-transition-timing-function:linear, ease-in;
        -moz-transition-property:color; 
        -moz-transition-duration:0.2s, 0.2s; 
        -moz-transition-timing-function:linear, ease-in;
    }
    nav ul li a {
        padding:4px 11px;
        text-decoration:none;
        color:#000000;
        display:block;
        text-decoration:none;
    }
    nav ul ul {
        background:#cacaca;
        position:absolute;
        top:25px; /* sub position */
    }
    nav ul ul li {
        float:none; 
        border-bottom:1px solid rgba(0, 0, 0, 0.2);
        position:relative;
    }
    nav ul ul li:last-child {
        border-bottom:1px solid rgba(0, 0, 0, 0.2);
    }
    .selected {
        color:#ee1f3b;
    }   
    nav ul ul li a:hover {
        color:#000000;
    }
    
    nav ul li:hover ul li a{color:green;}
    nav ul li:hover ul li a:hover{color:yellow;}
    

    Hope this helps.

    0 讨论(0)
  • 2021-01-21 10:21

    Another method is to give the ul a id in the submenu something like this

     <li><a href="brand.html">Brand</a>
      <ul id="submenu">
        <li><a href="#">AAAAAA</a></li>
        <li><a href="#">BBBBBB</a></li>
      </ul>
     </li>
    

    CSS

    #submenu li a
    {
        color:green;    
    }
    

    See the full Jsfiddle here

    0 讨论(0)
提交回复
热议问题