Вот как это делается в PHP.
<?php
$menu = array(
array(
'href' => 'index.php',
'text' => 'Index',
),
array(
'href' => 'test.php',
'text' => 'Test',
),
);
?>
<nav>
<ul class="menu">
<?php
foreach ($menu as $link) {
$item='<li>';
if (substr($_SERVER['REQUEST_URI'], 1) == $link['href']) {
$item.='<a href="'.$link['href'].'" class="active">'.$link['text'].'</a>';
} else {
$item.='<a href="'.$link['href'].'">'.$link['text'].'</a>';
}
$item.='</li>';
print $item;
}
?>
</ul>
</nav>
Как вы можете видеть, я использовал массив вместо какого-то простого HTML, я предлагаю вам сделать то же самое, как для многих вещей, как это возможно. Это делает ваш код более «динамичным» и имеет много преимуществ.
Вот как это делается в JavaScript
<nav>
<ul class="menu">
<li><a href="index.php">Index</a></li>
<li><a href="test.php">Test</a></li>
</ul>
</nav>
<script type="text/javascript">
var menu = document.querySelectorAll('.menu li a');
for (var i = menu.length - 1; i >= 0; i--) {
if (menu[i].href==document.URL) {
menu[i].setAttribute("class", "active");
}
};
</script>
The jsfiddle
И не забывайте, что JQuery делать это ..
<nav>
<ul class="menu">
<li><a href="index.php">Index</a></li>
<li><a href="test.php">Test</a></li>
</ul>
</nav>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$('.menu li a').each(function() {
if ($(this).attr('href')==location.pathname.substr(1)){
$(this).addClass('active');
}
});
</script>
The jsfiddle
Используете ли вы какие-либо рамки? Какой серверный язык вы используете? если таковые имеются? Вы можете добиться этого с помощью серверного языка (например, PHP) или с помощью javascript. Если вы не используете ни один из них, а меню копируется снова и снова на каждой странице, вы можете просто добавить его вручную. –
Какие языки программирования вы хотите использовать для этого? С html это будет невозможно, я так думаю. Укажите свой контент или теги. – Fleuv
@ gdaniel он добавил динамический тег, поэтому он, вероятно, не сделает это вручную. Также он добавил тег addclass, который может ссылаться на функцию jquery 'addClass', чтобы он мог использовать библиотеку jQuery – Fleuv