Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > горизонтальное меню


Автор: santilaas 29.10.2006, 08:04
Всем привет. Выручайте.
Хочу сделать горизонтальное меню с выпадающими справа элементами подменю, 
притом сделать это с использованием ТОЛЬКО CSS (без использования JavaScript) и чтобы эта менюшка работала во всех браузерах. Вообще такое реально сделать? Может у кого есть пример?

Заранее премного благодарен.

Автор: Punk_UnDead 29.10.2006, 10:16
я так понимаю что див должен быть спозиционарован абсолютно,
иметь обрезку, в свёрнутом состоянии низ таким образом обрезается
при behavior соответственно ставим реальный размер

Автор: SelenIT 29.10.2006, 14:56
santilaas, совсем без использования JS и во всех браузерах - к сожалению, не получится. IE 6- понимает :hover только для ссылок, а в ссылку нельзя вкладывать другие ссылки. Так что минимальная добавка JS в случае IE необходима.

Автор: santilaas 29.10.2006, 15:02
Очень жаль, что не получится. Просто, например, если кто-то у себя отключит использование скриптов, то мое меню придет в негодность. Собственно именно поэтому я хотел все сделать через CSS, без использования JavaScript - тогда уж можно сделать меню полностью на JavaScript-e.

И еще: раз уж я говорю про меню, меня волнует еще один вопрос: как то вообще можно без использования фреймов добиться того, чтобы при скроллинге страницы, менюшка и шапка всегда оставались видимыми, т.е прокручивался только сам текст. Например, overflow к сожалению работает только в IE???

Автор: SelenIT 29.10.2006, 15:10
Цитата(santilaas @  29.10.2006,  15:02 Найти цитируемый пост)
overflow к сожалению работает только в IE

В общем случае это не так. Сам по себе overflow достаточно кроссбраузерная вещь. 

Автор: santilaas 30.10.2006, 07:05
SelenIT,
Цитата

В общем случае это не так. Сам по себе overflow достаточно кроссбраузерная вещь.

- т.е получается, что все должно работать - наверное это зависит и от версии браузера?!

Цитата

IE 6- понимает :hover только для ссылок, а в ссылку нельзя вкладывать другие ссылки. Так что минимальная добавка JS в случае IE необходима. 

- вот что хотел ещё добавить (сразу почему то это вылетело из головы). - На  (http://www.cssplay.co.uk/menus/flyoutt.html) есть классные менюшки на чистом CSS. Так вот в моём IE6 взятая с этого сайта горизонтальная менюшка работает просто отлично (как мне и надо). Но вот стал я её проверять в Mozill-е 5.0 (2000 года), Oper-e 4.02 (2000 года), Netscape 6 Preview Release 2 (2000 года) (вот такое старье). - и сложилось впечатление, что эти браузеры просто не понимают некоторые конструкции CSS. А может просто все дело в их моральной старости, а в их новых версиях все работает - может кому-нибудь несложно будет проверить это в последних версиях перечисленных браузеров?! 
Заодно, если не сложно - может кто скажет последние версии перечисленных браузеров?!

Автор: $tatic 30.10.2006, 12:07
Проверяй свой сайт в современных браузерах. У меня в Файрфоксе 2.0 все работает.

Автор: SelenIT 30.10.2006, 12:51
santilaas

Цитата(santilaas @  30.10.2006,  07:05 Найти цитируемый пост)
получается, что все должно работать

Получается так. Если не работает - покажите проблемный код, попробуем отладить)

Цитата(santilaas @  30.10.2006,  07:05 Найти цитируемый пост)
классные менюшки на чистом CSS

Для IE там все-таки вкладывается ссылка в ссылку (через "прослойку" в виде таблицы), так что IE получает невалидный код (валидатор этого не видит, т.к. код для IE скрыт в т.н. "conditional comments"). Но несмотря на хак, решение есть - признаю, что ошибался)

Цитата(santilaas @  30.10.2006,  07:05 Найти цитируемый пост)
...последние версии перечисленных браузеров?

Насколько мне известно, на сегодня это SeaMonkey (экс-Мозилла) 1.0.5 и Firefox 2.0, Netscape 8.1.2 и Opera 9.0.2.

Автор: Punk_UnDead 30.10.2006, 12:55
santilaas
FF 2.0 релиз состоялся недавно, работает 
Опера 90.2 (только не надо говорить что 9.02 smile ) должен работать в 90.1 работает
SeaMonkey 1.0.5 (новая ветка Mozilla Suite) не владею информацией, но учитывая что движок такой же как у фокса, должно работать
Mozilla Suite 1.7.13, аналогично SeaMonkey

Автор: SelenIT 30.10.2006, 13:50
Punk_UnDead, имхо Опера 90 - это все же шутка разработчиков, замаскированная под некритичную ошибку. Предыдущая версия, как ни крути - 8, а не 89 smile

Автор: Blaga 31.10.2006, 17:45
santilaas, что бы застраховаться от таких шутников которые выключают Ява Скрипт, лучшим способом будет сделать дублируещее меню. например внизу страницы выпадающим списком...

