[CSS] стилизовать активное меню

Главные вкладки

Аватар пользователя mixey mixey 12 июля 2007 в 2:28

Привет!

Обьясните пожалуйста, как с помощью css стилизовать меню...

структура меню:

Контакты
---Карта проезда

Когда нажали на контакты, друпал в соурсе пишет следующие.
< li class="last menu-1-4-2-active">< a href="/contacts" class="menu-1-4-2-active active">Контакты< /a>< /li>

и это я стилизую с помощью:
ul.primary-links li a.active {
color: #0A314F;
}

А при нажатие на под меню, друпал выдает такой код:
< li class="last menu-1-4-2-active">< a href="/contacts" class="menu-1-4-2-active">Контакты< /a>< /li>

Как мне с помощью CSS до него добраться?
хелп...

Комментарии

Аватар пользователя seaji seaji 12 июля 2007 в 14:38

Вообще все еще зависит от более обширного окружение.
Допустим какой класс, а лучше id у Вашего списка?
И еще стилизовать указанным образом вы ничего не можете т.к. в стилях указываете класс "active" а в тексте страницы у Вас класс "menu-1-4-2-active"
Разница есть?
Советую почитать спецификацию CSS.
Прикрепляю ее тут (на русском).

Аватар пользователя mixey mixey 14 июля 2007 в 0:03

Спасибо за книгу, с удовольствием "полистаю".

В данный момент у моего списка id нет воовсе, но если я не путаю ничего, добавить id довольно просто. Надо в page.tpl.php при вызове функции для отображения primary menu через запятую указать ещё один параметр - id.

А код, что приведен выше это тот, что мне друпал выдает. Меня очень смущает, что каждому элементу меню ( li- узлам и a href-ам), друпал присваивает свой уникальный класс.

< ul class="links primary-links">
< li class="first menu-1-1-2-active">< a href="/about" class="menu-1-1-2-active active">Обо мне< /li>
< li class="menu-1-2-2">< a href="/articles" title="Интересные статьи" class="menu-1-2-2">Интересные статьи< /li>
< li class="menu-1-3-2">< a href="/download" class="menu-1-3-2">Download< /li>
< li class="last menu-1-4-2">< a href="/contacts" class="menu-1-4-2">Контакты< /li>
< /ul>

Есть какие-нибудь идеи?

Аватар пользователя seaji seaji 14 июля 2007 в 14:08

Какая тема? Это классы не специфичные для Друпал. Скорее всего это генерится в теме. Посмотрите файл template.php

Аватар пользователя mixey mixey 14 июля 2007 в 23:48

тема "своя" в файле template.php нет ничего такого...только код который добавляет новый регион.

< ?php print theme('links', $primary_links, array('class' =>'links', 'id' => 'navlist')) ? > вот так вот вызываю меню.

UPD: только что проверил. bluemarine и garland выдают точно такой же код

Аватар пользователя seaji seaji 15 июля 2007 в 13:26

Свое ID вставлять не обязательно. Главное отследить, не перектываются ли ваши стили системными, для этих целей id имеют больший вес. Или скажем использовать более точные определения, они тоже имеют больший вес.
Например:

.nav ul.primary-links li { }  // имеет больший вес
ul.primary-links li { }  // имеет меньший вес

При этом контейнер класса nav должен заключать в себе список ссылок

Меня очень смущает, что каждому элементу меню ( li- узлам и a href-ам), друпал присваивает свой уникальный класс.

Пусть это Вас не смущает, подобраться можно не только по классу, а еще и то тэгам HTML

ul.primary-links li a { }  // - стили для не активных ссылок
ul.primary-links li a.active { } // - стили для активных ссылок
Аватар пользователя mixey mixey 16 июля 2007 в 14:15

"ul.primary-links li a { } // - стили для не активных ссылок
ul.primary-links li a.active { } // - стили для активных ссылок"

То что Вы написали работает, но только в случае когда нажата ссылка верхнего уровня (< li class="last menu-1-4-2-active">< a href="/contacts" class="menu-1-4-2-active active">Контакты< /a>< /li>)

А при нажатии на подменю "контактов" html source совсем другой Sad (< li class="last menu-1-4-2-active">< a href="/contacts" class="menu-1-4-2-active">Контакты< /a>< /li>) т.е. menu-уникальный-номер-ТИРЕ-active

И соответственно
ul.primary-links li a.active { } // - стили для активных ссылок
перестает работать Sad

UPD: Выяснилось, что такой вид меню принимает в том случае если для навигации использовать только Primary Links.
Т.е. я создал новое МЕНЮ, куда переместил все свои ссылки и друпал начал выдавать удобный для CSS код.

Аватар пользователя Nicola Nicola 19 августа 2007 в 20:01

А вот у меня тоже вопрос. Но полегче. Primary links выделяет ...active если ссылка указана не полная, т.е. trip_search a не www.site.ru/trip_search
Вот, а как мне показать ему главную страницу. Т.е. у меня есть главная страница, а в primary-links я пробовал и "front" и ничего не писать, а он все рано не понимает, где он. И не делает ссылку активной, если я нахожусь на главной странице.