也许晚了 1 年,但我有相同的 problem 并且找不到答案。我发现内联 css 对我不起作用,所以我必须定义一个用于样式的自定义类。
您的问题的解决方案是使用text-align: center 设置导航栏品牌或任何其他元素的样式,但是,除非您还指定width: 100%,否则这将不起作用。请访问我提供的链接以查看我解决问题的方法。
这是 OP 上次编辑后的编辑:
我找到了两种方法来实现您想要实现的目标。一个不是很敏感,我不推荐。
第一种方法:
删除 CSS 中的所有内容并保留
.center-navbar {
width:30%;
margin-left: 35%;
}
第二种方法:
删除 css 中的所有内容,您将使用 React Bootstrap 提供的 layout grid。现在您在 Index.js 中的代码将如下所示:
import React from "react";
import { render } from "react-dom";
import { Navbar, Nav, NavItem, NavDropdown, Glyphicon, Grid, Row, Col } from "react-bootstrap";
import "./index.css";
const App = () => (
<div>
<Grid>
<Row className="show-grid">
<Col xs={4} md={4}>
</Col>
<Col xs={4} md={4}>
<div>
<Navbar collapseOnSelect>
<Navbar.Header>
<Navbar.Brand>Logo</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<NavItem eventKey="a" href="#">
Link1
</NavItem>
<NavItem eventKey="b" href="#">
Link2
</NavItem>
</Nav>
</Navbar.Collapse>
</Navbar>
</div>
</Col>
</Row>
</Grid>
<h2 style={{ textAlign: "center" }}>This is some text</h2>
</div>
);
render(<App />, document.getElementById("root"));
但是有一个问题。我建议你学习 W3C(万维网联盟)并了解为什么不建议将 Logo 放置在屏幕中间。如果您查看大多数网站(Stackoverflow、Amazon、eBay,不胜枚举),它们不会在中间使用徽标,而是在左侧使用。这是一个标准,因此没有太多建议。我不建议使用我提供的解决方案,除非这正是您完成您想要实现的目标的唯一方法。