2013-11-21 2 views
0

Я пытаюсь создать горизонтальный список, что-то вроде этогоCSS: горизонтальный выпуск списка позиционирование только с 2-х или более элементов LI

<nav class="tabs"> 
    <ul> 
     <li class="active"> 
      <a>Bar Foo</a> 
     </li> 
     <li> 
      <a>Foo Bar</a>   
     </li> 
    </ul> 
</nav> 

Проблема в том, что только с 1 Li элемент работает (как this), но с 2 первый элемент li расположен неправильно (например, this)

Может кто-нибудь объяснить мне, что происходит?

ОБНОВЛЕНИЕ: удалить тип с активным классом на якоре!

ответ

1

Нет необходимости использовать абсолютное позиционирование. Просто сделайте следующим образом:

li.active a { 
    color: #abc522; 
    padding: 20px 40px 13px; 
    width: 146px; 
    background-color: white; 
} 

fiddle

+0

thnx. У вас также есть объяснение, почему (в моем случае) элементы li выполняли друг друга, используя позиционирование «абсолютное»? –

+0

Один вопрос, который я заметил с вашим ответом, заключается в том, что когда ярлык становится короче/длиннее, макет ломается. –

+0

@JeanlucaScaljeri 'position: absolute;' начнет рендеринг из его верхней левой позиции. Так что в этом случае это тоже будет работа. И он показывает меньшую ширину, потому что я дал меньшую прокладку. Вы можете заменить '40px' более высоким значением, чтобы получить большую ширину. – Parixit

1

Удалите класс из первого тега элемента списка.

<nav class="tabs"> 
    <ul> 
     <li> <-- Here 
      <a class="active">Bar Foo</a> 
     </li> 
     <li> 
      <a class="active">Foo Bar</a>   
     </li> 
    </ul> 
</nav> 

ИЛИ

<nav class="tabs"> 
    <ul> 
     <li class="active"> 
      <a>Bar Foo</a> 
     </li> 
     <li class="active"> 
      <a>Foo Bar</a>   
     </li> 
    </ul> 
</nav> 
+0

Или же ... добавить его к второй;) – SW4

+0

Или что, если вы хотите иметь свойства CSS. Спасибо @ExtPro – J2D8T

+0

извините за опечатку, я обновил свой вопрос. Актив должен находиться только на элементе li –

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