отменить эффект наведения для одной кнопки в навигационной панели

У меня есть панель навигации с черным фоном и белым текстом. При наведении курсора текст становится красным. однако, когда пользователь находится на странице выбора, этот конкретный фон изменится на красный. однако при наведении курсора текст становится красным. Я хочу, чтобы когда пользователь находится на домашней странице и наводит курсор на кнопку «Домой», текст не меняется на красный.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TL Custom Printing</title>

<link rel="stylesheet" type="text/css" href="stylesheet.css" />


</head>

<body>

<div id="topbar">
</div>

<div id="navbar">
    <div id="navbtn">
        <ul>
            <li><a href="index.php" style="background-color:#F00;">Home</a></li>
            <li><a href="custom.php" >Custom Printing</a></li>
            <li><a href="store.php">Products</a></li>
            <li><a href="gallery.php">Gallery</a></li>
            <li><a href="about.asp">About</a></li>
            <li><a href="contact.asp">Contact Us</a></li>
        </ul>
    </div>
</div>

<div id="logo">
    <img src="testlogo.png" alt="logo">
</div>



</body>

</html>

CSS:

#navbtn {
    width:100%;
    Margin:20px;
    white-space: nowrap;
    text-align:center
}

ul {
    width:100%;
    list-style:none;
    margin:0;
    padding:0;
    display: inline-block;
    padding-top: 2.25em;
}

li {
    width: 140px;
    display: inline-block; 
}

a {
    text-align:center;
    font-size: 1.25em;
    padding:8px 0;
    display:block;
    width:100%;
    text-decoration:none;
    color:#FFF;
    border-top-left-radius:8px;
    border-top-right-radius:8px;

}

a:hover {
    color:#F00;
    background-color:#000;
}

person Ross Watson    schedule 14.07.2014    source источник
comment
Так как же назначить «текущей» странице bg-color? Не встроенный, как вы указали здесь... верно?   -  person Paulie_D    schedule 14.07.2014
comment
Прямо сейчас вы сделали это с помощью встроенного CSS, который не будет отзывчивым, но вы, скорее всего, можете добиться этого, используя псевдокласс :active.   -  person TylerH    schedule 14.07.2014
comment
:active работает только при наведении мыши... не указывает на текущую страницу.   -  person Paulie_D    schedule 14.07.2014


Ответы (2)


Вы можете легко исправить это с помощью активного класса: JSFiddle

<li><a href="index.php" class="active">Home</a></li>

a.active {
    background-color:#F00;
}
a.active:hover {
    color: #fff;
}

Я также добавил цвет фона вашей активной вкладки в класс .active, удалив ваш встроенный стиль.

person JRulle    schedule 14.07.2014
comment
+1. Затем вы можете повторно использовать class="active" на любой из ваших ссылок с вкладками для других страниц, чтобы каждая страница могла быть активной, когда они отображаются. - person Kinnectus; 14.07.2014

Вы можете добавить:

<style type="text/css">
    a:hover {
    color:#FFF !important;
    background-color:#000;
    }
</style>

На ваших html-страницах, но в вашем «доме», поэтому он перепишет основной лист css.

person Alvaro Menéndez    schedule 14.07.2014