Jump to content
  • 0

Выпадающее меню на css


heny
 Share

Question

Нашла интересное меню для своего сайта в сети, немного изменила его под себя. Но тут увидела проблему, не знаю как ее решить. Меню является выпадающим многоуровневым. А проблема в том, что, если я нахожусь скажем на пункте меню "Главная", то при наведении мыши на пункт меню "Продукция", из "продукция" выпадает вложенное меню. Но если я нахожусь на пункте меню "Продукция" изначально, то при наведении мышью на этот же пункт вложенное меню не выпадает. Я уже вся исстрадалась. Помогите, пожалуйста.

Вот сам код css:

#nav {padding:0; margin:0 auto; list-style:none; height:38px; z-index:500; font-family:Georgia;white-space:nowrap;}
#nav li.top {display:block; float:left; white-space:nowrap;padding: 0 2 0 5px; height:35;}
#nav li a.top_link {display:block;float:left; height:35;line-height:30px; color:#99cde8; text-decoration:none; font-size:10px; font-weight:bold; padding:-1 20px 0 20px;cursor:pointer}
#nav li a.top_link span {float:left; display:block; padding: 0 20px 0 20px; height:35px; }
#nav li a.top_link span.down {float:left; display:block; padding: 0 20px 0 20px; height:35px; background: url(/images/three_0a.gif) no-repeat right top;}

#nav li:hover a.top_link,
#nav li.iehover a.top_link {color:#fff; background: url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span,
#nav li.iehover a.top_link span {background:url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span.down,
#nav li.iehover a.top_link span.down {background:url(/images/three_1a.gif) no-repeat right top; cursor:pointer;}

/* Default list styling моделирование списка по умолчанию*/

#nav li:hover {position:relative; z-index:200; cursor:pointer;}

