Bootstrap 4在col div内对齐元素

时间:2017-03-31 17:12:58

标签: css twitter-bootstrap flexbox bootstrap-4 twitter-bootstrap-4

我的问题非常简单,但我没有找到一个正确的方法(我的意思是不使用相对位置容器内的子元素的绝对位置)来在Bootstrap 4中实现这一点。

我有一行col-8和col-4。我在col-4中的内容必须正确对齐,因此其内容位于右边界。

<h1 class="col-md-8">Applications portfolio</h1>

  <div class="btn-group col-md-4" role="group">
    <p class="float-right">
      <a class="btn btn-secondary btn-md" href="#">
        <i class="fa fa-plus" aria-hidden="true"></i> Creation</a>
      <a class="btn btn-md btn-secondary" href="#">
        <i class="fa fa-flag" aria-hidden="true"></i> Report</a>
    </p>
  </div>

这是一个codepen:

https://codepen.io/anon/pen/QpzVgJ

我希望我的两个按钮在col-4中对齐。

如何在Bootstrap 4中正确对齐col中的正确元素?

3 个答案:

答案 0 :(得分:13)

使用 ml-auto 将按钮按到右侧......

https://codepen.io/anon/pen/evbLQN

<div class="btn-group col-md-4" role="group">
    <p class="ml-auto">
      <a class="btn btn-secondary btn-md" href="#">
        <i class="fa fa-plus" aria-hidden="true"></i> Creation</a>
      <a class="btn btn-md btn-secondary" href="#">
        <i class="fa fa-flag" aria-hidden="true"></i> Report</a>
    </p>
</div>

另一种选择是从btn-group中移除col-md-4,然后 float-right 将按预期工作。在Bootstrap 4中,pull-right类被 float-right 取代。

<section class="row">
  <h1 class="col-md-8">Applications portfolio</h1>

  <div class="col-md-4" role="group">
    <p class="float-right">
      <a class="btn btn-secondary btn-md" href="#">
        <i class="fa fa-plus" aria-hidden="true"></i> Creation</a>
      <a class="btn btn-md btn-secondary" href="#">
        <i class="fa fa-flag" aria-hidden="true"></i> Report</a>
    </p>
  </div>
</section>

PS - 要防止Codepen中出现水平滚动条,请确保将.row放在container-fluid内。此外,通常 col-*用于包含内容,不应该应用于其他组件/元素。因此,例如,如果您想使用btn-group ..

<div class="container-fluid">
    <section class="row">
        <div class="col-md-8">
            <h1>Applications portfolio</h1>
        </div>
        <div class="col-md-4">
            <div class="btn-group float-right mt-2" role="group">
                <a class="btn btn-secondary btn-md" href="#">
                    <i class="fa fa-plus" aria-hidden="true"></i> Creation</a>
                <a class="btn btn-md btn-secondary" href="#">
                    <i class="fa fa-flag" aria-hidden="true"></i> Report</a>
            </div>
        </div>
    </section>
</div>

http://www.codeply.com/go/8OYDK5D8Db

相关:Right align element in div class with bootstrap 4

答案 1 :(得分:4)

该md-4中的btn-group类使该DIV成为一个Flex容器,因此对齐的常规text-right类将不起作用。而是在样式属性中添加justify-content: flex-end;

<div class="btn-group col-md-4 text-right" role="group" style="justify-content: flex-end;">

https://codepen.io/anon/pen/RpEYEM

(注意:我删除了DIV中的p标签)

答案 2 :(得分:3)

提供的标记存在一些问题,使布局看起来很奇怪。 @ZimSystem对.container-fluid进行了修改,但你应该在div.col内总是有一个.row,这样你就可以在边缘获得相同的填充。

按钮周围不需要<p>。要获得对齐,只需将.ml-auto添加到第一个按钮,如下所示:

<div class="container-fluid">
<section class="row mb-2 mt-2">
  <h1 class="col-md-8">Applications portfolio</h1>

  <div class="btn-group col-md-4" role="group">
      <a class="btn btn-secondary btn-md ml-auto" href="#">
        <i class="fa fa-plus" aria-hidden="true"></i> Creation</a>
      <a class="btn btn-md btn-secondary" href="#">
        <i class="fa fa-flag" aria-hidden="true"></i> Report</a>
  </div>
</section>

<section class="row" style="background-color: grey; height: 50px; overflow:hidden;">
  <div class="col">
    <p>Just a simple reference block to see the 100% width</p>
  </div>
</section>
</div>