2014-01-16 17 views
0

У меня есть index.php, с меню, я хочу видеть класс menuitem: hover active, когда я над элементом с классом (link), но я также хочу увидеть класс menuitem: hover active, когда я нахожу другое li в меню ссылок. Хорошо, я объясню, что с реальным примером:Загрузите стиль css, когда закончите в другом стиле

У меня есть выпадающее меню. Когда вы переходите по верхней ссылке, она создает границу снизу верхней ссылки, но когда вы находитесь в раскрывающемся меню этой верхней ссылки, граница исчезает, потому что вы наводите выпадающий список не по ссылке. Я хочу видеть границу, когда вы находитесь в раскрывающемся списке, и когда вы переходите по ссылке.

Вот код. Но NOTE вы можете видеть лучше в действии (я знаю, это немного сложно понять проблему).

index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html lang="en"> 
    <head> 
     <link type="text/css" rel="stylesheet" href="./lib/css/layout.css" media="all"> 
    </head> 

    <body> 

    <div id="headerbar"> 
     Hello World 
    </div> 

    <div id="mainmenu-bar"> 
     <div id="mainmenu-content"> 
      <img src="./lib/images/logo.png" height="75" width="75" style="float:left;margin-top:5px;"> 
      <h1 style="color:white; float:left; margin-bottom:0px; display:inline-block;">Title</h1> 

      <div id="mainmenu"> 
       <ul> 
        <li> 
         <a href="#">Inicio</a> 
        </li> 
        <li> 
         <a class="menuitem" href="#">Acerca de</a> 
          <ul> 
           <li><a href="#">Producto</a></li> 
           <li><a href="#">Nosotros</a></li> 
          </ul> 
        </li> 
        <li> 
         <a class="menuitem" href="#">Servicios</a> 
         <ul> 
          <li><a href="#">Servicio uno</a></li> 
          <li><a href="#">Servicio dos</a></li> 
          <li><a href="#">Servicio tres</a></li> 
          <li><a href="#">Servicio cuatro</a></li> 
         </ul> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </div> 

    <div id="content"> 
     <h1 color="white">Hello World</h1> 
    </div> 

    </body> 
</html> 

layout.css

@font-face{font-family: Maven Pro; src: url(../fonts/MavenPro-Regular.ttf);} 

body{font-family:Maven Pro; background:#ECECEC; border:0; font-size:100%; vertical-align:baseline; margin:0; padding:0;} 

#headerbar{height:30px; float:right; margin-right:20px; margin-top:5px;} 

/*MAIN MENU BAR*/ 
#mainmenu-bar{background:#4C84BC; width:100%; height:90px; overflow: hidden;} 
#mainmenu-content{margin: 0 auto; width:1000px;} 
#mainmenu{margin-top:35px; display:inline-block;} 
#mainmenu ul li{float: left; margin-right: 20px; list-style: none;} 
#mainmenu ul li a {color:#FFF; text-decoration: none;} 
#mainmenu ul li a:hover {color: #474747;} 
#mainmenu ul ul {display: none; padding: 0px; position: absolute; width: auto; margin-left: 0px;} 
#mainmenu ul li:hover>ul {background: #fff; width:220px; border-right:1px solid #a4a4a4; margin-top:21px; z-index:9; position: absolute; box-shadow: 0 2px 1px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 2px 1px rgba(0, 0, 0, 0.3); -webkit-box-shadow: 1px 2px 1px rgba(0, 0, 0, 0.3); -o-box-shadow: 0 2px 1px rgba(0, 0, 0, 0.3); border-top:3px solid #FCD100; display: block;} 
#mainmenu ul ul li {float: none;position: relative; text-decoration: none; display: block;} 
#mainmenu ul ul li a{text-decoration: none;} 
.menuitem {padding:11px 15px 17px;} 
.menuitem:hover{border-bottom:6px solid #FCD100;} 

Я знаю, что сделать это возможно онли будет возможно с JQuery, но если есть с CSS3 лучше.

+0

Можете ли вы предоставить ссылку или jsfiddle или что-то в этом роде? – Dennis

ответ

0

попробуйте добавить следующее правило:

.menuitem li:hover{border-bottom:6px solid #FCD100;} 

или даже это сделать и подчиняются тому же правилу:

.menuitem:hover, 
.menuitem li:hover 
{ 
    border-bottom:6px solid #FCD100; 
} 
0

, чтобы увидеть границу, когда вы находитесь в раскрывающемся меню, и когда вы переходите по ссылке. добавьте тот же класс ".both-element" для обоих элементов.

.both-element:hover{border-bottom:6px solid #FCD100;} 
Смежные вопросы