Установить цвет на Reactsrap Navlink

Я хотел бы установить белый цвет для моего компонента реакции (Navlink). Ссылка на главную и журналы всегда темная :( Белый цвет никогда не устанавливается. Я использую Reacstrap, Bootstap 4. Я разделяю js с помощью css Вот мой код:

Sidebar.js

import React from 'react';
import { NavLink as RouterNavLink } from 'react-router-dom';
import { Collapse, Navbar, NavbarToggler, NavbarBrand, Nav, NavItem, NavLink 
} from 'reactstrap';
import './Sidebar.css';

export default class Sidebar extends React.Component {
constructor(props) {
super(props);
this.toggleNavbar = this.toggleNavbar.bind(this);
this.state = {
  collapsed: true
};
}
toggleNavbar() {
this.setState({
  collapsed: !this.state.collapsed
});
}
render() {
return (
  <div className = "sidebar">
     <Navbar color = "faded" light>
      <NavbarToggler onClick = {this.toggleNavbar} className = "mr-2" />
      <NavbarBrand href = "/" className = "mr-auto"></NavbarBrand>
<Collapse isOpen = {!this.state.collapsed} navbar>
        <Nav navbar>
          <NavItem>
            <NavLink tag = {RouterNavLink} to = "/"className = "test">Home</NavLink>
          </NavItem>
          <NavItem>
            <NavLink tag = {RouterNavLink} to = "/logs">Logs</NavLink>
          </NavItem>
        </Nav>
      </Collapse>
    </Navbar>
  </div>
);
}
}

и Sidebar.css

.sidebar {
display: flex;
flex-direction: column;
background:  #29363d;
width: 200px;
height: 844px;
}
.test {
font-family: sans-serif;
color: #fff;
}

в вашем файле Sidebar.css измените .test на a.test, компоненты, связанные с навигационной панелью и навигацией, из начальной загрузки имеют собственную окраску, назначенную для a; Кроме того, проверьте свою консоль, чтобы увидеть, где установлен набор правил, назначающий темный цвет вашим ссылкам.

Napoli 09.03.2018 23:34

Я пробую a.test .navbar .navlink{ font-family: sans-serif; color: #fff; }, но цвет все еще темный

Vana 10.03.2018 10:27
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
6
2
15 242
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Набор правил, который вы хотите переопределить по умолчанию для начальной загрузки, выглядит следующим образом

.navbar .navbar-nav>li>a, .navbar .navbar-nav>li>a:hover {
   color: #fff;
}

@Vana вам нужно будет предоставить снимок экрана перезаписываемого правила в консоли разработчика, только тогда вы сможете увидеть, какое правило заменит текущее.

Napoli 13.03.2018 21:00

Я думаю, что проблема может заключаться в «легком» свойстве:

<Navbar color = "faded" light>

Кажется, переопределяет конфигурацию CSS. Я обнаружил, что удаление «света» решило для меня аналогичную проблему.

Альтернативой является использование встроенного стиля в тегах уровня узла:

<NavLink style = {{color: 'white'}}  ...etc.

... но это очень часто повторяется.

Ответ принят как подходящий

Это можно сделать двумя способами (если это кому-то нужно):

Эта страница в NavLink показывает оба способа сделать это:

  1. Использование className

Выше страница определяет следующее:

'className' должно определять стиль NavLink по умолчанию (в настоящее время не активен) в CSS;

activeClassName определяет стиль CSS NavLink активной страницы.

Итак, в вашем коде

<NavLink to = "/" className = "inactive" activeClassName = "active" exact = {true}>Dashboard</NavLink>

затем в CSS (у меня это не сработало ни в одном другом файле CSS, кроме _base.scss, поэтому, если это не сработает, попробуйте его в _base.scss)

.inactive {
    color: #fff;
    text-decoration: none;
}

.active {
    color: red;
    text-decoration: none;
  }

(Примечание: см., Например, этот пример Codepen.IO, подготовленный кем-то другим)

  1. Использование style и activeStyle:

    <NavLink to = "/" style = {{color: 'white', textDecoration: 'none'}} activeStyle = {{color: 'red', textDecoration: 'none'}}>Home</NavLink>
    

Надеюсь, это кому-то поможет!

У меня была аналогичная проблема. Я решил эту проблему с помощью этого:

<Navbar fixed = "top" expand = "md" style = {{ backgroundColor: "#233" }}>

убедитесь, что вы не используете светлый / темный. Это предотвращает настройку.

<NavLink className = "inactive">

затем добавив css:

.inactive {
    color: #fff;
}

.inactive:hover {
    color: #fed136;
}

Для белого цвета текста

Измените свой темный реквизит на white

Например

            <Navbar color='success' dark expand='md' fixed='top'>

Другие вопросы по теме