Вы можете установить идентификатор тела страницы на некоторое значение, представляющее текущую страницу. Затем для каждого элемента в меню вы устанавливаете класс, специфичный для этого пункта меню. И в вашем CSS вы можете создать правило, которое будет выделить пункт меню конкретно ...
Это, вероятно, не имеет особого смысла, так вот пример:
<body id="index">
<div id="menu">
<ul>
<li class="index" ><a href="index.html">Index page</a></li>
<li class="page1" ><a href="page1.html">Page 1</a></li>
</ul>
</div> <!-- menu -->
</body>
В page1.html , вы должны установить id тела: id="page1"
.
Наконец в вашем CSS у вас есть что-то вроде следующего:
#index #menu .index, #page1 #menu .page1 {
font-weight: bold;
}
Вы должны были бы изменить идентификатор для каждой страницы, но CSS остается тем же, что очень важно, как CSS часто кэшируются и может потребоваться принудительное обновление для обновления.
Это не динамический, но это один из способов, который прост в использовании, и вы можете просто include
меню html из файла шаблона с использованием PHP или аналогичного.
Звучит неплохо, просто. Но как предупредить идентификатор каждой страницы? На стороне сервера? – hguser
Для одного из моих сайтов страницы были статическими html - этот метод просто упростил обновления (поскольку меню было в включенном файле, мне нужно было только его изменить один раз, если я добавлю новую страницу). Тем не менее, да, вам потребуется какой-то способ установить идентификатор тела на стороне сервера. Как вы это делаете, это зависит от того, как вы запускаете свой сайт. Например, в моем блоге Wordpress используется тема, которая устанавливает «класс» в теге body в зависимости от того, какая страница просматривается. – icabod
Этот подход означает, что вы должны иметь элемент тела во всех представлениях. Не очень элегантный. Вам почти наверняка понадобится JS, чтобы сделать это динамически. jQuery делает это довольно легко. Посмотрите на мой ответ ниже. –