Автор: santilaas 31.10.2006, 18:54
Цитата

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

- дело в том, что меня вообще немного угнетает такая ситуация - поясню: 
1) у людей стоят разные браузеры (притом один поддерживает одно, другой - другое, а чтобы и то и другое - ?!);
2) у людей стоят разные разрешения экрана (поэтому зачастую стоит выбор: делать сайт плавающим  (предпочтительнее) или фиксированным); 
3) многие люди любят отключать у себя поддержку скриптов, графики, cookies, и т.д.
Кстати, сам, дабы лишний раз не "кушать" трафик, у себя на работе отключил поддержку рисунков и анимаций. Вот и получается - перед разработчиком сайта стоит нелегкая задача подстроиться под все это.
А где бы найти информацию о том, какие свойства или настройки уж точно будут поддерживаться и работать везде???

Сам для себя решил написать небольшой сайт средствами только Html, CSS и php&mysql с минимумом графики, (вернее, чтобы даже при отключении графики, сайт смотрелся приемлемо) - не знаю что из этого выйдет - но - как говорится - глаза боятся, а руки делают!

Кстати, прошу совета: делаю сайт с заданием ширины в процентах - а менюшку правильнее делать фиксированной или плавающей???
Просто делаю менюшку на CSS-е (точнее переделываю под себя менюшку, взятую с CSSPlay). - и задаю её ширину в процентах? - не нравится то, что при уменьшении окна браузера, менюшка сжимается до неприличных размеров, зато при разрешении экрана 1280 на 1024 (у самого стоит 1024 на 768) она растягивается в соответствии с заданными процентами (это "плюс"). Обратная картина, если делаю менюшку фиксированной - при уменьшении окна браузера она не уменьшается меньше своего размера (это "плюс"), но при увеличении разрешения экрана, она становится слишком маленькой относительно экрана (это "минус"). - где золотая середина? 

Автор: SelenIT 31.10.2006, 19:07
Цитата(santilaas @  31.10.2006,  18:54 Найти цитируемый пост)
не нравится то, что при уменьшении окна браузера, менюшка сжимается до неприличных размеров


В "приличных" браузерах этому противостоит св-во min-width, в IE его можно эмулировать с с помощью expressions (правда, там неявно используется JS) или http://www.cssplay.co.uk/boxes/minwidth.html.

Автор: verstalishik 20.9.2007, 10:44
доброго всем дня 
Цитата

- дело в том, что меня вообще немного угнетает такая ситуация - поясню: 
1) у людей стоят разные браузеры (притом один поддерживает одно, другой - другое, а чтобы и то и другое - ?!);
2) у людей стоят разные разрешения экрана (поэтому зачастую стоит выбор: делать сайт плавающим  (предпочтительнее) или фиксированным); 
3) многие люди любят отключать у себя поддержку скриптов, графики, cookies, и т.д.
Кстати, сам, дабы лишний раз не "кушать" трафик, у себя на работе отключил поддержку рисунков и анимаций. Вот и получается - перед разработчиком сайта стоит нелегкая задача подстроиться под все это.
А где бы найти информацию о том, какие свойства или настройки уж точно будут поддерживаться и работать везде???

 моя проблема идентична и по правде говоря уже бесит 

santilaas, это не много безтактно, но можно взглянуть на твой код выпадающего меню (CSS)

Автор: kizune 20.9.2007, 11:51
посмотри здесь,я думаю без javascript вряд ли обойдешься

http://webmascon.com/topics/coding/42a.asp

http://beholder-eye.info/2006/03/30/dropdown-menu-css

Автор: verstalishik 20.9.2007, 13:15
спасибо=)

Добавлено через 3 минуты и 39 секунд
спасибо=)

Автор: verstalishik 21.9.2007, 06:37
доброго дня! есть шаблон вертикального меню с выпадающим подменю. не как не выходит переделать его 
в горизонтальное с выпадающим

Код

            ul { margin: 0; padding: 0; list-style: none; width: 150px;}
            ul li { position: relative; }
            li ul { position: absolute; left: 149px; top: 0; display: none; }
            ul li a { display: block; text-decoration: none; color: #777; background: #fff; padding: 5px; border: 1px solid #ccc; border-bottom: 0; }
            ul { margin: 0; padding: 0; list-style: none; width: 150px; border-bottom: 1px solid #ccc; }
            li:hover ul { display: block; }


Код

          <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a> </li> 
                <li><a href="#">Services</a>
                    <ul> 
                        <li><a href="#">Web Design</a></li> 
                        <li><a href="#">Internet Marketing</a></li> 
                        <li><a href="#">Hosting</a></li>
                        <li><a href="#">Domain Names</a></li> 
                        <li><a href="#">Broadband</a></li>
                    </ul>
                </li> 
                       <li><a href="#">Contact Us</a>
                    <ul> 
                       <li><a href="#">United Kingdom</a></li>
                       <li><a href="#">France</a></li> 
                       <li><a href="#">USA</a></li> 
                       <li><a href="#">Australia</a></li> 
                    </ul>
                 </li>
            </ul>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)