У меня есть тег привязки «Домой», на котором отображается домашняя страница, а еще один — «Книги» на этой странице отображения книг. Теперь, когда я нажимаю на ссылку «Главная», я хочу, чтобы она изменила свой цвет и сохраняла тот же цвет, пока я не нажму на другую ссылку. Точно так же, когда я нажимаю ссылку «Книги», я хочу, чтобы она изменила этот цвет и сохраняла тот же цвет, пока я не нажму другую ссылку.
Я могу сделать это с помощью JavaScript, но я хочу знать, как я могу добиться этого, используя только CSS?
Пробовал с a:active, но не работает.
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<link rel = "preconnect" href = "https://fonts.googleapis.com">
<link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin>
<link href = "https://fonts.googleapis.com/css2?family=Literata:opsz,[email protected],300&display=swap" rel = "stylesheet">
<link rel = "stylesheet" href = "styles.css">
<title>Bookstore</title>
</head>
<body>
<div class = "container">
<ul>
<li><a href = "home.html">Home</a></li>
<li><a href = "books.html">Books</a></li>
</ul>
</div>
</body>
</html>
HTML code
<a tabindex = "1">Your Button</a>
CSS code
a {
color: black;
font-size: 30px;
}
a:active {
color: rebeccapurple;
}
a[tabindex]:focus {
color:rebeccapurple;
}
Вы можете сделать это так, используйте focus
, но если использовать только это, стиль будет потерян, как только другой элемент получит фокус, поэтому добавьте класс к вашему a
, как в моем примере link
, а затем используйте его в CSS, как показано ниже:
a {
color: black;
text-decoration: none;
font-size: 20px;
}
a:focus {
color: red;
}
:link {
color: red;
}
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<link rel = "preconnect" href = "https://fonts.googleapis.com">
<link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin>
<link href = "https://fonts.googleapis.com/css2?family=Literata:opsz,[email protected],300&display=swap" rel = "stylesheet">
<link rel = "stylesheet" href = "styles.css">
<title>Bookstore</title>
</head>
<body>
<div class = "container">
<ul>
<li><a href = "#" class = "link">Home</a></li>
<li><a href = "#" class = "link">Books</a></li>
</ul>
</div>
</body>
</html>
Добавление tabindex к каждому элементу привязки позволяет применить псевдокласс :focus:
<style>
ul li a {
color: #000;
}
ul li a:focus {
color: red;
}
ul li a:selected {
color: red;
}
</style>
<ul>
<li><a tabindex = "1" href = "#" class = "selected"> item1 </a></li>
<li><a tabindex = "1" href = "#" class = "selected"> item2 </a></li>
<li><a tabindex = "1" href = "#" class = "selected"> item3 </a></li>
</ul
Это не сохраняет цвет как rebeccapurple. Я хочу, чтобы он оставался как rebeccapurple, пока я не нажму на другую ссылку.