【发布时间】:2020-08-10 04:09:16
【问题描述】:
我是 React 和 Boostrap 的新手,所以我开始使用 react-bootstrap 来玩它们。我听说覆盖 boostrap CSS 的最简单方法之一是在 bootstrap CSS 之上应用你自己的 CSS。所以我有以下页面
我有以下 App.js
import React from 'react';
import Nav from 'react-bootstrap/Nav';
import Navbar from 'react-bootstrap/Navbar';
import Container from 'react-bootstrap/Container';
import Row from 'react-bootstrap/Row';
import Col from 'react-bootstrap/Col';
import "bootstrap/dist/css/bootstrap.css";
import './App.css';
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';
function App() {
return (
<Router>
<Container fluid>
<Navbar bg="dark" expand="lg" id="navbar-parent">
<Navbar.Brand href="#home" id="navigation-bar">TURLS</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav"/>
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="mr-auto" variant="pills">
<Nav.Link href="#home" className="whte">Home</Nav.Link>
<Nav.Link href="#api" className="whte">API</Nav.Link>
</Nav>
</Navbar.Collapse>
</Navbar>
</Container>
</Router>
);
}
export default App;
以下是App.css
#navigation-bar {
border-style: solid;
padding: 15px;
border-radius: 50px;
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
font-weight: 900;
color: white;
border-width: 5px;
font-size: 1.5em;
}
#navigation-bar:hover {
color: #3399ff;
}
.whte {
color: white;
}
我能够使用自己的 CSS 覆盖 Nav.Brand 的字体和颜色,并使用 CSS #id 选择器引用它。但我无法使用自定义 CSS 类 .whte 覆盖 Nav.Link。我试图覆盖 Home 和 API 的颜色,想更改字体、pills 大小和背景颜色,但我不知道怎么做。
我可以使用!important 更改文本的颜色,但我在某处读到使用它不是自定义事物的好方法。检查元素后,我发现 Nav.Links 正在从以下 CSS 类中获取颜色,尽管我的自定义类 .whte
.navbar-light .navbar-nav .nav-link {
color: rgba(0,0,0,.5);
}
同样我发现蓝色的nav-pills实际上是以下类的一部分
.navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {
color: rgba(0,0,0,.9);
}
和
.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
color: #fff;
background-color: #007bff;
}
我不确定要自定义哪些类来实现我想要的效果。我尝试添加我自己的 CSS 实现,但这不起作用。
那么通常如何自定义引导 css?我应该覆盖与 boostrap 元素关联的所有 CSS 类吗?或者我应该在每个元素上添加一个 ID,并使用相同的代码分别自定义每个元素。
如果问题过于幼稚或模棱两可,我深表歉意,我只是想了解在 React Bootstrap
中更改或自定义引导 CSS 的推荐方法感谢您的帮助
【问题讨论】:
-
Nav.Link的优先级高于.whte。如果你想覆盖Nav.link,你必须像Nav.whte{...}那样编写你的选择器,或者使用#id.whte{...}。
标签: javascript css reactjs bootstrap-4 react-bootstrap