Константин К.
14 сообщений
#13 лет назад
Здравствуйте, форумчане.
Возник такой банальный вопрос: как после нажатия на один из элементов меню сделать так, чтобы к этому (нажатому элементу) применился стиль (цвет, убралось подчеркивание и оранжевый фон?
Пробовал псевдоклассами, но вышло только под ФФ и Оперу, а под Хром не работает вообще!
Пример:

<div id="left_menu">
<ul>
<span style="font-size:18px; font-family:Georgia;">О компании</span>
<ul>
<li><a href="#">Наша миссия</a></li>
<li><a href="#">Сертификаты</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</ul>
...... еще вложенный <ul> </ul>
</div>

CSS:
#left_menu ul li a:hover{
color:#9d2a37; text-decoration:none; background:#f7f1cd; border-radius:5px; padding-left:10px; padding-right:10px; font-size:16px; font-style: regular; font-family:Georgia;
}

#left_menu ul li a:focus{
color:#9d2a37; text-decoration:none; background:#f7f1cd; border-radius:5px; padding-left:10px; padding-right:10px; font-style: regular; font-family:Georgia; font-size:16px; }

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

HTML:
<head>
<style type="text/css">
.selected {font-size:16px; font-family:Georgia; color:#9d2a37; background:#f7f1cd;
border-radius:5px;
text-decoration:none;
}
</style>
<script language="JavaScript" type="text/javascript">
var Lst;

function CngClass(obj){
if (Lst) Lst.className='';
obj.className='selected';
Lst=obj;
}
</script>
</head>

<div id="left_menu">
<ul>
<span style="font-size:18px; font-family:Georgia;">О компании</span>
<ul>
<li><a onclick="CngClass(this);" href="#">Наша миссия</a></li>
<li><a onclick="CngClass(this);" href="#">Сертификаты</a></li>
<li><a onclick="CngClass(this);" href="#">Контакты</a></li>
</ul>
...... еще вложенный <ul>

</ul>
</div>


text-decoration:none; - прописано, а подчеркивание осталось в Хроме.. в чем причина?
Константин К.
14 сообщений
#13 лет назад
Чтобы было наглядней, выложил на фрихост.



Напомню зачаду: Меню слева - рамка вокруг текста должна быть при наведении, и остаться у выбранного пункта. То есть если мы смотрим страницу "Охлажденное мясо", то пункт долден быть выделен баграундом и убиралось подчеркивание.

Спасибо заранее!
Роман В.
99 сообщений
#13 лет назад
konstantinskiy,
#left_menu ul li a:hover { 

меняете на
#left_menu ul li a:hover, #left_menu ul li a.active  { 

и к нужному пункту меню додбавлете класс active
<a class="active" href="#">Мясо</a>
Константин К.
14 сообщений
#13 лет назад
Цитата ("r0b1n"):
konstantinskiy,
#left_menu ul li a:hover { 

меняете на
#left_menu ul li a:hover, #left_menu ul li a.active  { 

и к нужному пункту меню додбавлете класс active
<a class="active" href="#">Мясо</a>


Сделал как посоветовали, но вышло вот как


А мне надо, чтобы был выделен после нажатия только 1 пункт, вот так
Роман Титок
359 сообщений
#13 лет назад
konstantinskiy, не знаю почему у вас не получилось. r0b1n все правильно советовал. Вот рабочий пример (правда сделал немного по другому, но принцип тот же). И зачем скрипты вообще нужны? Все это предусмотрено в любой CMS (активному пункту добавляется какой-то класс)

P.S. а если уж так необходимо с помощью скриптов, значит нужно здесь Цитата ("konstantinskiy"):
HTML:
<head>
<style type="text/css">
.selected {font-size:16px; font-family:Georgia; color:#9d2a37; background:#f7f1cd;
border-radius:5px;
text-decoration:none;
}


вместо text-decoration:none; добавить text-decoration:none !Important;
Роман В.
99 сообщений
#13 лет назад
konstantinskiy, дык Вы присваивайте одному нужному элементу, тому который должен быть выделен класс active, остальные не трогайте.
Константин К.
14 сообщений
#13 лет назад
TitokR, Спасибо, со скриптом помогло. Как раз то, что я хотел.
r0b1n, И вам спасибо, смысл я понял. Да, почитал что если на cms, то нужно присваивать лучше класс элементу и все будет работать.
Всем спасибо за участие. Тема закрыта!