【问题标题】:set color to Reactsrap Navlink将颜色设置为 Reactsrap Navlink
【发布时间】:2018-08-18 03:19:56
【问题描述】:

我想为我的反应组件 (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,引导程序中的 navbar 和 navlink 相关组件有自己的颜色分配给 a;另外,请检查您的控制台以查看将深色分配给链接的规则集在哪里。
  • 我试试a.test .navbar .navlink{ font-family: sans-serif; color: #fff; },但颜色还是很暗

标签: css reactjs reactstrap


【解决方案1】:

有两种方法(如果其他人需要):

This page on NavLink 显示了两种方法:

  1. 使用类名

以上页面定义如下:

'className' 应该在 CSS 中定义默认(当前未激活)NavLink 的样式;

'activeClassName' 定义活动页面的 NavLink CSS 样式。

所以在你的代码中

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

然后在 CSS 中(它在除 _base.scss 之外的任何其他 CSS 文件中都对我不起作用 - 所以如果它不起作用,请在 _base.scss 中尝试)

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

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

(注:参见例如this Codepen.IO example由其他人准备)

  1. 使用'style'和'activeStyle':

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

希望对某人有所帮助!

【讨论】:

    【解决方案2】:

    我认为问题可能在于:

    <Navbar color="faded" light>
    

    似乎覆盖了 CSS 配置。我发现删除“光”为我解决了类似的问题。

    另一种方法是在节点级标签中使用内联样式:

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

    ...但这会变得非常重复。

    【讨论】:

      【解决方案3】:

      要覆盖引导程序默认颜色的规则集如下

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

      【讨论】:

      • @Vana,您需要提供在您的开发控制台中被覆盖的规则的屏幕截图,然后您才能看到哪个规则将取代当前规则。
      【解决方案4】:

      我有类似的问题。我用这个解决了这个问题:

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

      请确保您不使用明暗。它会阻止自定义。

      <NavLink className="inactive">
      

      然后添加css:

      .inactive {
          color: #fff;
      }
      
      .inactive:hover {
          color: #fed136;
      }
      

      【讨论】:

        【解决方案5】:

        对于白色文本颜色

        将你的黑暗道具更改为white

        例如

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-07
          • 2012-10-17
          • 2012-04-30
          • 1970-01-01
          • 2011-10-16
          • 2019-09-06
          • 1970-01-01
          • 2021-11-29
          相关资源
          最近更新 更多