Изменение цвета BG выбранной ссылки - PullRequest
1 голос
/ 16 октября 2008

У меня есть меню, которое я использую, и оно меняет цвет фона при наведении курсора на a:hover, но я хочу знать, как изменить class=line так, чтобы он завис

Так из дома, если они нажимают контакты с домашними страницами

из (a href = "#" class = "clr") в (a href = "#")

и контакты изменится

из (a href = "#") в (a href = "#" class = "clr")

любая помощь?

JD

Ответы [ 5 ]

4 голосов
/ 16 октября 2008

Полагаю, вы хотите выделить элемент навигации, на котором вы находитесь. Мой ответ здесь вполне справедлив и в этом вопросе, я считаю:

Это лучшее семантическое соответствие и, вероятно, более простая переменная для установки, чтобы навигация всегда использовала одни и те же классы или идентификаторы и изменяла только идентификатор элемента body:

<li id="homeNav">home</li>
<li id="blogNav">blog</li>

, а затем на каждой странице ...

<body id="home">
<body id="blog">

А в css:

#home #homeNav {background-image:url(homeNav-on.jpg);}
#blog #blogNav {background-image:url(blogNav-on.jpg);}
1 голос
/ 16 октября 2008

Механизм, который мы часто используем, заключается в том, что на теле есть несколько общих слушателей событий, и все необходимые события всплывают. После обнаружения мы проверяем определенное имя className (или шаблон className) в инициирующем элементе. Если такое имя класса найдено, мы считаем его идентификатором состояния и запускаем поведение на основе таких состояний.

Например, мы определили пары className (такие как «selected» и «unselected») с переключением по умолчанию. Или сделайте их эксклюзивными, предоставив родительскому элементу className «exclusive-selected».

Простой механизм, подобный этому, может быть расширен по вашему вкусу и может быть очень мощным.

Позвольте мне опубликовать простую демонстрацию. Не является общим, но это просто для иллюстрации внутренней работы такого механизма. В этом примере я считаю, что пара className "selected" и "unselected" является эксклюзивной.

<html>
  <head>
    <script>
      document.onclick = function(evt) {
        var el = window.event? event.srcElement : evt.target;
        if (el && el.className == "unselected") {
          el.className = "selected";
          var siblings = el.parentNode.childNodes;
          for (var i = 0, l = siblings.length; i < l; i++) {
            var sib = siblings[i];
            if (sib != el && sib.className == "selected")
              sib.className = "unselected";
          }
        }
      }
    </script>
    <style>
      .selected { background: #f00; }
    </style>
  </head>
  <body>
    <a href="#" class="selected">One</a> 
    <a href="#" class="unselected">Two</a> 
    <a href="#" class="unselected">Three</a>
  </body>
</html>

Должно работать в IE, Firefox и других браузерах. Конечно, этот механизм можно сделать универсальным и реализовать все виды состояний и поведений className.

1 голос
/ 16 октября 2008

Способ изменить класс (я полагаю, вы говорите о DOM), в JavaScript это:

document.getElementById("element").className='myClass';

Надеюсь, это поможет.

0 голосов
/ 16 октября 2008

Вы можете попробовать jQuery (jquery.com).

Используя jQuery, вы изменили бы класс (и прикрепили его) следующим образом:

$('#link-id').addClass('your-class');

Вы можете привязать код к ссылкам следующим образом:

$('#link-id').mouseover(
   function(){
      $(this).addClass('your-class');
   }
);

http://docs.jquery.com/Attributes

0 голосов
/ 16 октября 2008

Это может не относиться к вам, но может привести вас на правильный путь. Если вы используете PHP, вставьте это в голову перед объявлением doctype или тегом (x) html:

<?php
  // Get current page file name
  $url = Explode('/', $_SERVER["PHP_SELF"]);
  $page = $parts[count($url) - 1];
?>

Затем, в вашем пункте меню, где вы хотите обозначить класс, поместите следующее, но замените «index.php» на имя страницы:

<?php if ($page == "index.php") echo ' class="current"' ?>

Так что в конечном итоге ваше меню должно выглядеть примерно так:

<div id="navigation">
  <ul>
    <li><a href="index.php"<?php if ($page == "index.php") echo ' class="current"' ?>>Home</a></li>
    <li><a href="page1.php"<?php if ($page == "page1.php") echo ' class="current"' ?>>Resume</a></li>
    <li><a href="page2.php"<?php if ($page == "page2.php") echo ' class="current"' ?>>Photography</a></li>
  </ul>
</div>

Последний шаг - добавление CSS:

#navigation ul li a.current {
  background-color: #FFF;
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...