Jump to content
  • 0

Горизонтальное меню как на Apple


Kintim
 Share

Question

Доброго времени суток!

Друзья, много где спрашивал, однако однозначного ответа ни где не нашел.

Дело в том, что я хочу сделать горизонтальное меню по-центру сайта. С заданной шириной, так, чтобы при добавлении дополнительных пунктов ширина не изменялась, а менялась только ширина пунктов меню, т.е. уменьшалась в зависимости от количества пунктов.

Причем!!! Пункты меню должны иметь разную ширину. Тупо задать размер - не интересует.

Можно тут посмотреть: http://www.apple.com/

Градиенты не интересуют, хочу сохранить гибкость. Буду благодарен всем, кто сможет направить на путь... Спасибо!

Если у них на сайте чуть подправить HTMl с помощью fireBug например. То на второй картинке становится больше пунктов меню.

Тут скриншоты:

menu.JPG

menu-2.JPG

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

ОК.. понял.

Однако этого мало. Допустим тот же ИЕ игнорит этот стиль и выходит все столбиком...

Как быть?

Может быть подскажите примеры?

конечно же у Эпл таких проблем нет, их сайт кроссбраузерный!! Вроде ))

Link to comment
Share on other sites

  • 0

это не таблица)) это всего лишь свойство CSS которое говорит элементу списка как отобразится)

а вообще делается элементарно.


menu {width:90%;}
menu>li {display:inline-block; padding:0 10px;/*пункты меню развернулись горизонтально, ширина их динамическая - то есть по размеру текста+отступы по краям. все теперь зависит от доступной для меню ширины и количесвта пунктов меню*/
border-left:1px solid black;}/*нарисовали линии разделители*/
menu>li:first-of-type {border-left:none;} /*убрали палку у первого элемента*/

Link to comment
Share on other sites

  • 0

это конечно все хорошо, только вот вопрос у меня, при использовании вашего примера пункты перескакивают на другую строчку, а должны помещаться в строку в тот размер, что есть. Даже если 100 пунктов все равно должны влезть в эти 500 пикс.

Link to comment
Share on other sites

  • 0

Уверен у них одним CSS не обошлось, думаю тут вычисление ширины в JS

А механика у меню конечно классная, ради интереса добавил через файрбаг N-ое количество пунктов, примерно 100, и все влезло ), правда потом текста не видно)

Edited by Modestes
Link to comment
Share on other sites

  • 0

это конечно все хорошо, только вот вопрос у меня, при использовании вашего примера пункты перескакивают на другую строчку, а должны помещаться в строку в тот размер, что есть. Даже если 100 пунктов все равно должны влезть в эти 500 пикс.

так нужно меню что бы такое же было или чтобы было 100 пунктов? есть же разумные пределы. А вообще тот самый table-cell, в оригинале, заставляет страничку думать что это не Li а ячейка таблицы - а она не переносится сама на следующую строку. То етсь если поменять в моем коде inline-block на table-cell - возможно и получится нужный результат

например вот так


menu {width:90%;
display:inline-table;}
menu>li {display:table-cell;
height:100px;
text-align:center;}

Edited by rewue
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy