如何使引导程序4工具栏居中

时间:2018-01-16 13:34:56

标签: css twitter-bootstrap bootstrap-4

我正在尝试水平居中工具栏。我找到了很多不同的解决方案,但似乎没有一个在bootstrap 4中工作。

这是我得到的最接近但是它要求我给出一个宽度。工具栏将自己放在面板的最左侧。工具栏中的项目数可能会有所不同,因此工具栏永远不会真正居中。如何正确居中工具栏?

<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

		<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
		<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>

		<link href="css/bootstrap.min.css" rel="stylesheet"> 
		<link href="css/main.css" rel="stylesheet"> 
	</head>

	<body class="bg-secondary">
		<div class="mx-auto" style="width: 300px; background:red">
			Centered element<br/>
			<div class="btn-toolbar mx-auto" role="toolbar">
				<div class="btn-group mr-2" role="group" aria-label="First group">
					<button type="button" class="btn btn-primary">1</button>
					<button type="button" class="btn btn-primary">2</button>
					<button type="button" class="btn btn-primary">3</button>
					<button type="button" class="btn btn-primary">4</button>
				</div>
			</div>
		</div>
	</body>

</html>

编辑:这不是[https://stackoverflow.com/questions/43952368]的副本。这个问题是关于容器中的 navbar ,而不是工具栏。我在搜索时看到了这个问题,但我看不出它如何应用于所提供的HTML。 enter image description here

3 个答案:

答案 0 :(得分:3)

有多种方法。您可以显示工具栏:内联块(d-inline-block)并在父级上使用 text-center

https://www.codeply.com/go/U3sXVBzDK4

   <div class="text-center">
      <div class="d-inline-block" style="background:red">
            Centered element<br/>
            <div class="btn-toolbar mx-auto" role="toolbar">
                <div class="btn-group mr-2" role="group" aria-label="First group">
                    <button type="button" class="btn btn-primary">1</button>
                    <button type="button" class="btn btn-primary">2</button>
                    <button type="button" class="btn btn-primary">3</button>
                    <button type="button" class="btn btn-primary">4</button>
                </div>
            </div>
        </div>
     </div>

另一种方法是在父级(d-flex)上使用flexbox justify-content-center

<div class="d-flex justify-content-center">
    <div class="btn-toolbar mx-auto" role="toolbar">
        <div class="btn-group" role="group" aria-label="First group">
            <button type="button" class="btn btn-primary">1</button>
            <button type="button" class="btn btn-primary">2</button>
            <button type="button" class="btn btn-primary">3</button>
            <button type="button" class="btn btn-primary">4</button>
        </div>
    </div>
</div>

答案 1 :(得分:1)

另一个可能更符合您需求的解决方案就是将justify-content-center简单地添加到您的btn-toolbar中,如下所示:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/js/bootstrap.min.js" integrity="sha384-a5N7Y/aK3qNeh15eJKGWxsqtnX/wWdSZSKp+81YjTmS15nvnvxKHuzaWwXHDli+4" crossorigin="anonymous"></script>

<div class="container-fluid">
  <div class="row">
      <div class="col-12" style="background:red">
    
        <div class="btn-toolbar justify-content-center" role="toolbar" aria-label="Toolbar with button groups">
          <div class="btn-group mr-2" role="group" aria-label="First group">
          <button type="button" class="btn btn-secondary">1</button>
          <button type="button" class="btn btn-secondary">2</button>
          <button type="button" class="btn btn-secondary">3</button>
          <button type="button" class="btn btn-secondary">4</button>
        </div>

        <div class="btn-group mr-2" role="group" aria-label="Second group">
          <button type="button" class="btn btn-secondary">5</button>
          <button type="button" class="btn btn-secondary">6</button>
          <button type="button" class="btn btn-secondary">7</button>
        </div>
        
        <div class="btn-group" role="group" aria-label="Third group">
          <button type="button" class="btn btn-secondary">8</button>
        </div>
        
    </div>
  </div>
</div>

无需依赖包装,或应用inline-block并且不得不关注自己的意外空白。

答案 2 :(得分:0)

例如,使用flexbox将它们居中。此外,您的文本最好是在p标签内,而不仅仅是div标签。

.mx-auto {
  display: flex;
  height: 100%;
  flex-direction: column;
  align-self: center;
}

p {
  align-self: center;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>

  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/main.css" rel="stylesheet">
</head>

<body class="bg-secondary">
  <div class="mx-auto" style="width: 300px; background:red">
    <p>Centered element</p><br/>
    <div class="btn-toolbar mx-auto" role="toolbar">
      <div class="btn-group mr-2" role="group" aria-label="First group">
        <button type="button" class="btn btn-primary">1</button>
        <button type="button" class="btn btn-primary">2</button>
        <button type="button" class="btn btn-primary">3</button>
        <button type="button" class="btn btn-primary">4</button>
      </div>
    </div>
  </div>
</body>

</html>