想要在鼠标悬停子菜单上保持菜单黑色的字体颜色

时间:2015-09-23 08:35:51

标签: javascript jquery css

我正在使用superfish菜单,我想在子菜单上移动鼠标时将父菜单的颜色保持为黑色。目前,当我将鼠标移到子菜单上时,父菜单颜色变为与背景相同的白色。但是我希望字体颜色是黑色而不是白色。我怎样才能实现它。请帮我。提前谢谢。

这是我的HTML代码

<div id="mainmenu">
  <ul class="sf-menu">
    <li><a href="#"><span>Home</span></a></li>
    <li><a href="#"><span>About Us</span></a>
      <ul>
        <li><a href="#"><span>About 1</span></a></li>
        <li><a href="#"><span>About 2</span></a></li>
      </ul>
    </li>
    <li><a href="#"><span>Portfolio</span></a>
      <ul>
        <li><a href="#"><span>All Projects</span></a></li>
        <li><a href="#"><span>Single Type #1</span></a></li>
        <li><a href="#"><span>Single Type #2</span></a></li>
      </ul>
    </li>
    <li><a href="#"><span>Services</span></a>
      <ul>
        <li><a href="#"><span>Services 1</span></a></li>
        <li><a href="#"><span>Services 2</span></a></li>
      </ul>
    </li>
    <li><a href="#"><span>News</span></a></li>
    <li><a href="#"><span>Contact</span></a></li>
  </ul>
</div>

