2014-09-03 4 views
1

Я пытаюсь создать выпадающее меню в CSS, однако у него будет около 21 подпозиции. Поэтому я хотел бы отобразить их в 3 столбцах по 7, однако я не могу понять, как это сделать.Как создать раскрывающееся меню с несколькими столбцами?

Я создал jsFiddle с помощью простого примера, как я могу изменить CSS, чтобы суб 6-10 отображались справа от подстроки 1-5, а не ниже?

Он должен быть похож на изображение ниже, которое было создано в MS Paint.

EDIT:

jsFiddle

enter image description here

<nav> 
    <ul> 
    <li> 
     <a href="#">Top Level Group</a> 
     <div> 
     <ul> 
     <li><a href="#">Sub One</a></li> 
     <li><a href="#">Sub Two</a></li> 
     <li><a href="#">Sub Three</a></li> 
     <li><a href="#">Sub Four</a></li> 
     <li><a href="#">Sub Five</a></li> 
     </ul> 
     <ul> 
     <li><a href="#">Sub Six</a></li> 
     <li><a href="#">Sub Seven</a></li> 
     <li><a href="#">Sub Eight</a></li> 
     <li><a href="#">Sub Nine</a></li> 
     <li><a href="#">Sub Ten</a></li> 
     </ul> 
     </div> 
    </li> 
    </ul> 
</nav> 
+2

Может у нас есть ссылка на jsFiddle? –

+0

Пожалуйста, поделитесь своим кодом тем, что вы сделали, так что ... Попробуйте создать демо-код своего кода с помощью jsfiddle.net и поделиться им! Это будет более полезно! – UID

+0

Извините, я забыл ссылку, я только что редактировал свой пост, чтобы включить – user184994

ответ

2

Использование можно использовать float: left, чтобы сделать их складывают

Рабочий образец: http://jsfiddle.net/07spd07b/2/

#top-level-group{ 
    width: 200px; 
} 
#top-level-group ul{ 
    float: left; 
} 

В образце я изменил исходное положение с -9999px слева, чтобы вы могли видеть его прямо, когда вы открываете jsfiddle. Установите ширину в зависимости от содержимого, которое вы хотите разместить внутри. Если вы хотите, чтобы большее количество столбцов придавало ей большую ширину.

UPDATE

Вот рабочий пример с 3-мя колоннами и clearfix включены:

http://jsfiddle.net/07spd07b/10/

Я добавил класс clearfix:

.clearfix:before, 
.clearfix:after { 
    content: '\0020'; 
    display: block; 
    overflow: hidden; 
    visibility: hidden; 
    width: 0; 
    height: 0; } 
.clearfix:after { 
    clear: both; } 
.clearfix { 
    zoom: 1; } 

который очищает плавающие элементы и установите width: 250px; в соответствии с тремя столбцами. Надеюсь, поможет.

+0

Ширина должна быть увеличена до 3-го столбца, но это отлично работает! – bobbyg603

+0

Ой, извините, забыл, что он хотел 3 колонки –

+0

Прекрасное спасибо, я попробовал 'float: left', но никогда не думал об установке ширины родителя! Еще многому научиться – user184994

1

Это можно сделать довольно легко с помощью display:inline-block;:

nav ul li ul{ 
display:inline-block; 
margin: 0; 
padding: 0; 
} 

Тогда вам просто нужно дать Div ширина:

nav ul li div { 
position: absolute; 
left: -9999px; 
width:300px; 
} 

JSFiddle Demo
Чтобы добавить несколько столбцов, просто сделать больше <ul> и установите ширину шире.

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