Форум hotibo.ru

Сайты - по стандартам, но не стандартные сайты!






#1 28.11.2009 02:45

liven
Разбирающийся
Зарегистрирован: 22.11.2009
Сообщений: 74

Резиновое горизонтальное меню

Есть горизонтальное меню, как можно сделать его резиновым?
Т.е. чтобы равномерно тянулось расстояние между линками в пределах блока.
У меня ниче не получилось... Может с помощью списка как нить?

Нет на форуме

 

#2 28.11.2009 06:18

Kildor
Новичок
Зарегистрирован: 27.11.2009
Сообщений: 9

Re: Резиновое горизонтальное меню

сделать список,


После чего ul{display:table;} li{display:table-cell} a{display:block}
Это для браузеров.
А для ИЕ — li{display:inline; width:expression(100/(this.parentNode.childNodes.length)+'%');}

Нет на форуме

 

#3 16.12.2009 12:21

liven
Разбирающийся
Зарегистрирован: 22.11.2009
Сообщений: 74

Re: Резиновое горизонтальное меню

Ниче не получилось, я правда долго не разбирался, но не вышло....

Нет на форуме

 

#4 17.12.2009 03:23

sas171
Новичок
Откуда: Германия г.Штутгарт
Зарегистрирован: 21.11.2009
Сообщений: 34
Вебсайт

Re: Резиновое горизонтальное меню

Старая добрая проблема. Напоминает вопрос о колонках: как сделать, чтоб два блока были постоянно одинаковой высоты, но при этом растягивались когда в них становится больше текста. Во времена IE6 никак.

Нет на форуме

 

#5 18.12.2009 15:24

Admin
Administrator
Зарегистрирован: 21.11.2009
Сообщений: 32
Вебсайт

Re: Резиновое горизонтальное меню




Test Document








Идеального кода нет!

Нет на форуме

 

#6 19.12.2009 13:50

Kildor
Новичок
Зарегистрирован: 27.11.2009
Сообщений: 9

Re: Резиновое горизонтальное меню

А зачем margin-left:-1px?

Нет на форуме

 

#7 20.12.2009 16:18

Admin
Administrator
Зарегистрирован: 21.11.2009
Сообщений: 32
Вебсайт

Re: Резиновое горизонтальное меню

Kildor написал:

А зачем margin-left:-1px?

Допустим у нас ширина окна 850px (100%), тогда ширина одного блока меню будет 212,5px (25%), а такого быть не может, поэтому округляется до 213px и у нас последний блок переезжает под первый. А здесь 1px для каждого

  • и есть запас в случае такого округления, чтобы меню не разъехалось.

  • Идеального кода нет!

    Нет на форуме

     

    #8 25.12.2009 22:46

    AKS
    Опытный
    Зарегистрирован: 25.12.2009
    Сообщений: 409

    Re: Резиновое горизонтальное меню

    Вариант Kildor'а вполне рабочий, только UL надо задать необходимую ширину в %. А для ИЕ ширину для LI надо вычислять не от 100, а к примеру от 95%. Но вариант от Admin получше тем, что не зависит от JS.

    Нет на форуме

     

    #9 22.01.2010 11:31

    liven
    Разбирающийся
    Зарегистрирован: 22.11.2009
    Сообщений: 74

    Re: Резиновое горизонтальное меню

    хех, пришлось вернуться к этой проблеме smile
    Вот сам шаблон: _http://22291.com/aes/
    CSS смотреть вот эту: _http://22291.com/aes/css/layout.css

    У варианта от Admin есть недостатки: во-первых через cms систему кол-во пунктов меню меняется, а значит жестко задать процент нельзя... Во-вторых пункт "О компании" не влазит в 14% при 1024 (там 7 пунктов, потому каждому по 14%) smile

    Теперь вариант Kildor: Во-первых зачем a{display:block} ?? Он только мешает в IE smile
    В Mozilla все прекрасно показывает, но вот с IE возникли проблемы... Собсно сами можете посмотреть как ведет себя меню... При 1024 не влазит, при больших разрешениях не центрирует...

    Есть идеи как решить проблему? Не хочется меню через таблицу строить....

    Отредактированно liven (22.01.2010 11:36)

    Нет на форуме

     

    #10 25.01.2010 01:50

    liven
    Разбирающийся
    Зарегистрирован: 22.11.2009
    Сообщений: 74

    Re: Резиновое горизонтальное меню

    Проблема оказалась в доктайпе.

    Код:

    При таком скрипт для IE не работает.

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

    P.S. Неужели никому из посетителей форума не требовалось делать резиновое горизонтальное меню по стандартам??? Товарищи, откликнитесь! smile

    Нет на форуме

     

    #11 25.01.2010 09:28

    AKS
    Опытный
    Зарегистрирован: 25.12.2009
    Сообщений: 409

    Re: Резиновое горизонтальное меню

    liven
    Слушай, ты умеешь заинтриговать! Все, качаю твою страницу и начинаю париться... Интересует только ИЕ, так ведь?

    Отредактированно AndrewS (25.01.2010 09:29)

    Нет на форуме

     

    #12 25.01.2010 10:46

    AKS
    Опытный
    Зарегистрирован: 25.12.2009
    Сообщений: 409

    Re: Резиновое горизонтальное меню

    Мешает слишком большой отступ (18 px), заданный для тэга A внутри LI. Задавая такие отступы наряду с процентной шириной родительских элементов трудно добиться "резиновости". В 7-ой Опере вообще получается непредсказуемый результат...

    Нет на форуме

     

    #13 31.01.2010 16:09

    AKS
    Опытный
    Зарегистрирован: 25.12.2009
    Сообщений: 409

    Re: Резиновое горизонтальное меню

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

    Нет на форуме

     

    #14 14.03.2010 11:59

    locker
    Разбирающийся
    Зарегистрирован: 25.02.2010
    Сообщений: 54
    Вебсайт

    Re: Резиновое горизонтальное меню

    Большое спасибо, то что я искал :-D

    Нет на форуме

     

    #15 19.03.2010 18:43

    farik
    Новичок
    Зарегистрирован: 19.03.2010
    Сообщений: 1

    Re: Резиновое горизонтальное меню

    С помощью списков!!!!!! Пример на http://webmascon.com/topics/coding/37a.asp

    Нет на форуме

     

    Board footer