We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33693
    • 7 Posts
    Добрый день.
    Вызываю вейфайндер
    [[Wayfinder?startId=`1` &firstClass=`first` &levelClass=`level`]]

    Все шаблоны по умолчанию
    Результирующий html
    <ul>
    <li class="first level1 active"><a href="###" title="###" >###</a>
    <ul>
    <li class="first level2"><a href="###" title="###" >###</a></li>
    <li class="level2 active"><a href="###" title="###" >АКТИВНАЯ</a></li>
    <li class="level2"><a href="###" title="###" >###</a></li>
    <li class="last level2"><a href="###" title="###" >###</a></li>
    </ul>
    </li>
    <li class="level1"><a href="###" title="###" >###</a>
    <ul>
    <li class="first level2"><a href="###" title="###" >###</a></li>
    <li class="last level2"><a href="###" title="###" >###</a></li>
    </ul>
    </li>
    <li class="last level1"><a href="###" title="###" >###</a></li>
    </ul>
    Теперь встала задача оформления.
    Каждому уровню задано уникальное отображение классами level
    Вопрос 1
    как сделать чтобы "first level1" и "first level2" имели разный вид,
    НАПРИМЕР: если я напишу .first допустим Background-color:red то фон и у level1 и у level2 станет красным(одинаковый и у 1 и у 2 уровня).
    А мне надо чтобы first level1 имел фон синий а first level2 зеленый(разные фоны)(при этом в классах level не писать фона)
    Условие вобщем можно описать так: if first&level1 then ...; if first&level2 then... - как его реализовать силами css??(или любыми адекватными силами)
    ну и понятно, что аналогичные манипуляции хочу сотворить с комбинациями last levelN и active levelN(каждая комбинация классов выданных вейфайндером дает свой стиль)
    Вопрос 2
    В коде видно, что активен элемент 2 уровня (имеет класс active). НО и элементу родителю присвоило класс active - как заставить вейфайндер давать activе только реально активному элементу?
    Вопрос 3
    Как заставить wayfinder делать так: class="active" будет приписан допустим ul, class="level1,2" будут присвоены li, а другие классы вобще другим элементам
    Это возможно?
    Работаю с modx уже несколько лет, но оказался в тупике.
    Вообще это меню я сделал статическим, однако это противоречит идеологии, хочется динамический вывод.
      • 20380
      • 118 Posts
      1)
      .level1.active

      2) они оба реально активны, но есть еще свойство selfClass - попробуйте его
      3) присвоить сlass active ul’у у вас не получится - это свойство пунтка, как вы себе это представляете? (точнее это можно сделать, но это логически неправильно). Если вам нужно, чтобы, если родитель-li active, то ul=active, то... опять вы плохо знаете css. Для этого не нужно мучить html, а просто использовать конструкцию
      .active ul
        • 7368
        • 264 Posts
        1)
        .first.level1 { background-color:blue; }
        .first.level2 { background-color:green; }
        либо же
        li.first { background-color:blue; }
        li.first li.first { background-color:green; } для 2го уровня вложенности
        li.first li.first li.first { background-color:red; } для 3го уровня вложенности и так далее..

        Хотя 1й вариант более правильный.

          • 33693
          • 7 Posts
          то есть логическим символом И является точка? большое спасибо Коллад и Мрей)
          Мрей, указанные мной требования условны - меня волнует не как именно класс активный вписать в УЛ - меня волнует как заставить вейфайндер ставить нужные классы в нудные места) пример от балды писал для демонстрации)
          Кстати с СЕЛФ класс - спасибо идея отличная)
            • 7368
            • 264 Posts
            он не является логическим символов И, он является указанием класса) пробел между классами, например, .class1 .class2 указывает на вложенность, а .class1.class2, указывает на элемент, который имеет 2 данных класса.. как-то так
              • 33693
              • 7 Posts
              ну да вроде того)большое спасибо)
              и еще такой вопрос
              берем список вертикальный -
              - пункт один |
              - пункт два |
              - пункт tot |
              - пункт четыре |
              всегда идет выравнивание по самому большому элементу если заливать фон
              как сделать чтобы у элементов списка при заливке фоном фон ложился так
              - пункт один|
              - пункт два|
              - пункт tot|
              - пункт четыре|

              _______
              итого остался вопрос как заставить вейфайндер расставлять стили разные в разные места
                • 33693
                • 7 Posts
                хм, ширина элемента списка выставляется по содержимому а не по самому большому из списка с помощью указания position:absolute
                лучше не нашел(