Как сделать активной ссылку в меню в зависимости от url?

 
Sometime CMS Community
Посетитель
no avatar
Сообщений: 82
Есть простое решение - вставить горизонтальное меню и настроить ему дизайн и тогда, оно будет создавать доп. нагрузку на базу (если не закэшируешь)...

Код PHP:
  1. <div id="mainmenu"><div class="module">
  2. <div class="modulebody">
  3. <a target="" href="/about.html" >О системе</a>
  4. <a target="" href="/download.html" >Скачать</a>
  5. <a target="" href="/wiki" >Документация</a>
  6. <a target="" href="/catalog/1004" >Дополнения</a>
  7. <a target="" href="/blogs" >Блоги</a>
  8. <a target="" href="http://trac.instantcms.ru" >Багтрекер</a>
  9. <a target="" href="/users" >Люди</a>
  10. <a target="" id="active" href="/forum">Форумы</a>
  11. </div>
  12.  
Проблема в том, что именно под меню дизайн настроить не могу =(*
ПОэтому ищу другие решения этого вопроса...
в поисках нашел
http://www.drupal.ru/node/32807
http://www.my-html.ru/blog/kak_vydelit_aktivnyj_punkt_v_menju_na_jquery/2010-04-05-27

но заставить их работать не получается!

Есть код меню:

Код PHP:
  1. <div id="nav_wrap">
  2. <div id="nav" class="cleafix">
  3. <ul class="menu-nav">
  4. <li id="current" class=""><a href="/"><span>Главная</span></a></li>
  5. <li class=""><a href="http://site.ru/linknovosti"><span>Новости</span></a></li>
  6. <li class=""><a href="http://site.ru/linkboard"><span>Объявления</span></a></li>
  7. <li class=""><a href="http://site.ru/linkforum"><span>Форум</span></a></li>
  8. <li class=""><a href="http://site.ru/linkchitalnyi"><span>Библиотека</span></a></li>
  9. <li class=""><a href="http://site.ru/linkye"><span>Люди</span></a></li>
  10. <li class=""><a href="http://site.ru/linky"><span>Блоги</span></a></li>
  11. </ul>
  12. </div> </div>
Объясните пожалуйста, как сделать так, чтобы при переходе например, в Новости - ссылка подсвечивалась и оставалась активной?

Спасибо
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Да. Так мы скоро вообще от базы останемся :)

Тут определенно есть решение! И как обычно - в одну строчку!
IRIP, уважаемый, ну чего уж самому не охота голову поломать??? Раз такие гениальные идеи по
оптимизации выдвигаете, то это должно быть легко!
Реклама
cms
Sometime CMS Community
Посетитель
no avatar
Сообщений: 82
Александр:

Да. Так мы скоро вообще от базы останемся :)

Тут определенно есть решение! И как обычно - в одну строчку!
IRIP, уважаемый, ну чего уж самому не охота голову поломать??? Раз такие гениальные идеи по
оптимизации выдвигаете, то это должно быть легко!

Да идей просто море, в том числе и об объединении в одном css с функциями сжатия и т.д. и т.п.
Есть уже рабочее решение полностью сверстанный трехколоночный шаб на div у которого убираться может любая из колонок или обе, не нарушая дизайна...


- а вот тут, в простой задачке - и не могу ничего =*(
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Ну вот смотри непрофессиональное "хакерское" smile решение. Ток предупреждаю, это
все в рамках эксперимента! В IE 6 работать не будет точно (он css селекторы не поддерживает)
И только для того меню что ты попросил.

В файле template.php перед закрывающимся тегом </head> напиши:
Код PHP:
  1. <style type="text/css">#nav A[href="/<?php echo $inCore->request('uri', 'str') ?>"] {font-weight: bold;color:red; }</style>
Редактировалось: 1 раз (Последний: 12 августа 2010 в 19:44)
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Да и ссылки указывай относительные
Код PHP:
  1.  
  2. <li id="current" class=""><a href="/"><span>Главная</span></a></li>
  3. <li class=""><a href="/novosti"><span>Новости</span></a></li>
  4. <li class=""><a href="/board"><span>Объявления</span></a></li>
  5. <li class=""><a href="/forum"><span>Форум</span></a></li>
  6. <li class=""><a href="/users"><span>Люди</span></a></li>
  7. <li class=""><a href="/blogs"><span>Блоги</span></a></li>
  8.  
Sometime CMS Community
Посетитель
no avatar
Сообщений: 82
Александр:

Ну вот смотри непрофессиональное "хакерское" smile решение. Ток предупреждаю, это
все в рамках эксперимента! В IE 6 работать не будет точно (он css селекторы не поддерживает)
И только для того меню что ты попросил.

В файле template.php перед закрывающимся тегом напиши:
Код PHP:
  1. #nav A[href="/"] {font-weight: bold;color:red; }

=( Не работает!
Может есть подобное решение на jq?
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Код PHP:
  1. #nav A[href="/"] {font-weight: bold;color:red; }
Я разве такое написал???

Все работает! Проверил!
Sometime CMS Community
Посетитель
no avatar
Сообщений: 82
Александр:

Код PHP:
  1. #nav A[href="/"] {font-weight: bold;color:red; }
Я разве такое написал???

Все работает! Проверил!

ТАки работает ))) Только вот фоновое изображение идет у меня на ссылку