css文件代码

 /*** ESSENTIAL STYLES ***/
    .sf-menu, .sf-menu * {
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .sf-menu li {
        position: relative;
    }
    .sf-menu ul {
        position: absolute;
        display: none;
        top: 100%;
        left: 0;
        z-index: 99;
    }
    .sf-menu > li {
        float: left;
    }
    .sf-menu li:hover > ul,
    .sf-menu li.sfHover > ul {
        display: block;
    }

    .sf-menu a {
        display: block;
        position: relative;
    }
    .sf-menu ul ul {
        top: 0;
        left: 100%;
    }


    /*** DEMO SKIN ***/
    .sf-menu {
        float: left;
    }
    .sf-menu ul {
        box-shadow: 2px 2px 6px rgba(0,0,0,.2);
        min-width: 12em; /* allow long menu items to determine submenu width */
        *width: 12em; /* no auto sub width for IE7, see white-space comment below */
    }
    .sf-menu > li > a {
        color: #fff;
        font-size: 14px;
        text-transform: uppercase;
        font-weight: 700;
        -webkit-font-smoothing: antialiased; 
        display: block;
        margin: 0;
        line-height: 70px;
        padding: 0 40px;
    }
    .sf-menu a {
        text-decoration: none;
        zoom: 1; /* IE7 */
    }
    .sf-menu a {
        color: #fff;
    }
    .sf-menu ul {
        position: absolute;
        min-width: 250px;
        background: #fff;
        z-index: 1000;
        -webkit-box-shadow: 2px 2px 5px 0px rgba(50, 50, 50, 0.2);
        -moz-box-shadow:    2px 2px 5px 0px rgba(50, 50, 50, 0.2);
        box-shadow:         2px 2px 5px 0px rgba(50, 50, 50, 0.2);
        padding: 30px 0 30px 30px;
    }
    .sf-menu li {
        white-space: nowrap; /* no need for Supersubs plugin */
        *white-space: normal; /* ...unless you support IE7 (let it wrap) */
        -webkit-transition: background .2s;
        transition: background .2s;
    }
    .sf-menu ul li {
        background: #fff;
        color: #888;
    }
    .sf-menu ul li a {
        color: #888;
        text-transform: uppercase;
        font-size: 12px;
        padding: 15px 20px; 
        display: block;
        font-weight: 600;
    }
    .sf-menu ul ul li {
        background: #fff;
    }
    .sf-menu li:hover,
    .sf-menu li.sfHover {
        background: #fff;
        color:#222;
        /* only transition out, not in */
        -webkit-transition: none;
        transition: none;
    }
    /*** arrows (for all except IE7) **/
    .sf-arrows .sf-with-ul {
        padding-right: 2.5em;
        *padding-right: 1em; /* no CSS arrows for IE7 (lack pseudo-elements) */
    }
    /* styling for both css and generated arrows */
    .sf-arrows .sf-with-ul:after {
        content: '';
        position: absolute;
        top: 50%;
        right: 1em;
        margin-top: -3px;
        height: 0;
        width: 0;
        /* order of following 3 rules important for fallbacks to work */
        border: 5px solid transparent;
        border-top-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
        border-top-color: rgba(255,255,255,.5);
    }
    .sf-arrows > li > .sf-with-ul:focus:after,
    .sf-arrows > li:hover > .sf-with-ul:after,
    .sf-arrows > .sfHover > .sf-with-ul:after {
        border-top-color: white; /* IE8 fallback colour */
    }
    /* styling for right-facing arrows */
    .sf-arrows ul .sf-with-ul:after {
        margin-top: -5px;
        margin-right: -3px;
        border-color: transparent;
        border-left-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
        border-left-color: rgba(255,255,255,.5);
    }
    .sf-arrows ul li > .sf-with-ul:focus:after,
    .sf-arrows ul li:hover > .sf-with-ul:after,
    .sf-arrows ul .sfHover > .sf-with-ul:after {
        border-left-color: white;
    }
    /*** custom css ***/
    .sf-menu li.selected,
    .sf-menu li.current-cat,
    .sf-menu li.current-cat-parent,
    .sf-menu li.current_page_item,
    .sf-menu li.current_page_parent,
    .sf-menu li.current_page_ancestor {
        background:#fff;
        color:#222;
    }
    .sf-menu li.current_page_item a {
        color:#222; 
    }

3 个答案:

答案 0 :(得分:1)

您需要在悬停后包含锚点。

在此css .sf-menu li:hover a, .sf-menu li.sfHover a {}

之后,我在代码中的部分旁边发表了评论

body {background: grey;} 

/*** ESSENTIAL STYLES ***/
    .sf-menu, .sf-menu * {
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .sf-menu li {
        position: relative;
    }

    .sf-menu ul {
        position: absolute;
        display: none;
        top: 100%;
        left: 0;
        z-index: 99;
    }
    .sf-menu > li {
        float: left;
    }
    .sf-menu li:hover > ul,
    .sf-menu li.sfHover > ul {
        display: block;
    }

    .sf-menu a {
        display: block;
        position: relative;
    }
    .sf-menu ul ul {
        top: 0;
        left: 100%;
    }


    /*** DEMO SKIN ***/
    .sf-menu {
        float: left;
    }
    .sf-menu ul {
        box-shadow: 2px 2px 6px rgba(0,0,0,.2);
        min-width: 12em; /* allow long menu items to determine submenu width */
        *width: 12em; /* no auto sub width for IE7, see white-space comment below */
    }
    .sf-menu > li > a {
        color: #fff;
        font-size: 14px;
        text-transform: uppercase;
        font-weight: 700;
        -webkit-font-smoothing: antialiased; 
        display: block;
        margin: 0;
        line-height: 70px;
        padding: 0 40px;
    }
    .sf-menu a {
        text-decoration: none;
        zoom: 1; /* IE7 */
    }
    .sf-menu a {
        color: #fff;
    }
    .sf-menu ul {
        position: absolute;
        min-width: 250px;
        background: #fff;
        z-index: 1000;
        -webkit-box-shadow: 2px 2px 5px 0px rgba(50, 50, 50, 0.2);
        -moz-box-shadow:    2px 2px 5px 0px rgba(50, 50, 50, 0.2);
        box-shadow:         2px 2px 5px 0px rgba(50, 50, 50, 0.2);
        padding: 30px 0 30px 30px;
    }
    .sf-menu li {
        white-space: nowrap; /* no need for Supersubs plugin */
        *white-space: normal; /* ...unless you support IE7 (let it wrap) */
        -webkit-transition: background .2s;
        transition: background .2s;
    }
    .sf-menu ul li {
        background: #fff;
        color: #888;
    }
    .sf-menu ul li a { 
        color: #888;
        text-transform: uppercase;
        font-size: 12px;
        padding: 15px 20px; 
        display: block;
        font-weight: 600;
    }
    .sf-menu ul ul li {
        background: #fff;
    }
    .sf-menu li:hover a,
    .sf-menu li.sfHover a { /* ADDED YOUR ANCHOR TO THIS SELECTOR */
        background: #fff;
        color:#222;
        /* only transition out, not in */
        -webkit-transition: none;
        transition: none;
    }
    /*** arrows (for all except IE7) **/
    .sf-arrows .sf-with-ul {
        padding-right: 2.5em;
        *padding-right: 1em; /* no CSS arrows for IE7 (lack pseudo-elements) */
    }
    /* styling for both css and generated arrows */
    .sf-arrows .sf-with-ul:after {
        content: '';
        position: absolute;
        top: 50%;
        right: 1em;
        margin-top: -3px;
        height: 0;
        width: 0;
        /* order of following 3 rules important for fallbacks to work */
        border: 5px solid transparent;
        border-top-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
        border-top-color: rgba(255,255,255,.5);
    }
    .sf-arrows > li > .sf-with-ul:focus:after,
    .sf-arrows > li:hover > .sf-with-ul:after,
    .sf-arrows > .sfHover > .sf-with-ul:after {
        border-top-color: white; /* IE8 fallback colour */
    }
    /* styling for right-facing arrows */
    .sf-arrows ul .sf-with-ul:after {
        margin-top: -5px;
        margin-right: -3px;
        border-color: transparent;
        border-left-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
        border-left-color: rgba(255,255,255,.5);
    }
    .sf-arrows ul li > .sf-with-ul:focus:after,
    .sf-arrows ul li:hover > .sf-with-ul:after,
    .sf-arrows ul .sfHover > .sf-with-ul:after {
        border-left-color: white;
    }
    /*** custom css ***/
    .sf-menu li.selected,
    .sf-menu li.current-cat,
    .sf-menu li.current-cat-parent,
    .sf-menu li.current_page_item,
    .sf-menu li.current_page_parent,
    .sf-menu li.current_page_ancestor {
        background:#fff;
        color:#222;
    }
    .sf-menu li.current_page_item a {
        color:#222; 
    }
<div id="mainmenu">
  <ul class="sf-menu">
    <li><a href="#"><span>Home</span></a></li>
    <li><a href="#"><span>About Us</span></a>
      <ul>
        <li><a href="#"><span>About 1</span></a></li>
        <li><a href="#"><span>About 2</span></a></li>
      </ul>
    </li>
    <li><a href="#"><span>Portfolio</span></a>
      <ul>
        <li><a href="#"><span>All Projects</span></a></li>
        <li><a href="#"><span>Single Type #1</span></a></li>
        <li><a href="#"><span>Single Type #2</span></a></li>
      </ul>
    </li>
    <li><a href="#"><span>Services</span></a>
      <ul>
        <li><a href="#"><span>Services 1</span></a></li>
        <li><a href="#"><span>Services 2</span></a></li>
      </ul>
    </li>
    <li><a href="#"><span>News</span></a></li>
    <li><a href="#"><span>Contact</span></a></li>
  </ul>
</div>

答案 1 :(得分:0)

这是你想要的吗?

 .sf-menu > li a:hover{
    color: red;
}

答案 2 :(得分:0)

更改以下代码

.sf-menu > li > a {color:#000}