0

我正在尝试制作我的菜单链接#666666,然后hover制作它#FFFFFF

我希望这些颜色在text colourtop border

http://jsfiddle.net/4Xdkn/

#topbar {
    width:100%;
    height:80px;
    background-color:#000000;
}
#topbar-inner {
    width:1000px;
    margin:0 auto 0 auto;
}
#logo {
    display:inline;
    float:left;
    margin-top:20px;
}

#menu {
    display:inline;
    float:right;
}
#menu > ul > li {
    display:inline-block;
    border-top:4px solid #666666;
    margin-right:20px;
    padding-top:20px;
    min-width:120px;
}
#menu > li {
    display:inline-block;
    list-style:none;
    margin-top:25px;
    margin-left:auto;
    margin-right:auto;
}
#menu > li:hover {
    color:#FFFFFF;
}
4

6 回答 6

2

选择器应该是

#menu li a {
    color: #666;
    display: block;
}
#menu li:hover {
    border-top-color: #FFF;
}
#menu li:hover a {
    color:#FFFFFF;
}

#menu没有直系li后代,因此#menu > li:hover不匹配任何内容。

http://jsfiddle.net/4Xdkn/8/

于 2013-06-27T10:30:48.610 回答
1

你的 CSS 有错误

#menu > li不针对任何东西,因为#menu应用于 adiv并且它没有 type 的直接子级li

使用这些规则

#menu li {
    display:inline-block;
    border-top:4px solid #666666;
    margin-right:20px;
    padding-top:20px;
    min-width:120px;
}
#menu li:hover, 
#menu li:hover a {
    color:#FFFFFF;
}
#menu li a {
    color:#666666;
}
#menu li:hover {
    border-color:#FFFFFF;
}

演示在http://jsfiddle.net/gaby/4Xdkn/4/

于 2013-06-27T10:31:42.653 回答
1

更新小提琴

您需要添加:

#menu li a {
     display:block; 
     padding-top:25px;   
     border-top:4px solid #666666;
 }
#menu 
     li a:hover { 
      border-color:red; 
      color:#fff
 }

#menu > ul > li删除border-topand padding,因为它现在已添加到a标签中。

#menu > li删除margin-top属性

于 2013-06-27T10:32:13.143 回答
0

试试下面的css

       #topbar {
     width:100%;
     height:80px;
     background-color:#000000;
        }
       #topbar-inner {
     width:1000px;
     margin:0 auto 0 auto;
        }
       #logo {
     display:inline;
     float:left;
     margin-top:20px;
        }

      #menu {
     display:inline;
     float:right;
            }
       #menu > ul > li {
       display:inline-block;    
       margin-right:20px;   
       min-width:120px;
            }
       #menu > li { 
       list-style:none;
       padding:25px 0 0 0;
       margin-left:auto;
       margin-right:auto;
           border-top:1px solid #fff;
           }
        #menu ul li a:hover {
        color:#FFFFFF;
           }
       #menu li a {display:block; padding:20px 0 0 0;border-top:4px solid #666666;}
       #menu li a:hover { border-top:4px solid #fff; color:#fff}
于 2013-06-27T10:32:23.023 回答
0

试试这个

http://jsfiddle.net/4Xdkn/7/

#topbar {
    width:100%;
    height:80px;
    background-color:#000000;
}
#topbar-inner {
    width:1000px;
    margin:0 auto 0 auto;
}
#logo {
    display:inline;
    float:left;
    margin-top:20px;
}

#menu {
    display:inline;
    float:right;
}
#menu > ul > li {
    display:inline-block;
    border-top:4px solid #666666;
    margin-right:20px;
    padding-top:20px;
color:#ffffff;
    min-width:120px;
}
#menu > li > a {
    display:inline-block;
    list-style:none;
    margin-top:25px;
    margin-left:auto;
    margin-right:auto;
     text-decoration:none;
    color:#ffffff;
    text-decoration:none;
}

#menu li:hover {
    color:#FFFFFF !important;
    text-decoration:none;
    border-top:4px solid #ffffff;
    display:inline-block;
}
#menu li a:hover{
    color:#ffffff;
    text-decoration:none;
}
}
于 2013-06-27T10:32:53.987 回答
0

着色 a 元素而不是 li 并使 a 元素与 li 一样大。

#menu li a:hover {
    color:white;
    border-style:solid;
    border-width: 1px 0px 0px 0px;
    border-color:white;
}
于 2013-06-27T10:34:25.420 回答