2014-02-05 17 views
0

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

  • Левый
  • Средний
  • Right

Тогда я сделал это :

JSFIDDLE

Теперь, как вы видите, левое меню зависит от среднего меню, даже если я сделал:

display:inline 

Я попытался также увеличить navgroups класс выше, а затем:

1000px 

или либо удалить эту строку, но ничего не изменит.

Спасибо за помощь!

UPDATE:

В дополнение к тому, что написано выше, я хотел бы попробовать средний-меню с изображением вместо письма, то я просто добавил следующее:

<img src=".."> 

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

Большое спасибо за поддержку, отличный форум!

+0

плавающий элемент слева и справа должен стоять первым в html, тогда содержимое в потоке будет стоять в стороне/в середине, если для этого достаточно места. litlle больше о поплавках: http://css-tricks.com/all-about-floats/ –

+0

Спасибо! но также, если мне нужно выдержать это в строке других меню, я должен сделать display:inline-block;. Еще раз спасибо! – rolory

+0

это то, что вы ищете http://jsfiddle.net/QE7Yd/2/? или это похоже на отображение: flex; justify-content: space-between; ? http://codepen.io/gc-nomade/pen/nrbDl –

ответ

0

Если вы все еще возникают проблемы с центровкой, вы можете просто добавить еще один контейнер вокруг .navgroups дел.

Вот CSS с скрипкой: http://jsfiddle.net/QE7Yd/4/

.navwrap { 
    text-align:center; 
} 

.navgroups { 
    display:inline-block; 
    background-color:#CC0000; 
} 

.navgroups:before, 
.navgroups:after { 
    display:table; 
    content:''; 
    clear:both; 
} 

.navgroups li { 
    display: inline; 
    padding: 5px; 
} 
.navgroups .menuleft { 
    padding:0px; 
    float: left; 
} 
.navgroups .menumiddle { 
    padding: 0px; 
    float: left; 
} 
.navgroups .menuright { 
    padding: 0px; 
    float: left; 
} 

В основном вы говорите .navgroups, чтобы рассматриваться как и inline элемент и используя .navwrap сказать текст внутри должен быть сосредоточен.

+0

Точно то, что я хотел, было бы. Большое спасибо! – rolory

+0

Удивительный! Я рад, что это то, что вам нужно. Если это ответит на ваш вопрос, можете ли вы пометить его как принятый ответ? – disinfor

+0

У меня пока нет этой опции. Моя репутация слишком низкая. Но также, если вы можете видеть, я обновил вопрос, и я хотел бы услышать ваш совет. Еще раз спасибо! – rolory

1

Вы должны поплавать им влево, если хотите, чтобы все они выстроились горизонтально. Вот вам пример update to your fiddle. ...

.navgroups { 
    margin: 0 auto; 
    display: table; 
} 
.navgroups li { 
    display: inline; 
    padding: 5px; 
} 
.navgroups .menuleft { 
    padding:0px; 
    float: left; 
} 
.navgroups .menumiddle { 
    padding: 0px; 
    float: left; 
    text-align: center; 
} 
.navgroups .menuright { 
    padding: 0px; 
    float: left; 
    text-align: right; 
} 

UPDATE: Для того, чтобы разместить изображение, которое вы упоминаете в своем обновлении, вы можете добавить line-height по тексту, равной высоте изображения. Я не уверен точно, как вы хотите, чтобы они выстроились в линию, но это позволит вам настроить его. Вот скрипка: http://jsfiddle.net/QE7Yd/7/

+0

Но меню не выровнено по центру, край: 0 auto; не работает. – rolory

+0

Вы не сможете использовать 'margin: 0 auto', потому что div' .navgroups' не имеет указанной ширины для работы. Есть работа вокруг ... см. Мой ответ. – disinfor

+0

просто добавьте 'display: table;' в .navgroups и будет центрирован. Я обновил скрипку. –

0

ul (как divs) приходит автоматически с дисплеем: блок на нем, то есть он будет занимать всю ширину любого контейнера, в котором он находится. Если бы это я, я бы сделал три, содержащие divs для uls, которые будут обрабатывать плавающие. Вот объяснение: Fiddle. У всех div есть поплавок, так как я никогда не считал полезным смешивать разные типы поплавков в этой цели.

.navgroups { 
    margin: 0 auto; 
} 
.navgroups .menuleft { 
    padding:0px; 
    float: left; 
} 
.navgroups .menuright { 
    padding: 0px; 
    float: left; 
} 
.navgroups .menumiddle { 
    padding: 0px; 
    float: left; 
    text-align: center; 
} 

Кроме того, чтобы удалить пункты пули из ул, добавьте в ваш CSS, что позволит предотвратить изображения от перемещения вниз.

.navgroups li { 
    list-style-type: none; 
} 
+0

Как я уже сказал Брайану Стивенсу, меню не выровнено по центру (поле: 0 автоматически, не работает). GCyrillus уже помог мне, но у меня другая проблема. Если я помещаю изображение вместо «ТЕКСТ», изображение опускается, как будто оно ясно: оба. Его размер регулируется на расстояние между menuleft и menuright, но он по-прежнему опускается ниже. – rolory

+0

Обновите свой вопрос, если у вас возникли трудности с чем-то другим. – disinfor

+0

Я не думаю, что вы можете выровнять улицу с центром, вам придется использовать содержащие div с margin: 0 auto; для этого. Я также не уверен, что вы подразумеваете под движением изображения. Вы имеете в виду, что его сбивают пулями? EDIT @rolory, если это так, я обновил свой ответ. Я могу предоставить еще одну скрипку, если это так. – maggiekh

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