2016-03-14 3 views
0

Возможно ли создать меню в стиле horisontally (например, на изображении ниже) без использования абсолютного позиционирования или JS?CSS - Горизонтальный список стилей без использования абсолютного позиционирования и JS

Пытается создать меню. Он отображает стандартный неупорядоченный список.

Вот что я пытаюсь достичь:

After

(. Зеленый список является подменю «Как ты?» Он имеет разрыв строки, потому что она ограничена по ширине.)

И в настоящее время, что у меня есть это:

Before

Это перо: http://codepen.io/olegovk/pen/NNREMY

И код:

HTML

<nav> 
    <ul> 
    <li><a href="#">Hello</a></li> 
    <li><a href="#">How are you</a> 
     <ul> 
     <li><a href="#">Allright!</a></li> 
     <li><a href="#">And you?</a></li> 
     <li><a href="#">Fine</a></li> 
     <li><a href="#">La-la-la</a></li> 
     <li><a href="#">Bla-bla-bla</a></li> 
     <li><a href="#">Cheerio!</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Good bye</a></li> 
    </ul> 
</nav> 
<div class="clear"></div> 
<p>Some paragraph to make sure it's below the menu.</p> 

CSS

.clear { 
    clear: both; 
} 
p { 
    background-color: lightgrey; 
} 
li { 
    float: left; 
    list-style: none; 
    display: list-item; 
    margin: 0 0.5em; 
} 
li li { 
    margin: 0 1em; 
} 
li li a { 
    color: green; 
} 
nav ul ul{ 
    max-width: 300px; 
} 

Я знаю, что можно с абсолютно позиционирующих списки детей или с JS. Но абсолютное позиционирование дочерних списков выводит их из потока документов. В результате они пересекаются с содержанием ниже них. Также я не могу использовать JS.

ответ

0

Кажется, что это невозможно.

Вот еще один подобный вопрос: Position: absolute and parent height?

Что касается меню, чтобы достичь желаемого результата, единственным решением является меню верхнего уровня и подменю в различных списках. Таким образом, нет необходимости позиционировать подменю (список второго уровня) абсолютно.

0

here is image

для Ли Ли использования этого CSS стиль.

li li { 
margin: 0 1em; 
position:relative; 
left:-110px; 
} 

и дать идентификатор до свидания Ли, а затем записать его Css например

<li><a href="#" id='someId'>Good bye</a></li> 

li #someId{ 
    position:relative; 
    left:-150px; 

} 
+0

Спасибо за это. Однако для этого потребуется индивидуальный стиль каждого пункта меню. И поскольку это меню, его элементы могут измениться. Требуется более надежное решение в будущем. – Oleg

+0

да, вы правы. но абсолютное или фиксированное положение - это общий способ создания меню. рассматривать их – Asad