C#.NET сайт - добавление CSS-класс для элементов меню
Я использую PHP уже 7 лет или около того, но на сегодняшний день я вынужден использовать .NET для проекта. Просто для insite:
Особенности этого проекта:
. NET4 Viewstate = false
Теперь моя проблема заключается в следующем. Основной макет покрывается главной страницей, которая кажется тихой и очевидной, как она работает. Он также включает в себя параметры меню навигации, такие как:
<div id="menu">
<ul>
<li><a href="default.aspx" title="Home" >Home</a></li>
<li><a href="products.aspx" title="Products">Products</a></li>
<li><a href="prices.aspx" title="Size & Price">Size & Price</a></li>
<li><a href="formats.aspx" title="File Formats">File Formats</a></li>
</ul>
</div>
Теперь я хотел бы добавить атрибут класса CSS в зависимости от того, на какой странице Я нахожусь. на странице продуктов я бы получил следующий источник:
<div id="menu">
<ul>
<li><a href="default.aspx" title="Home" >Home</a></li>
<li><a href="products.aspx" class="active" title="Products">Products</a></li>
<li><a href="prices.aspx" title="Size & Price">Size & Price</a></li>
<li><a href="formats.aspx" title="File Formats">File Formats</a></li>
</ul>
</div>
Любая помощь будет очень признательна!
Ура :)
3 ответа:
Множество способов сделать это, один из них-добавить скрипт на страницу "slave", который задает класс соответствующего тега.
<li><a href="default.aspx" title="Home" id="aHome" >Home</a></li> <li><a href="products.aspx" title="Products" id="aProducts">Products</a></li>
Затем в продуктах.aspx вы можете сделать:
<SCRIPT>document.getElementById('aProducts').setAttribute('class', 'active');</SCRIPT>
Это не ответ на ваш вопрос, но это было в категории CSS, поэтому я решил, что по крайней мере прокомментирую :)
Я настоятельно рекомендую вам установить статические классы для каждого элемента списка и в сочетании с классами тела в CSS использовать что-то вроде:
<style type="text/css"><!-- body.products #menu li.products a, body.otherpage1 #menu li.otherpage1 a, body.otherpage2 #menu li.otherpage2 a, body.otherpage3 #menu li.otherpage3 a, body.otherpage4 #menu li.otherpage4 a, { /* your styles here*/ } --></style>
Я думаю, что использование C# для того, чтобы Просто задать класс, немного перебор, вот и все:)
Я бы начал с преобразования ссылок в серверные элементы управления. Смотрите страницу MSDN для
. Оттуда я бы сделал интерфейс для своей главной страницы, так что если мне когда-нибудь понадобится изменить главные страницы в будущем, я могу реализовать тот же интерфейс и не беспокоиться о том, что сломаю свою сборку (мы публично представим некоторые свойства на следующем шаге, так что это будет полезно). public interface IMasterPage { String LnkHomeClass { get; set; } String LnkProductsClass { get; set; } ... }
Теперь, как я уже упоминал, предоставьте атрибут CssClass для ваших гиперссылок в коде. вашей главной страницы.
public string LnkProductsClass { get { return LnkProducts.CssClass; } set { LnkProducts.CssClass = value; } }
Теперь вы можете установить их на ваших дочерних страницах.
IMasterPage masterPage = Master as IMasterPage; if (masterPage != null) { masterPage.LnkProductsClass = “active”; }
Другой вариант, но менее знакомый мне, может заключаться в использованиивложенных мастер-страниц .