Я построил очень простую панель навигации в bootstrap 4. Моя цель - сделать font-color из .active class черным, чтобы показать, на какой странице пользователь находится в данный момент.
Как ни странно, класс .active применяется к таким свойствам, как font-weight, border, background or text-decoration, но НЕ color.
Вот ручка:
<p data-height = "265" data-theme-id = "0" data-slug-hash = "pVOoXr" data-default-tab = "html,result" data-user = "fdhu" data-embed-version = "2" data-pen-title = "color-property-issue" class = "codepen">See the Pen <a href = "https://codepen.io/fdhu/pen/pVOoXr/">color-property-issue</a> by ferdinand huber (<a href = "https://codepen.io/fdhu">@fdhu</a>) on <a href = "https://codepen.io">CodePen</a>.</p>
<script async src = "https://static.codepen.io/assets/embed/ei.js"></script>
Кто-нибудь может мне подсказать, как это решить?
<!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">
<title>color property issue</title>
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity = "sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin = "anonymous">
<style>
.active {
font-weight: bold; /*applies*/
border: 2px solid red; /*applies*/
background: yellow; /*applies*/
text-decoration: underline; /*applies*/
color: black; /*doesn't apply, neither by adding !important*/
}
</style>
</head>
<body>
<nav class = "navbar navbar-expand">
<div class = "navbar-nav">
<div class = "nav-item active">
<a class = "nav-link" href = "#">Link-1</a>
</div>
<div class = "nav-item">
<a class = "nav-link" href = "#">Link-2</a>
</div>
</div>
</nav>
</body>
</html>






просто дайте вам propertycolor:#000!important;important свойство, дайте активный класс вашему тегу привязки.
Придайте цвет тегу привязки <a>. Поскольку гиперссылки принимают цвет по умолчанию, а также переопределяют родительский .active
.active a {
color: black;
}
Да, bootstrap удаляет подчеркивание для тегов <a> :)
Цвет По умолчанию блока ссылка на сайт имеет приоритет над цветом унаследованный блока div.
Вам нужно сделать селектор более конкретным, чтобы он применялся к самой ссылке.
.active a {
font-weight: bold;
border: 2px solid red;
background: yellow;
text-decoration: underline;
color: black;
}<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity = "sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin = "anonymous">
<nav class = "navbar navbar-expand">
<div class = "navbar-nav">
<div class = "nav-item active">
<a class = "nav-link" href = "#">Link-1</a>
</div>
<div class = "nav-item">
<a class = "nav-link" href = "#">Link-2</a>
</div>
</div>
</nav>Вам нужно сделать класс .active a в вашем css
.active {
font-weight: bold; /*applies*/
border: 2px solid red; /*applies*/
background: yellow; /*applies*/
text-decoration: underline; /*applies*/
color: black; /*doesn't apply, neither by adding !important*/
}
.active a {
color: #000;
}<nav class = "navbar navbar-expand">
<div class = "navbar-nav">
<div class = "nav-item active">
<a class = "nav-link" href = "#">Link-1</a>
</div>
<div class = "nav-item">
<a class = "nav-link" href = "#">Link-2</a>
</div>
</div>
</nav>
P.S. Мне также было интересно, почему это происходит только с «цветом», а не с «подчеркиванием», которое также по умолчанию установлено в <a>. Думаю, причина в том, что код построен на Bootstrap. Reboot.css в bootstrap по умолчанию удаляет подчеркивание для <a>.