我无法将我的内容集中在引导程序导航栏中。我正在使用bootstrap 3.我读了很多帖子,但是使用的CSS或方法不能用于我的代码!我真的很沮丧,所以这就像我的最后一个选择。任何帮助将不胜感激!
<!DOCTYPE html>
<html>
<head>
<title>Navigation</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/style.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="container">
<nav class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
<h1>Home</h1>
</div>
<!--JAVASCRIPT-->
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
答案 0 :(得分:449)
我认为这就是你要找的东西。您需要从内部导航中移除float: left
以使其居中并使其成为内联块。
.navbar .navbar-nav {
display: inline-block;
float: none;
vertical-align: top;
}
.navbar .navbar-collapse {
text-align: center;
}
编辑:如果您只希望在相应的媒体查询中将导航未折叠时发生此效果。
@media (min-width: 768px) {
.navbar .navbar-nav {
display: inline-block;
float: none;
vertical-align: top;
}
.navbar .navbar-collapse {
text-align: center;
}
}
答案 1 :(得分:43)
原帖是询问如何将折叠的导航栏居中。要将元素置于普通导航栏上,请尝试以下操作:
.navbar-nav {
float:none;
margin:0 auto;
display: block;
text-align: center;
}
.navbar-nav > li {
display: inline-block;
float:none;
}
答案 2 :(得分:19)
对于布局而言,还有另一种方法可以将导航栏放在容器中,并且不需要任何CSS或Bootstrap覆盖。
只需在导航栏周围放置一个带有Bootstrap container
类的div。这会将链接置于导航栏中心:
<nav class="navbar navbar-default">
<!-- here's where you put the container tag -->
<div class="container">
<div class="navbar-header">
<!-- header and collapsed icon here -->
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<!-- links here -->
</ul>
</div>
</div> <!-- close the container tag -->
</nav> <!-- close the nav tag -->
如果您希望将主体内容对齐到中心导航栏,则还要将该主体内容放在Bootstrap container
标记中。
<div class="container">
<! -- body content here -->
</div>
不是每个人都可以使用这种类型的布局(有些人需要将导航栏本身嵌套在container
内)。尽管如此,如果你能做到这一点,这是一种让你的导航栏链接和身体居中的简单方法。
您可以在此完整页面JSFiddle中看到结果: http://jsfiddle.net/bdd9U/231/embedded/result/
答案 3 :(得分:12)
这段代码对我有用
.navbar .navbar-nav {
display: inline-block;
float: none;
}
.navbar .navbar-collapse {
text-align: center;
}
答案 4 :(得分:5)
更新2018年
Bootstrap 4
Bootstrap 4更容易使Navbar内容居中,您可以在此处看到许多居中方案:https://stackoverflow.com/a/20362024/171456
Bootstrap 3
另一种似乎尚未得到回答的方案是 品牌和导航栏链接。这是一个解决方案..
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 80
struct Student {
char *name; // point to a name string
int id; // student number
char *enroll; // enrollment option: D or X
};
struct Student student1;
void getStudent(struct Student *s)
{
printf("Type the name of the student: ");
s->name = malloc(100); // assume name has less than 100 letters
fgets(s->name, 100, stdin);
printf("\nType the student numner: ");
scanf("%d", &(s->id));
printf("\nType the student enrollment option (D or X): ");
scanf("%c", (s->enroll)); // some bug here
return;
}
void printStudent(struct Student s)
{
char name[MAX_LEN];
char enroll[MAX_LEN];
int id;
s.id = id;
s.name = name;
s.enroll = enroll;
printf("Student Details: %d %s %s \n", s.id, s.name, s.enroll );
return;
}
int main(int argc, char *argv[]){
getStudent(&student1);
printStudent(student1);
return 0;
}
http://www.codeply.com/go/1lrdvNH9GI
另见: Bootstrap NavBar with left, center or right aligned items
答案 5 :(得分:4)
来自bootstrap官方网站(而且,差不多,就像Eric S. Bullington说的那样。
https://getbootstrap.com/components/#navbar-default
示例导航栏如下所示:
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
...etc
以导航为中心,即我所做的:
<div class="container-fluid" id="nav_center">
的CSS:
@media (min-width:768px) { /* don't break navbar on small screen */
#nav_center {
width: 700px /* need to found your width according to your entry*/
}
}
使用class =&#34; container&#34;和navbar-right或left,当然你可以逐个替换id。 :d
答案 6 :(得分:3)
似乎所有这些答案都涉及自定义css在引导程序之上。我提供的答案仅使用bootstrap,所以我希望它可以用于那些想要限制自定义的人。
使用Bootstrap V3.3.7进行测试
<footer class="navbar-default navbar-fixed-bottom">
<div class="container-fluid">
<div class="row">
<div class="col-xs-offset-5 col-xs-2 text-center">
<p>I am centered text<p>
</div>
<div class="col-xs-5"></div>
</div>
</div>
</footer>
答案 7 :(得分:3)
对于Bootstrap 4:
只需使用
<ul class="navbar-nav mx-auto">
mx-auto将完成这项工作
答案 8 :(得分:2)
BootStrap的V4正在按照https://v4-alpha.getbootstrap.com/components/navs/#horizontal-alignment
添加中心(对齐内容中心)和右对齐(对齐内容结束)<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
答案 9 :(得分:1)
使用以下html
<link rel="stylesheet" href="app/components/directives/navBar/navBar.scss"/>
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<!-- Collect the nav links, forms, and other content for toggling -->
<ul class="nav navbar-nav">
<li><h5><a href="#/">Home</a></h5></li>
<li>|</li>
<li><h5><a href="#products">About</a></h5></li>
<li>|</li>
<li><h5><a href="#">Contacts</a></h5></li>
<li>|</li>
<li><h5><a href="#cart">Cart</a></h5></li>
</ul>
</div><!-- /.container-fluid -->
</nav>
和css
.navbar-nav {
width: 100%;
text-align: center;
}
.navbar-nav > li {
float: none;
display: inline-block;
}
.navbar-default {
background-color: white;
border-color: white;
}
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus{
background-color:white;
}
根据您的需要进行修改
答案 10 :(得分:1)
这应该有效
.navbar-nav {
position: absolute;
left: 50%;
transform: translatex(-50%);
}
答案 11 :(得分:0)
因为它应用了flex。你可以使用这个代码
@media (min-width: 992px){
.navbar-expand-lg .navbar-collapse {
display: -ms-flexbox!important;
display: flex!important;
-ms-flex-preferred-size: auto;
flex-basis: auto;
justify-content: center;
}
就我而言,它工作正常。