Меню CSS із навігацією

I am trying to make my menu links #666666 and then on hover make it #FFFFFF

i want these colours to change on the text colour and the top 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;
}
0
Моя мама завжди казала мені, що "хочу" мертвий навіть у саду короля (я думаю, що це не добре перекладається англійською мовою, але все-таки ..)
додано Автор STT LCU, джерело
додано Автор Nobita, джерело
додано Автор Nobita, джерело
З вигляду CSS ви, мабуть, повинні прочитати цю статтю. Це пояснить, чому ви маєте цю проблему: посилання
додано Автор Andrew, джерело
З вигляду CSS ви, мабуть, повинні прочитати цю статтю. Це пояснить, чому ви маєте цю проблему: посилання
додано Автор Andrew, джерело

6 Відповіді

Селектори повинні бути

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

#menu has no direct li descendants so #menu > li:hover does not match anything.

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

2
додано
Ого, так багато відповідей. Але ти був першим. Вітаю! (Я можу видалити свою оновлену скрипку зараз.)
додано Автор Mr Lister, джерело
@NickR Ви маєте рацію.
додано Автор dfsq, джерело
Це рішення має проблему, коли ви наводите курсор на li , він змінює колір і фон, але ви не можете натиснути на нього, оскільки тег a не є встановити на display: block , особисто я не думаю, що це найкраще рішення.
додано Автор Nick R, джерело
відмінно - дякую. Як я можу зробити колір тексту # 666666, коли його не натиснули?
додано Автор user2431709, джерело

У вас є помилка в CSS

#menu > li does not target anything, since #menu is applied to a div and it has no direct children of 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;
}

Demo at http://jsfiddle.net/gaby/4Xdkn/4/

1
додано

Оновлено Fiddle

Вам потрібно додати:

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

On #menu > ul > li remove the border-top and padding, because this has been added to the a tag now.

On #menu > li remove the margin-top property

1
додано

Кольоровіть a-елемент замість li і зробіть елемент таким великим, як li.

#menu li a:hover {
    color:white;
    border-style:solid;
    border-width: 1px 0px 0px 0px;
    border-color:white;
}
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;
}
}
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}
0
додано