2016-01-07 2 views
0

Я пробовал следующий код для навигации, в котором я получаю имена категорий и подкатегории из таблицы базы данных mysql. Проблема в том, что я не применяю css к нему. Он показывает все подкатегории в своей категории. Но когда я применил некоторый css к этому коду, он показывает только первое соответствующее имя подкатегории при наведении на имя категории. Вот мой код и css. Я застрял и не могу понять, где я делаю это неправильно. Любые предложения, пожалуйста.Отображение только первого элемента при применении CSS при навигации

$(function() { 
 
    if ($.browser.msie && $.browser.version.substr(0,1)<7) 
 
    { 
 
    $('li').has('ul').mouseover(function(){ 
 
     $(this).children('ul').show(); 
 
    }).mouseout(function(){ 
 
     $(this).children('ul').hide(); 
 
    }) 
 
    } 
 
});
body 
 
{ 
 
    width: 960px; 
 
    margin: 40px auto; 
 
} 
 

 
/* Main menu */ 
 

 
#menu 
 
{ 
 
    width: 100%; 
 
    margin: 0; 
 
    padding: 10px 0 0 0; 
 
    list-style: none; 
 
    background: #111; 
 
    background: -moz-linear-gradient(#444, #111); 
 
    background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #111),color-stop(1, #444)); 
 
    background: -webkit-linear-gradient(#444, #111); 
 
    background: -o-linear-gradient(#444, #111); 
 
    background: -ms-linear-gradient(#444, #111); 
 
    background: linear-gradient(#444, #111); 
 
    -moz-border-radius: 50px; 
 
    border-radius: 50px; 
 
    -moz-box-shadow: 0 2px 1px #9c9c9c; 
 
    -webkit-box-shadow: 0 2px 1px #9c9c9c; 
 
    box-shadow: 0 2px 1px #9c9c9c; 
 
} 
 

 
#menu li 
 
{ 
 
    float: left; 
 
    padding: 0 0 10px 0; 
 
    position: relative; 
 
    line-height: 0; 
 
} 
 

 
#menu a 
 
{ 
 
    float: left; 
 
    height: 25px; 
 
    padding: 0 25px; 
 
    color: #999; 
 
    text-transform: uppercase; 
 
    font: bold 12px/25px Arial, Helvetica; 
 
    text-decoration: none; 
 
    text-shadow: 0 1px 0 #000; 
 
} 
 

 
#menu li:hover > a 
 
{ 
 
    color: #fafafa; 
 
} 
 

 
*html #menu li a:hover /* IE6 */ 
 
{ 
 
    color: #fafafa; 
 
} 
 

 
#menu li:hover > ul 
 
{ 
 
    display: block; 
 
} 
 

 
/* Sub-menu */ 
 

 
#menu ul 
 
{ 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
    display: none; 
 
    position: absolute; 
 
    top: 35px; 
 
    left: 0; 
 
    z-index: 99999; 
 
    background: #444; 
 
    background: -moz-linear-gradient(#444, #111); 
 
    background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #111),color-stop(1, #444)); 
 
    background: -webkit-linear-gradient(#444, #111); 
 
    background: -o-linear-gradient(#444, #111); 
 
    background: -ms-linear-gradient(#444, #111); 
 
    background: linear-gradient(#444, #111); 
 
    -moz-box-shadow: 0 0 2px rgba(255,255,255,.5); 
 
    -webkit-box-shadow: 0 0 2px rgba(255,255,255,.5); 
 
    box-shadow: 0 0 2px rgba(255,255,255,.5); 
 
    -moz-border-radius: 5px; 
 
    border-radius: 5px; 
 
} 
 

 
#menu ul ul 
 
{ 
 
    top: 0; 
 
    left: 150px; 
 
} 
 

 
#menu ul li 
 
{ 
 
    float: none; 
 
    margin: 0; 
 
    padding: 0; 
 
    display: block; 
 
    -moz-box-shadow: 0 1px 0 #111111, 0 2px 0 #777777; 
 
    -webkit-box-shadow: 0 1px 0 #111111, 0 2px 0 #777777; 
 
    box-shadow: 0 1px 0 #111111, 0 2px 0 #777777; 
 
} 
 

 
#menu ul li:last-child 
 
{ 
 
    -moz-box-shadow: none; 
 
    -webkit-box-shadow: none; 
 
    box-shadow: none; 
 
} 
 

 
#menu ul a 
 
{ 
 
    padding: 10px; 
 
    height: 10px; 
 
    width: 130px; 
 
    height: auto; 
 
    line-height: 1; 
 
    display: block; 
 
    white-space: nowrap; 
 
    float: none; 
 
    text-transform: none; 
 
} 
 

 
*html #menu ul a /* IE6 */ 
 
{ 
 
    height: 10px; 
 
} 
 

 
*:first-child+html #menu ul a /* IE7 */ 
 
{ 
 
    height: 10px; 
 
} 
 

 
#menu ul a:hover 
 
{ 
 
    background: #0186ba; 
 
    background: -moz-linear-gradient(#04acec, #0186ba); 
 
    background: -webkit-gradient(linear, left top, left bottom, from(#04acec), to(#0186ba)); 
 
    background: -webkit-linear-gradient(#04acec, #0186ba); 
 
    background: -o-linear-gradient(#04acec, #0186ba); 
 
    background: -ms-linear-gradient(#04acec, #0186ba); 
 
    background: linear-gradient(#04acec, #0186ba); 
 
} 
 

 
#menu ul li:first-child > a 
 
{ 
 
    -moz-border-radius: 5px 5px 0 0; 
 
    border-radius: 5px 5px 0 0; 
 
} 
 

 
#menu ul li:first-child > a:after 
 
{ 
 
    content: ''; 
 
    position: absolute; 
 
    left: 30px; 
 
    top: -8px; 
 
    width: 0; 
 
    height: 0; 
 
    border-left: 5px solid transparent; 
 
    border-right: 5px solid transparent; 
 
    border-bottom: 8px solid #444; 
 
} 
 

 
#menu ul ul li:first-child a:after 
 
{ 
 
    left: -8px; 
 
    top: 12px; 
 
    width: 0; 
 
    height: 0; 
 
    border-left: 0; 
 
    border-bottom: 5px solid transparent; 
 
    border-top: 5px solid transparent; 
 
    border-right: 8px solid #444; 
 
} 
 

 
#menu ul li:first-child a:hover:after 
 
{ 
 
    border-bottom-color: #04acec; 
 
} 
 

 
#menu ul ul li:first-child a:hover:after 
 
{ 
 
    border-right-color: #04acec; 
 
    border-bottom-color: transparent; 
 
} 
 

 

 
#menu ul li:last-child > a 
 
{ 
 
    -moz-border-radius: 0 0 5px 5px; 
 
    border-radius: 0 0 5px 5px; 
 
} 
 

 
/* Clear floated elements */ 
 
#menu:after 
 
{ 
 
    visibility: hidden; 
 
    display: block; 
 
    font-size: 0; 
 
    content: " "; 
 
    clear: both; 
 
    height: 0; 
 
} 
 

 
* html #menu    { zoom: 1; } /* IE6 */ 
 
*:first-child+html #menu { zoom: 1; } /* IE7 */
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="menu"> 
 

 
    <li> 
 
    <a href="#">Categories</a> 
 
    <ul> 
 
     <li> 
 
     <a href="#">CSS</a> 
 
     <ul> 
 
      <li><a href="#">Item 11</a></li> 
 
      <li><a href="#">Item 12</a></li> 
 
      <li><a href="#">Item 13</a></li> 
 
      <li><a href="#">Item 14</a></li> 
 
     </ul> \t \t \t \t 
 
     </li> 
 
     <li> 
 
     <a href="#">Graphic design</a> 
 
     <ul> 
 
      <li><a href="#">Item 21</a></li> 
 
      <li><a href="#">Item 22</a></li> 
 
      <li><a href="#">Item 23</a></li> 
 
      <li><a href="#">Item 24</a></li> 
 
     </ul> \t \t \t \t 
 
     </li> 
 
     <li> 
 
     <a href="#">Development tools</a> 
 
     <ul> 
 
      <li><a href="#">Item 31</a></li> 
 
      <li><a href="#">Item 32</a></li> 
 
      <li><a href="#">Item 33</a></li> 
 
      <li><a href="#">Item 34</a></li> 
 
     </ul> \t \t \t \t 
 
     </li> 
 
     <li> 
 
     <a href="#">Web design</a> \t \t \t \t 
 
     <ul> 
 
      <li><a href="#">Item 41</a></li> 
 
      <li><a href="#">Item 42</a></li> 
 
      <li><a href="#">Item 43</a></li> 
 
      <li><a href="#">Item 44</a></li> 
 
     </ul> \t 
 
     </li> 
 
    </ul> 
 
    </li> 
 
</ul>

https://jsfiddle.net/w6jpxtc9/1/

+0

У вас есть демо-версия? – DaMaGeX

+0

@DaMaGeX я скопировал этот css из http://red-team-design.com/css3-dropdown-menu/ – tabia

+0

Можете ли вы преобразовать код 'php' в' html'? Или лучше, конвертируйте весь свой код в фрагмент. –

ответ

0

Глядя на первую версию кода вы в курсе, я думаю, что ваш вопрос может быть здесь:

<ul> 
    <a href="#"><?=$ro['s_cat_name']?></a> 
</ul> 

Похоже, он отсутствует в <li> , Кроме того, ваш второй уровень <li> закрывается внутри цикла подкатегорий; Я предполагаю, что это должно быть снаружи.

Смежные вопросы