2014-01-14 3 views
0

Оригинал ВопросПункт меню и меню выпадающим не будут правильно отображаться

У меня есть веб-страницу с меню CSS. Проблема в том, что меню отображается правильно, за исключением пунктов меню с подменю. В этом случае элементы меню не отображаются последовательно, а подменю вообще не отображается.

Я загрузил страницу по адресу http://prova.webuda.com/account.html. Такая проблема возникает с пунктом меню ACCOUNT.

Кроме того, я посмотрел на него с помощью Firebug, и я увидел, что несогласованный список подкласса подменю выделен серым цветом, что заставляет меня предположить, что должна быть какая-то проблема синтаксического анализа. Однако из моего анализа это должно быть хорошо.

Что я делаю неправильно? Может кто-нибудь, пожалуйста, помогите мне?

Редактировать

Css

#mainMenu 
{ 
font-size: 0.85em; 
} 

#mainMenu ul 
{ 

    margin: 0; 
    padding: 0; 
    text-transform: uppercase; 


} 



#mainMenu ul li, #mainMenu ul li:hover 
{ 

    height:50px; 
    float:left; 

    text-align:center; 
    font-weight:bold; 
    font-size:1.7em; 
    overflow:hidden; 
    margin-left:1.05em; 
    margin-right:1.05em; 
} 

#mainMenu ul li a, #mainMenu ul li span a 
{ 
    color:brown; 
    text-decoration:none; 
    color:#006; 
} 

.mainSubMenu 
{display:none;} 


#mainMenu ul li:hover #mainMenu ul li ul{display:block;} 
#mainMenu ul li ul{position: absolute;left:-1px;top:98%;} 

#mainMenu ul ul ul{position: absolute;left:98%;top:-2px;} 
#mainMenu ul ul{ 
    width:119.7px; 
} 

Html

 <div class="mainMenu" id="mainMenu"> 
     <ul> 
      <li class="menuItem" id="menuItem1"> <a href="./squadra.html">Squadra</a> </li> 
      <li class="menuItem" id="menuItem2"> <a href="./biglietti.html">Biglietti</a> </li> 
      <li class="menuItem" id="menuItem3"> <a href="abbonamenti.html">Abbonamenti</a> </li> 
      <li class="menuItem" id="menuItem4"> <a href="ritiro.html">Ritiro</a> </li> 
      <li class="menuItem" id="menuItem5"> <a href="fidelityCard.html">Fidelity Card</a> </li> 






      <li class="menuItem" id="menuItem7"> <span> <a href="account.html">Account</a> </span> 
      <ul class="mainSubMenu"> 
       <li class="subMenuItem"><a class="pureCssMenui" href="profilo.html">Profilo</a></li> 
       <li class="subMenuItem"><a class="pureCssMenui" href="datiFatturazione.html">Dati Fatturazione</a></li> 
       <li class="subMenuItem"><a class="pureCssMenui" href="storicoTifoso.html">Storico Tifoso</a></li> 
       <li class="subMenuItem"><a class="pureCssMenui" href="esci.html">Esci</a></li> 
      </ul> 




      </li> 
     </ul> 
     </div> 

Наиболее значительно та часть, которая не работает в #mainMenu ul li:hover #mainMenu ul li ul{display:block;}

+0

@ user3126997 Спасибо для этого. Иногда я ошибаюсь в работе меню из-за моего языка ... – geraldCelente

+0

у вас нет CSS, который заставит меню работать ... как выглядит ваш код? –

+0

@josh Спасибо, теперь я добавил код к вопросу. Что касается разницы форматирования между пунктом меню ACCOUNT и остальным меню, проблема, похоже, связана с некоторыми перекрывающимися с правилами CSS других элементов. Тем не менее, я все еще смотрю на это. Что касается мужчин, которые вообще не показываются, я пока не нашел никакой возможной причины. – geraldCelente

ответ

1

Есть несколько проблем с вашим CSS. Во-первых, селектор # работает только для элементов, для которых установлено значение id. Например, #menuItem применяет стилирование к любому элементу с помощью id="menuItem". Однако ваш HTML имеет class="menuItem", поэтому вместо этого вы должны использовать селектор ..

Во-вторых, когда меню появляется, оно отображается слишком далеко вниз по странице, чтобы пользователь мог видеть, согласно #mainMenu ul li ul{position: absolute;left:-1px;top:98%;} и #mainMenu ul ul ul{position: absolute;left:98%;top:-2px;}.

Вот поправки:

.mainMenu { размер шрифта: 0.85em; }

.mainMenu 
{ 
    margin: 0; 
    padding: 0; 
    text-transform: uppercase; 
} 

.mainMenu ul li, .mainMenu ul li:hover 
{ 

    height:50px; 
    float:left; 
    text-align:center; 
    font-weight:bold; 
    overflow:hidden; 
    margin-left:1.05em; 
    margin-right:1.05em; 
} 

.mainMenu ul li a, .mainMenu ul li span a 
{ 
    color:brown; 
    text-decoration:none; 
    color:.006; 
} 

.mainSubMenu 
{display:none;} 


.mainMenu:hover .mainSubMenu {display:block} 

.mainMenu ul li ul{position: absolute;left:1px;top:2%;} 

.mainMenu ul ul ul{position: absolute;left:2%;top:2px;} 
.mainMenu ul ul{ 
    width:119.7px; 
} 

И рабочая скрипку: http://jsfiddle.net/Af7SE/

Кроме того, here is another example из меню, как ваша.

+0

Спасибо вам обоим. Я действительно ценю твою помощь. Ваша помощь была одинаково ценна. Я принял ответ kamus, так как он имеет более низкую репутацию, чтобы помочь ему получить его счет. В любом случае, я тоже сделал ставку на вас. Спасибо, ага! – geraldCelente

+0

рад, что это сработало! :) –

1

Первая проблема в том, что ваш последний вложен на, попробуйте использовать:

<li class="menuItem" id="menuItem7"> 
    <a href="account.html">Account</a> 
     <ul class="mainSubMenu"> 
     .... 
     </ul> 
</li> 

И ваше меню никогда не показывают, потому что есть проблемы с overflow:hidden; и статическим width на вашем меню, попробуйте использовать следующий кода, он покажет ваше подменю, но вам нужно будет внести дополнительные изменения.

#mainMenu ul li:hover ul{display:block;} 

вместо

#mainMenu ul li:hover #mainMenu ul li ul{display:block;} 

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

http://jsfiddle.net/NrA8A/

#mainMenu ul { 
margin: 0; 
padding: 0; 
text-transform: uppercase; 
list-style: none; /*remove the bullets*/ 
} 

#mainMenu ul li, #mainMenu ul li:hover { 
..... 
/*Remove the overflow :hidden*/ 
} 
+0

Спасибо вам обоим. Я действительно ценю твою помощь. Ваша помощь была одинаково ценна. Я принял ваш ответ, так как у вас есть более низкая репутация, чтобы помочь вам получить свою оценку. Спасибо, ага! – geraldCelente

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