загрузочная сетка не работает внутри элементов - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть группа кнопок, в каждой из которых будет по 3 кнопки.Мои кнопки - это обычные кнопки начальной загрузки с изображениями для иконок.У меня есть сетка внутри кнопки, использующая интервалы, но изображение значка выталкивается из столбца.

HTML:

<div class="container-fluid">
      <div class="row">
          <div class="col-md-6>
           <div class="row">
                 <div class="btn-group order-type-buttons col-12" 
                 role="group" aria-label="First group">
    <button type="button" class="btn order-type-btn-blue col-4"><span class="col-8 button-text">Online Pick Up</span><span class="col-4 span-img"><img class="img-fluid" src="images/icon%20files/online-pickup-icon.png" alt=""></span></button>
    <button type="button" role="button" class="btn order-type-btn-blue col-4"><span class="col-8 button-text">Online Take out</span><span class="col-4 span-img"><img class="img-fluid" src="images/icon%20files/online-take-out-icon.png" alt=""></span></button>
    <button type="button" class="btn order-type-btn-blue col-4"><span class="col-8 button-text">Pick up</span><span class="col-4 span-img"><img class="img-fluid" src="images/icon%20files/pick-up-icon.png" alt=""></span></button>
</div>
<div class="btn-group order-type-buttons col-12" role="group" aria-label="second group">
    <button  type="button" class="btn order-type-btn-blue col-4"><span class="col-8 button-text">Refund</span><span class="col-4 span-img"><img class="img-fluid" src="images/icon%20files/refund-icon.png" alt=""></span></button>
    <button type="button" class="btn order-type-btn-blue col-4"><span class="col-8 button-text">Room Service</span><span class="col-4 span-img"><img class="img-fluid" src="images/icon%20files/room-service-icon.png" alt=""></span></button>
    <button type="button" class="btn order-type-btn-blue col-4"><span class="col-8 button-text">Take</span><span class="col-4 span-img"><img class="img-fluid rounded" src="images/icon%20files/take-out-icon.png" alt=""></span></button>
</div>
           </div>
          </div>
      </div>
</div>

CSS:

.button-text{
    padding-left: 0;
    padding-right: 0;
}

.order-type-btn-blue{
    background-color: #0082d5;
    font-size:14px;
    color: white;
    text-transform: uppercase;
    margin: 2px 2px 2px 2px;
    padding-right: 0;
    padding-left: 0;
}
.order-type-buttons {
    padding-right: 0;
    padding-left: 0;
}
.span-img{
    padding-right: 0;
    padding-left: 0;
}

Каккнопки выглядят на моей странице:

How Buttons look on page

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Я бы порекомендовал вам использовать элемент блока вместо span, встроенный элемент, следовательно, margin, overflow и некоторые другие функции span будут работать не так, как с div.Чтобы выровнять содержимое в одной строке и по центру по горизонтали, используйте d-flex justify-content-center, а по центру по вертикали - align-items-center.Используйте text-truncate для предотвращения переполнения и добавьте '...' в конце текста.Используйте text-uppercase для преобразования текста в верхний регистр.Надеюсь, это поможет!

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>

<div class="col-12 d-flex">
    <button type="button" class="btn btn-primary col-4 d-flex justify-content-center align-items-center" data-toggle="button">
      <div class="col-8 text-uppercase">Online Pick Up</div>
      <div class="col-4"><img class="img-fluid" src="https://picsum.photos/50" alt=""></div>
    </button>
    
    <button type="button" class="btn btn-primary col-4 d-flex justify-content-center align-items-center" data-toggle="button">
      <div class="col-8 text-uppercase">Online Take Out</div>
      <div class="col-4"><img class="img-fluid" src="https://picsum.photos/50" alt=""></div>
    </button>
    
    <button type="button" class="btn btn-primary col-4 d-flex justify-content-center align-items-center" data-toggle="button">
      <div class="col-8 text-truncate text-uppercase">Online Something Text Pick Up</div>
      <div class="col-4"><img class="img-fluid" src="https://picsum.photos/50" alt=""></div>
    </button>
</div>
0 голосов
/ 06 декабря 2018

Вам нужно больше внимания уделять разметке Bootstrap (HTML).Если вы этого не сделаете, он не будет работать так, как ожидалось.

Определение "сетки" начальной загрузки состоит в том, что должен иметь класс row, а непосредственные потомки имеют класс(е) типа col-*.Простыми словами, столбцы должны быть заключены в строки.Если вы не уважаете это, вы не должны ожидать, что он будет работать так, как задумано.

Если вы хотите еще больше разделить элемент .col-*, вам нужно поместить в него элемент .row и поместитьдругие меньшие .col-* s внутри этого .row.

Кроме того, ваши большие (макет) .row s должны быть прямыми потомками .container или .container-fluid, вы можете иметь .container sвнутри .container-fluid с, но вы не можете иметь .container с внутри .container с.

Если вы внимательно посмотрите на все вышеперечисленные "правила" , они соблюдаются во всех их примерах, но они нигде четко не указаны.Однако, если вы потратите время на то, чтобы понять, как применяется каждый из этих классов, с точки зрения правил CSS, они имеют смысл.

Пример:

.order-type-buttons > .btn:not(#_){
    font-size:14px;
    color: white;
    text-transform: uppercase;
    padding-right: 0;
    padding-left: 0;
    flex-grow: 1;
}
.order-type-buttons > .btn > span {
display: flex;
    justify-content: space-between;
}
.button-text.col {
  flex-grow: 2;
}
.span-img img {
  margin: -7px 0;
  height: 5rem;
  flex-grow: 0;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>

<div class="container">
  <div class="row">
    <div class="col-12">
      <div class="btn-group d-flex order-type-buttons" role="group" aria-label="First group">
        <button type="button" class="btn btn-primary">
          <span class="row align-items-center no-gutters w-100">
            <span class="col button-text">Online Pick Up</span>
            <span class="col span-img d-block">
              <img class="img-fluid" src="https://dummyimage.com/80x80/007bff/fff" alt="">
            </span>
          </span>
        </button>
        <button type="button" role="button" class="btn btn-primary">
          <span class="row align-items-center no-gutters w-100">
            <span class="col button-text">Online Take out</span>
            <span class="col span-img d-block">
              <img class="img-fluid" src="https://dummyimage.com/120x80/007bff/fff" alt="">
            </span>
          </span>
        </button>
        <button type="button" role="button" class="btn btn-primary">
          <span class="row align-items-center no-gutters w-100">
            <span class="col button-text">Pick up</span>
            <span class="col span-img d-block">
              <img class="img-fluid" src="https://dummyimage.com/640x360/007bff/fff" alt="">
            </span>
          </span>
        </button>
      </div>
    </div>
  </div>
</div>

Также обратите внимание, .btn применяет white-space: nowrap ко всем его потомкам, что может быть не тем, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...