Вот еще задачка...

Код CSS:
  1. #nav ul li#current a { color:#555; height:40px; background: url(/templates/ero/images/navtab-right.png) top right no-repeat;}
  2. #nav ul li#current a span { height:40px; background: url(/templates/ero/images/navtab-left.png) top left no-repeat;}
два стиля отвечают за закругление фона ссылки - а в предложенном вами, Александр, варианте - есть только один стиль который я указал. Таким образом получается полузакругление и с одного конца - ровно =-(
Может есть решение?
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Чет я туплю. Не понял вопроса!

А решение есть всегда. И всегда в одну строчку. Ток его заметить лень бывает... :)

Распиши подробнее, что должно быть.
Sometime CMS Community
Посетитель
no avatar
Сообщений: 82
Код PHP:
  1. <style type="text/css">#nav A[href="/<?php echo $inCore->request('uri', 'str') ?>"] {
  2. color:#555;
  3. height:40px;
  4. background: url(/templates/ero/images/navtab-right.png) top right no-repeat;
  5. }
  6. </style>
  7. <style type="text/css">#nav A.span [href="/<?php echo $inCore->request('uri', 'str') ?>"]{
  8. height:40px;
  9. background: url(/templates/ero/images/navtab-left.png) top left no-repeat;
  10. }
  11. </style>
вот примерно так, но оно не работает
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
А так оно и не будет работать! CSS учи. a.span - это кто так пишет??? надо так:
Код PHP:
  1.  
  2. #nav A[href="/<?php echo $inCore->request('uri', 'str') ?>"] {color:#555; height:40px; background: url(/templates/1.png) top right no-repeat; }
  3. #nav A[href="/<?php echo $inCore->request('uri', 'str') ?>"] span { height:40px; background: url(/templates/images/2.png) top left no-repeat; }
Sometime CMS Community
Посетитель
no avatar
Сообщений: 82
Александр:

А так оно и не будет работать! CSS учи. a.span - это кто так пишет??? надо так:
Код PHP:
  1.  
  2. #nav A[href="/"] {color:#555; height:40px; background: url(/templates/1.png) top right no-repeat; }
  3. #nav A[href="/"] span { height:40px; background: url(/templates/images/2.png) top left no-repeat; }

тьфу блин...
Работает!
Прибольшое спасибо!
Sometime CMS Community
Посетитель
no avatar
Сообщений: 40
Александр:

Ну вот смотри непрофессиональное "хакерское" smile решение. Ток предупреждаю, это
все в рамках эксперимента! В IE 6 работать не будет точно (он css селекторы не поддерживает)
И только для того меню что ты попросил.

В файле template.php перед закрывающимся тегом напиши:
Код PHP:
  1. #nav A[href="/"] {font-weight: bold;color:red; }
Александр, спасибо, работает

а как бы извернуться, чтобы выделение пункта меню не пропадало при переходе пользователя глубже по ссылкам.
Вот например, есть раздел меню верхнего уровня "Новости" со ссылкой /novosti
при переходе по этой ссылке выделяется соответствующий пункт меню
a[href="/<?php echo $inCore->request(’uri’, ’str’) ?>"] {стили}
можно ли так сделать чтобы пока пользователь ходит по ссылкам /novosti/1, novosti/n, /novosti/n/eshe и тп оформление меню "новости" не слетало?
Редактировалось: 2 раз (Последний: 2 сентября 2010 в 17:14)
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
можно ли так сделать

Можно все! Только думать думать надо! Попробуйте пораскинуть тем что в голове...

А вообще - чего вы так все базы боитесь?
Может у вас хостинг без MySql???
Sometime CMS Community
Посетитель
no avatar
Сообщений: 40
Александр:

можно ли так сделать

Можно все! Только думать думать надо! Попробуйте пораскинуть тем что в голове...

А вообще - чего вы так все базы боитесь?
Может у вас хостинг без MySql???

Научи, и будет чем раскинуть )
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.