Bootstrap 4 выравнивает элементы прямо внутри col div

мой вопрос довольно прост, но я не нахожу правильного способа (я имею в виду не использовать абсолютное позиционирование субэлементов внутри контейнера относительной позиции) для достижения этого в 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 ответов


использовать 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 будет работать, как ожидалось. The pull-right класса был заменен на float-right в Bootstrap 4.

<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


по теме: правый выравнивающий элемент в классе div с bootstrap 4


на btn-groupкласс в этом md-4 делает этот 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

(примечание: Я удалил p тег внутри этого DIV)


есть несколько проблем с разметкой при условии, что макет выглядит странно. @ZimSystem menioned .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>