我想在导航栏中有一个按钮:
- 与其余的导航栏元素内联(即它不会被推到下一行);
- 位于折叠的导航栏部分之外;和
- 在所有屏幕分辨率下始终位于页面中央(包括导航栏右侧折叠时)。
我在以下方面有特殊问题:
- 使按钮居中;和
- 某些导航栏元素不适用于较小的屏幕分辨率(当导航栏折叠时)。
下面是我的代码。
我尝试过的替代 CSS:
.navbar-button {
position: absolute;
left: 0;
width: 100%;
text-align: center;
white-space: nowrap;
}
但这导致其他一些导航栏链接不起作用。我随后尝试使用 z-index
,但它似乎没有用。
body {
padding-top: 50px;
padding-bottom: 20px;
}
.section {
margin-bottom: 30cm;
}
.navbar-button {
display: inline-block;
text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Test</title>
<!-- Bootstrap Core CSS -->
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#brand">Brand</a>
<div class="navbar-button">
<button type="button" class="btn btn-primary navbar-btn">Button</button>
</div>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="text-center">
<a href="#link1">Link-1</a>
</li>
<li class="text-center">
<a href="#link2">Link-2</a>
</li>
<li class="text-center">
<a href="#link3">Link-3</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="section" id="brand">
<h3>Top</h3>
</div>
</div>
<div class="row">
<div class="section" id="link1">
<h3>Section-1</h3>
</div>
</div>
<div class="row">
<div class="section" id="link2">
<h3>Section-2</h3>
</div>
</div>
<div class="row">
<div class="section" id="link3">
<h3>Section-3</h3>
</div>
</div>
</div>
</body>
</html>
最佳答案
您可以使用 position : absolute 但不要应用 100% 宽度,因为它很可能会覆盖您的链接/切换按钮。您还可以将 .navbar-btn 直接应用于外部 div 内的按钮。
示例 CSS:
.button-center {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
工作示例:
body {
padding-top: 50px;
padding-bottom: 20px;
}
.section {
margin-bottom: 30cm;
}
.button-center {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="https://www.github.com" target="_blank">Brand</a>
<button type="button" class="btn btn-primary navbar-btn button-center">Button</button>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="text-center">
<a href="https://www.github.com" target="_blank">Test Link</a>
</li>
<li class="text-center">
<a href="#link2">Link-2</a>
</li>
<li class="text-center">
<a href="#link3">Link-3</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="section" id="brand">
<h3>Top</h3>
</div>
</div>
<div class="row">
<div class="section" id="link1">
<h3>Section-1</h3>
</div>
</div>
<div class="row">
<div class="section" id="link2">
<h3>Section-2</h3>
</div>
</div>
<div class="row">
<div class="section" id="link3">
<h3>Section-3</h3>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
关于css - Bootstrap 导航栏中的中心按钮(折叠外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576144/