Как разработать меню asp.net с CSS

Я нахожусь в процессе моделирования меню asp.net, и я пытаюсь понять значение StaticSelectedStyle-CssClass и параметров StaticHoverStyle-CssClass.

Мое понимание - то, что стили, определенные с этими параметрами, применяются как классы CSS к соответствующим элементам, при необходимости. Таким образом, я создал свое меню следующим образом:

<asp:Menu ID="NavigationMenu" DataSourceID="NavigationSiteMapDataSource" 
        StaticMenuStyle-CssClass="StaticMenuStyle"
        StaticMenuItemStyle-CssClass="StaticMenuItemStyle"
        StaticSelectedStyle-CssClass="StaticSelectedStyle"
        StaticHoverStyle-CssClass="StaticHoverStyle"
        Orientation="Horizontal" 
        MaximumDynamicDisplayLevels="0" 
        runat="server">
</asp:Menu>

Это работает на StaticMenuStyle-CssClass, и StaticMenuStyle-CssClass (классы применяются к соответствующим элементам), но StaticSelectedStyle-CssClass и StaticHoverStyle-CssClass не применяются, независимо от выбранного или состояния при наведении курсора элемента.

Что я, как предполагается, делаю для создания этой работы?

Спасибо.

Править: Извините я должен был упомянуть, что это-.NET 4. Вот сгенерированный HTML:

<div id="NavigationMenu">
 <ul class="level1 StaticMenuStyle">
  <li><a class="level1 StaticMenuItemStyle selected" href="/Link.aspx">Link</a></li>
 </ul>
</div>

Таким образом, как Вы видите, StaticMenuStyle и StaticMenuItemStyle применяются, но не StaticSelectedStyle-CssClass или StaticHoverStyle-CssClass. Не уверенный, почему. Я знаю, что могу использовать выбранный, но не являюсь ожидаемым поведением это StaticSelectedStyle-CssClass быть примененным??? При помощи выбранного я делаю предположения относительно того, что.NET делает негласно, и это не правильно.

23
задан Ryan Kohn 15 August 2012 в 15:27
поделиться

3 ответа

Хорошо, поэтому на сегодняшний день, очевидно, не так много людей пробовали меню .NET 4. Неудивительно, поскольку окончательная версия была выпущена пару дней назад. Кажется, я первый, кто когда-либо сообщал о том, что кажется ошибкой. Я сообщу об этом в MS, если найду время, но, учитывая послужной список MS в том, что я не обращаю внимания на отчеты об ошибках, я не торопясь с этим.

В любом случае, на данный момент наименее худшее решение - скопировать и вставить стили CSS, сгенерированные элементом управления (проверьте заголовок), в вашу собственную таблицу стилей и изменить ее оттуда. После того, как вы это сделаете, не забудьте установить IncludeStyleBlock = "False" в своем меню, чтобы предотвратить автоматическое создание CSS, поскольку с этого момента мы будем использовать скопированный блок. Концептуально это неверно, поскольку ваше приложение не должно полагаться на автоматически сгенерированный код, но это единственный вариант, который я могу придумать.

7
ответ дан 29 November 2019 в 01:25
поделиться

Следует обратить внимание на то, что HTML выплевывает элемент управления. В этом случае он выставляет таблицу для создания меню. Стиль наведения устанавливается на TD, и как только вы выбираете пункт меню, элемент управления отправляется обратно и добавляет выбранный стиль к тегу A ссылки в TD.

Итак, у вас есть два разных предмета, которыми здесь манипулируют. Один является элементом TD, а другой - элементом A. Итак, вы должны заставить свой CSS работать соответствующим образом. Если я добавлю приведенный ниже CSS на страницу с меню, я получу ожидаемое поведение изменения цвета фона в любом случае. Возможно, вы выполняете различные манипуляции с CSS, которые могут применяться или не применяться к этим элементам.

<style>
    .StaticHoverStyle
    {
        background: #000000;
    }

    .StaticSelectedStyle
    {
        background: blue;
    }
</style>
1
ответ дан 29 November 2019 в 01:25
поделиться

Есть неплохие сторонние инструменты, но я обычно использую superfish http://www.conceptdevelopment.net/ Fun / Superfish / это круто, бесплатно и легко;)

-1
ответ дан 29 November 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: