Jump to content
  • 0

Текущие пункты меню


param
 Share

Question

Здравствуйте.

Существует такой псевдокласс для ссылки как а:active, который определяет стиль ссылки во время нажатия на неё. Мне же надо, чтобы ссылка имела свой стиль, тогда когда она находится на странице на которую она ведёт. Например, если пункт меню, то он должен подсвечиваться в том разделе в котором пользователь в данный момент находится. Я погуглив понял, что с помощью CSS это нельзя реализовать. А как тогда можно это реализовать?

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Здравствуйте.

Существует такой псевдокласс для ссылки как а:active, который определяет стиль ссылки во время нажатия на неё. Мне же надо, чтобы ссылка имела свой стиль, тогда когда она находится на странице на которую она ведёт. Например, если пункт меню, то он должен подсвечиваться в том разделе в котором пользователь в данный момент находится. Я погуглив понял, что с помощью CSS это нельзя реализовать. А как тогда можно это реализовать?

Вам нужно присвоить css класс активному пункту меню, и уже с помощью css настроить его отображения.

Я не фанат Joomla, но если вы используете встроенный модуль для построения меню то обычно там уже предусмотрено присвоение класса, посмотрите html код созданного меню, может там и увидите нужный класс (класс может быть присвоен не именно элементу ссылки "a", но и его родителю обычно "li").

Если меню у вас создается на чистом html (без использования api joomla) то можно использовать php переменную $_SERVER, но я бы советовал не изобретать велосипед, а поискать нужный модуль меню для joomla.

Edited by Burevestnik
Link to comment
Share on other sites

  • 0

Нет я не использую модуль меню. Я сделал обычное css-меню. Можно подробней о переменной...

А зачем? Чтобы для добавления пункта в меню нужно было править шаблон? В джумле меню добавляется в админке, а при выводе на активный пункт вешаются классы active (родитель и текущая страница) и current (текущая страница). Может быть все-таки не так друг друга поняли? Меню, созданное через админку, можно (и нужно) стилизовать CSS

Link to comment
Share on other sites

  • 0

Нет я не использую модуль меню. Я сделал обычное css-меню. Можно подробней о переменной...

Насчет переменной вот тут к примеру. Т.е. с помощью php разбирать url адрес страницы и при нужном url вешать css класс на нужный пункт меню.

НО ПОВТОРЮСЬ не стоит изобретать велосипед, воспользуйтесь стандартным модулем joomla и будет вам счастье.

Link to comment
Share on other sites

  • 0

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

Вот тут посмотрите готовый модуль - может что и подберете

Если выше приведенный способ не подходит то можно использовать обычное меню, но при этом сделать его и выпадающим и каким угодно (css + html вам в помощь)... смотрите какие классы генерирует ваша cms при создании меню и настраивайте по ним то отображение которое нужно. Ну а на javascript написать обработчик эффект выпадания меню.

  • Like 1
Link to comment
Share on other sites

  • 0
Я отказался от модуля, потому что так и не разобрался как добавить выпадающее меню...

В админке, в менеджере меню, открыть нужную менюшку, добавить пункт и указать для него родительский пункт. Выпадающий список так и называется: "Родительский элемент". В итоге джумла будет выводить менюшку примерно такой структуры:


<ul>
<li>пункт 1>
<li>пункт 2
<ul>
<li>подпункт 1</li>
<li>подпункт 2</li>
</ul>
<li>пункт 3>
</li>
</ul>

И обвесит классами

Edited by hedgehog
  • Like 1
Link to comment
Share on other sites

  • 0

Создал пункт меню, установил ему родительский элемент, но нужной html-кода нет. Идут просто друг за другом <li>, как и было.

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

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

  • Like 1
Link to comment
Share on other sites

  • 0

Ещё вопрос, который тянется с модулем. Я хочу отображать заголовок для модуля, как h2, но по умолчанию стоит третий уровень, я прописываю строчку таким образом <jdoc:include type="modules" name="position-3" style="xhtml" headerLevel="2"/>, но заголовок продолжает быть h3...

upd: разобрался нужно внести правки в файле modules.php, который находится в папке templates/system/html, строки <h3><?php echo $module->title; ?></h3>, поменять на нужный уровень.

Edited by param
Link to comment
Share on other sites

  • 0

Ваша правка слетит при следующем обновлении.

Нужно было сделать по другому.

В каталоге с вашим шаблоном создать файл modules.php и в нем описать свои параметры вывода модуля. Примеры, кстати есть в предваритльно настроенных шаблонах типа Beez

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