Выпадающее меню CSS DIV…почему мои ссылки нарушают его?

#css #hyperlink #drop-down-menu #positioning

#css #гиперссылка #выпадающее меню #позиционирование

Вопрос:

Хорошо, я создаю выпадающее меню CSS, похожее на то, что на сайте ESPN. Все идет отлично, но когда я помещаю ссылку в выпадающий div, она прерывается. В firefox выпадающий div теперь больше не будет отображаться, а в проводнике он появится, но все элементы списка со ссылкой в нем исчезнут. Есть идеи / предложения?

Кстати, я здесь новичок…вечно искал исправления в stackoverflow, но до сих пор мне никогда не приходилось задавать вопрос самому. Заранее спасибо!

Вот HTML, обратите внимание на одну ссылку в списке. Без каких-либо ссылок в subnav div все работает идеально. Со ссылкой он прерывается.

     <ul id="topnav">
    <li><a class="top" href="#">
        <div class="button">Home</div>
        </a>
    </li>
    <li><a class="top" href="#">
        <div class="button">Programs</div>
        <div class="subnav">
            <ul class="mainlinks">
                <li><a href="#">Recreational</a></li>
                <li>TESTING</li>
                <li>TESTING</li>
                <li>TESTING</li>
                <li>TESTING</li>
            </ul>
        </div>
        </a>
    </li>
</ul>
 

И вот CSS:

 #topnav {
width: 800px; height: 30px;
margin: 0 auto; padding: 0 0 0 160px;
list-style: none;
}
#topnav li {
position: relative;
}
#topnav li a.top {
color: #FFFFFF;
font-size: 0.75em;
font-weight: bold;
text-decoration: none;
}
#topnav li a.top .button {
position: relative;
z-index: 998;
display: inline;
float: left;
height: 18px;
padding: 6px 30px;
}
#topnav li a.top:hover {}
#topnav li a.top:hover .button {
color: #000000;
background-color: #FFFFFF;
-moz-box-shadow: 0 0 10px -1px #000000;
-webkit-box-shadow: 0 0 10px -1px #000000;
box-shadow: 0 0 10px -1px #000000;
}
#topnav li .subnav {
display: none;
position: absolute;
z-index: 999;
width: 960px;
top: 30px; left: -160px;
background-color: #FFFFFF;
color: #000000;
border-bottom: solid 5px #990000;
}
#topnav li a.top:hover .subnav {
display: block;
}
#topnav li .subnav ul.mainlinks {
width: 150px;
list-style: none;
padding: 20px;
}
 

Я подумал, что это может иметь какое-то отношение к основным ссылкам в topnav, поэтому я добавил к ним класс «top», но это не помогло. Первоначально я просто вложил его в

 #topnav li a .subnav
 

Ответ №1:

Я не думаю, что это проблема, но первое, что я вижу, это то, что у вас есть тег привязки, обернутый вокруг двух разделов с вашим подменю

 <li><a class="top" href="#">
    <div class="button">Programs</div>
    <div class="subnav">
        <ul class="mainlinks">
            <li><a href="#">Recreational</a></li>
            <li>TESTING</li>
            <li>TESTING</li>
            <li>TESTING</li>
            <li>TESTING</li>
        </ul>
    </div>
    </a>
</li>

<li><a class="top" href="#">
    <div class="button">Programs</div>
    </a> ***************************** MOVED CLOSING TAG HERE
    <div class="subnav">
        <ul class="mainlinks">
            <li><a href="#">Recreational</a></li>
            <li>TESTING</li>
            <li>TESTING</li>
            <li>TESTING</li>
            <li>TESTING</li>
        </ul>
    </div>
</li>
 

что касается проблемы, я бы сказал, дважды проверьте все стили a и убедитесь, что нет ничего, что могло бы конфликтовать.

Комментарии:

1. Вот и все, даже не думал, что ошибка может быть чем-то таким простым в HTML. Спасибо!