#nav li:hover ul.sub
{left:1px; top:29px; background: #fff; padding:2px;white-space:nowrap; width:152px; height:auto; z-index:300;height:auto; cursor:pointer; -moz-opacity:0.85; opacity: 0.85;border:1px solid #addce1}
#nav li:hover ul.sub li
{display:block; height:18px; float:left; width:150px; font-weight:normal;cursor:pointer;position:relative;border:1px solid #addce1}
#nav li:hover ul.sub li a
{display:block; font-size:10px; height:18px; width:150px; text-indent:5px; color:#08486c; text-decoration:none; cursor:pointer;font-family:Georgia;}
#nav li ul.sub li a.fly
{background:#addce1 url(/images/arrow.gif) 146px 6px no-repeat; cursor:pointer; color:#08486c;border-bottom:1px solid #fff}
#nav li:hover ul.sub li a:hover
{background:#08486c; color:#fff; cursor:pointer;padding:0;margin:0}
#nav li:hover ul.sub li a.fly:hover
{background:#08486c url(/images/arrow_over.gif) 146px 6px no-repeat; color:#fff; cursor:point}


#nav li:hover li:hover ul,
#nav li:hover li:hover li:hover ul,
#nav li:hover li:hover li:hover li:hover ul,
#nav li:hover li:hover li:hover li:hover li:hover ul
{ left:150px;top:-2px; background: #fff; padding:2; color:#08486c; white-space:nowrap; width:152px; z-index:400; height:auto;border:1px solid #addce1}

#nav ul,
#nav li:hover ul ul,
#nav li:hover li:hover ul ul,
#nav li:hover li:hover li:hover ul ul,
#nav li:hover li:hover li:hover li:hover ul ul
{position:absolute; left:-9999px; top:-9999px; width:0; height:0; margin:0; padding:0; list-style:none;}

#nav li:hover li:hover a.fly,
#nav li:hover li:hover li:hover a.fly,
#nav li:hover li:hover li:hover li:hover a.fly,
#nav li:hover li:hover li:hover li:hover li:hover a.fly
{background:#08486c url(/images/arrow_over.gif) 146px 6px no-repeat; color:#fff;}

#nav li:hover li:hover li a.fly,
#nav li:hover li:hover li:hover li a.fly,
#nav li:hover li:hover li:hover li:hover li a.fly
{background:#addce1 url(/images/arrow.gif) 146px 6px no-repeat; color:#08486c; border-bottom:1px solid #fff;}

А вот так он ставится в html-код страницы:

<ul id="nav">
<li class="top"><a href="/" class="top_link"><span class="down_on">HOME</span></a> - ПУНКТ ГЛАВНОГО МЕНЮ
<ul class="sub"><li><a href="/">Cleanroom</a> </li></ul> - ВЫПАДАЮЩЕЕ МЕНЮ 2 УРОВНЯ
</li>
<li class="top"><a href="/" class="top_link"><span>ABOUT COMPANY</span></a> - ПУНКТ ГЛАВНОГО МЕНЮ
</li>
<li class="top"><a href="#nogo22" class="top_link"><span class="down">NEWS</span></a> - ПУНКТ ГЛАВНОГО МЕНЮ
<ul class="sub">
<li><a href="#nogo23">Documents</a></li>- ВЫПАДАЮЩЕЕ МЕНЮ 2 УРОВНЯ
</ul>
</li>
<li class="top"><a href="#nogo27" class="top_link"><span class="down">PRODUCTION</span></a>
<ul class="sub">
<li><a href="#nogo28" class="fly">Medicine</a>
<ul>
<li><a href="#nogo30">References</a></li>
<li><a href="#nogo31">Photogallery</a></li>
</ul>
</li>
<li><a href="#nogo29" class="fly">Pharmacy</a>
<ul>
<li><a href="#nogo30">References</a></li>
<li><a href="#nogo31">Photogallery</a></li>
<li><a href="#nogo32">Major sources</a></li>
<li><a href="#nogo33">Classification of cleanrooms</a>
</ul>
</li>
<li><a href="#nogo49" class="fly">Production run equipment</a>
<ul>
<li><a href="#nogo30" class="fly">Laboratory equipment</a>
<ul>
<li><a href="/">Abacterial laminar boxes</a></li>
<li><a href="/">Laminar boxes of Class II</a></li>
<li><a href="/">PCR box</a></li>
<li><a href="/">Safety fume hood</a></li>
<li><a href="/">Work area of histopathologist</a></li>
</ul>
</li>
<li><a href="#nogo31" class="fly">Air Cleaning Units</a>
<ul>
<li><a href="/">Portable Unit</a></li>
<li><a href="/">Stationary Unit</a></li>
</ul>
</li>
<li><a href="#nogo32" class="fly">Medical Supply Consoles</a>
<ul>
<li><a href="/">Ceiling consoles</a></li>
<li><a href="/">Wall consoles</a></li>
<li><a href="/">Valve group</a></li>
<li><a href="/">Attached implement </a></li>
<li><a href="/">Surveillance console</a></li>
<li><a href="/">Consumable products</a></li>
<li><a href="/">Additional information</a></li>
</ul>
</li>
<li><a href="#nogo33">Local Clean Areas</a></li>
<li><a href="#nogo47" class="fly">Aerotherapeutic Units</a>
<ul>
<li><a href="/">Aseptic Booth "Pelikan"</a></li>
<li><a href="/">Bandageless Healing Unit</a></li>
</ul>
</li>
<li><a href="#nogo48" class="fly">Positive-pressure Ventilation</a>
<ul>
<li><a href="/">Air dispenser</a></li>
<li><a href="/">Air ingress unit</a></li>
<li><a href="/">Low-profile quiet fixing</a></li>
<li><a href="/">Consumable products</a></li>
</ul>
</li>
<li><a href="/">Filter-fan unit</a></li>
</ul>
</li>
</ul>
</li>

<li class="top"><a href="#nogo57" class="top_link"><span>LICENCES</span></a></li>

</ul>

У меня к Вам большая просьба, последняя надежда на Вас. Сроки выходят, сделать ничего не могу.

Edited by heny
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

:hover

все завязано исключительно на это.

Точнее, это не страшно, так и должно быть =)

Забыли только продублировать для активной ссылки. Все, что написано на :hover надо продублировать на некий класс, допустим active, ну и назначать его серверным скриптом или вручную активной ссылке на соответсвующей странице.

а иначе не выйдет ничего, как вы себе представляете, браузер отработает, если "события" (наведение мышки) не произошло?

И еще, оформляйте в след. раз куски кода тегом

 ... 
Link to comment
Share on other sites

  • 0

Вы меня извините) Но я недавно изучаю css, поэтому немного не понимаю что значит "Все, что написано на :hover надо продублировать на некий класс, допустим active, ну и назначать его серверным скриптом или вручную активной ссылке на соответсвующей странице." Вы уж извините.

Я примерно пониаю, что может быть нужно добавить еще эти строки?

#nav li:hover a.top_link, 
#nav li.iehover a.top_link {color:#fff; background: url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span,
#nav li.iehover a.top_link span {background:url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span.down,
#nav li.iehover a.top_link span.down {height:25;background:url(/images/three_1a.gif) no-repeat right top; cursor:pointer;}
[b]#nav li:hover a.top_link span.down_on,
#nav li.iehover a.top_link span.down_on {height:25;background:url(/images/three_1aa.gif) no-repeat right top; cursor:pointer;}[/b]

span.down_on - я попробовала сделать для активной ссылки.

Но к сожалению, это не работает :unsure:

Link to comment
Share on other sites

  • 0

#nav li:hover a.top_link,
#nav li.active a.top_link{...}

Таким же образом по всем необходимым ховерам пройтись

И теперь этот класс надо назначить в соответствующий li, допустим:

<li class="top active"><a href="#nogo22" class="top_link"><span class="down">NEWS</span></a> - ПУНКТ ГЛАВНОГО МЕНЮ
<ul class="sub">
<li><a href="#nogo23">Documents</a></li>- ВЫПАДАЮЩЕЕ МЕНЮ 2 УРОВНЯ
</ul>
</li>

И когда страница откроется, этот класс сделает то же самое, что и наведение. но только сразу.

Link to comment
Share on other sites

  • 0

Я попробовала, навставляла этот класс везде, где только можно, но меню все равно не работает :unsure:

Вот так у меня код выглядит сейчас:

#nav {padding:0; margin:0 auto; list-style:none; height:38px; z-index:500; font-family:Georgia;white-space:nowrap;}
#nav li.top {display:block; float:left; white-space:nowrap;padding: 0 2 0 5px;}
#nav li a.top_link {display:block;float:left; height:35;line-height:30px; color:#99cde8; text-decoration:none; font-size:10px; font-weight:bold; padding:-1 20px 0 20px;cursor:point}
#nav li a.top_link span {float:left; display:block; padding: 0 20px 0 20px; height:35px; }
#nav li a.top_link span.down {float:left; display:block; padding: 0 20px 0 20px; height:35px; background: url(/images/three_0a.gif) no-repeat right top;}
#nav li a.top_link span.down_on {float:left; display:block; height:35px; background: url(/images/three_1aa.gif) no-repeat right top;}
#nav li.active {display:block;float:left; height:35;line-height:30px; color:#99cde8; text-decoration:none; font-size:10px; font-weight:bold; padding:-1 20px 0 20px;cursor:point}

#nav li:hover a.top_link,
#nav li.iehover a.top_link {color:#fff; background: url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li.active:hover a.top_link,
#nav li.active.iehover a.top_link {color:#fff; background: url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li.active:hover a.top_link span,
#nav li.active.iehover a.top_link span {background:url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span,
#nav li.iehover a.top_link span {background:url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li.active:hover a.top_link span,
#nav li.active.iehover a.top_link span {background:url(/images/three_1.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span.down,
#nav li.iehover a.top_link span.down {height:25;background:url(/images/three_1a.gif) no-repeat right top; cursor:pointer;}
#nav li.active:hover a.top_link span.down,
#nav li.active.iehover a.top_link span.down {height:25;background:url(/images/three_1a.gif) no-repeat right top; cursor:pointer;}
#nav li:hover a.top_link span.down_on,
#nav li.iehover a.top_link span.down_on {height:25;background:url(/images/three_1aa.gif) no-repeat right top; cursor:pointer;}
#nav li.active:hover a.top_link span.down_on,
#nav li.active.iehover a.top_link span.down_on {height:25;background:url(/images/three_1aa.gif) no-repeat right top; cursor:pointer;}


/* Default list styling моделирование списка по умолчанию*/

#nav li:hover {position:relative; z-index:200; cursor:pointer;}
#nav li.active:hover {position:relative; z-index:200; cursor:pointer;}

#nav li:hover ul.sub
{left:1px; top:29px; background: #fff; padding:2px;white-space:nowrap; width:152px; height:auto; z-index:1000; cursor:pointer; -moz-opacity:0.85; opacity: 0.85;border:1px solid #addce1}
#nav li.active:hover ul.sub
{left:1px; top:29px; background: #fff; padding:2px;white-space:nowrap; width:152px; height:auto; z-index:1000; cursor:pointer; -moz-opacity:0.85; opacity: 0.85;border:1px solid #addce1}

#nav li:hover ul.sub li
{display:block; height:18px; float:left; width:150px; font-weight:normal;cursor:point;border:1px solid #addce1}
#nav li.active:hover ul.sub li
{display:block; height:18px; float:left; width:150px; font-weight:normal;cursor:point;border:1px solid #addce1}
#nav li:hover ul.sub li a
{display:block; font-size:10px; height:18px; width:150px; text-indent:5px; color:#08486c; text-decoration:none; cursor:pointer;font-family:Georgia;}
#nav li.active:hover ul.sub li a
{display:block; font-size:10px; height:18px; width:150px; text-indent:5px; color:#08486c; text-decoration:none; cursor:pointer;font-family:Georgia;}

#nav li ul.sub li a.fly
{background:#addce1 url(/images/arrow.gif) 146px 6px no-repeat; cursor:pointer; color:#08486c;border-bottom:1px solid #fff}
#nav li.active ul.sub li a.fly
{background:#addce1 url(/images/arrow.gif) 146px 6px no-repeat; cursor:pointer; color:#08486c;border-bottom:1px solid #fff}
#nav li:hover ul.sub li a:hover
{background:#08486c; color:#fff; cursor:pointer;padding:0;margin:0}
#nav li.active:hover ul.sub li a:hover
{background:#08486c; color:#fff; cursor:pointer;padding:0;margin:0}
#nav li:hover ul.sub li a.fly:hover
{background:#08486c url(/images/arrow_over.gif) 146px 6px no-repeat; color:#fff; cursor:point}
#nav li.active:hover ul.sub li a.fly:hover
{background:#08486c url(/images/arrow_over.gif) 146px 6px no-repeat; color:#fff; cursor:point}


#nav li:hover li:hover ul,
#nav li:hover li:hover li:hover ul,
#nav li:hover li:hover li:hover li:hover ul,
#nav li:hover li:hover li:hover li:hover li:hover ul
{ left:150px;top:-2px; background: #fff; padding:2; color:#08486c; white-space:nowrap; width:152px; z-index:400; height:auto;border:1px solid #addce1}

#nav li.active:hover li:hover ul,
#nav li.active:hover li:hover li:hover ul,
#nav li.active:hover li:hover li:hover li:hover ul,
#nav li.active:hover li:hover li:hover li:hover li:hover ul
{ left:150px;top:-2px; background: #fff; padding:2; color:#08486c; white-space:nowrap; width:152px; z-index:400; height:auto;border:1px solid #addce1}


#nav ul,
#nav li.active:hover ul ul,
#nav li.active:hover li:hover ul ul,
#nav li.active:hover li:hover li:hover ul ul,
#nav li.active:hover li:hover li:hover li:hover ul ul
{position:absolute; left:-9999px; top:-9999px; width:0; height:0; margin:0; padding:0; list-style:none;}

#nav ul,
#nav li:hover ul ul,
#nav li:hover li:hover ul ul,
#nav li:hover li:hover li:hover ul ul,
#nav li:hover li:hover li:hover li:hover ul ul
{position:absolute; left:-9999px; top:-9999px; width:0; height:0; margin:0; padding:0; list-style:none;}

#nav ul,
#nav li.active:hover ul ul,
#nav li.active:hover li:hover ul ul,
#nav li.active:hover li:hover li:hover ul ul,
#nav li.active:hover li:hover li:hover li:hover ul ul
{position:absolute; left:-9999px; top:-9999px; width:0; height:0; margin:0; padding:0; list-style:none;}

#nav li:hover li:hover a.fly,
#nav li:hover li:hover li:hover a.fly,
#nav li:hover li:hover li:hover li:hover a.fly,
#nav li:hover li:hover li:hover li:hover li:hover a.fly
{background:#08486c url(/images/arrow_over.gif) 146px 6px no-repeat; color:#fff;}

#nav li.active:hover li:hover a.fly,
#nav li.active:hover li:hover li:hover a.fly,
#nav li.active:hover li:hover li:hover li:hover a.fly,
#nav li.active:hover li:hover li:hover li:hover li:hover a.fly
{background:#08486c url(/images/arrow_over.gif) 146px 6px no-repeat; color:#fff;}

#nav li:hover li:hover li a.fly,
#nav li:hover li:hover li:hover li a.fly,
#nav li:hover li:hover li:hover li:hover li a.fly
{background:#addce1 url(/images/arrow.gif) 146px 6px no-repeat; color:#08486c; border-bottom:1px solid #fff;}

#nav li.active:hover li:hover li a.fly,
#nav li.active:hover li:hover li:hover li a.fly,
#nav li.active:hover li:hover li:hover li:hover li a.fly
{background:#addce1 url(/images/arrow.gif) 146px 6px no-repeat; color:#08486c; border-bottom:1px solid #fff;}

Link to comment
Share on other sites

  • 0

Блин, уже скучно становится. Приглядитесь внимательно что я написал постом выше. Поймите (а я расписал весь механизм) и сделайте так же.

Спокойнее, глубоко вздохнув, почитав мантру, еще раз внимательно все читаем и делаем.

UPD

#nav li:hover li:hover li:hover a.fly - это бред. оставьте только 1 :hover в селекторе, последний.

Link to comment
Share on other sites

  • 0

Как минимум ваше меню должно быть работоспособным, тут бы кстати был линк на само меню с графикой.

Из выложенных стилей и html-кода это не следует :unsure:

Также, отсуствует скрипт для IE6.

Все должно быть приблизительно так,

если я правильно понимаю, а уж потом надо решать вашу проблему.

Link to comment
Share on other sites

  • 0
Как минимум ваше меню должно быть работоспособным, тут бы кстати был линк на само меню с графикой.

Из выложенных стилей и html-кода это не следует :unsure:

Также, отсуствует скрипт для IE6.

Все должно быть приблизительно так,

если я правильно понимаю, а уж потом надо решать вашу проблему.

Оно работоспособно) Проблема только в том, что если мы находимся на активной ссылке, то из нее не выпадает вложенное меню (если конечно в ней есть вложенное меню), а если мы находимся на любом другом пункте главного меню, то из того, на котором мы были до этого - вложенное меню выпадает. Сама запуталась :D Но суть именно в этом. Да, я нашла это меню в интернете и там был скрипт для IE6 просто я не стала о нем писать, потому что как я понимаю проблема ни из-за него.

А проблема у меня так до сих пор и осталась ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy