Почему мои cols flex-grow в Bootstrap 4 не выровнены? - PullRequest
1 голос
/ 30 сентября 2019

В Bootstrap 4 я хочу, чтобы мои столбцы были выровнены в несколько рядов.

Если я устанавливаю строки и столбцы, все работает нормально, но если один из моих столбцов должен соответствовать 2 слотам с flex-grow:2, то онсоздать небольшой разрыв между рядами. Я попробовал все флексы безуспешно.

Здесь вы можете найти ссылку, чтобы попробовать это. Я создал 2 случая, один с div, а другой (тот, который мне нужен) с таблицей с классом строк.

Ссылка на w3schools

  .col{  
     border:1px solid red;
  }
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" 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/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

</head>
<body>
<div class="container"> 
  <div class="row">
    <div class="col" style="flex-grow:2.08">1</div>
    <div class="col">2</div>
  </div>
  <div class="row">
    <div class="col">1</div>
    <div class="col">2</div>
    <div class="col">3</div>
  </div>
</div>
<br/>
<div class="container">        
  <table class="table">
    <thead>
      <tr class="row">
        <th class="col">Firstname</th>
        <th class="col">Lastname</th>
        <th class="col">Email</th>
      </tr>
    </thead>
    <tbody>
      <tr class="row">
        <td class="col" style="flex-grow:2">John (2.07 in flex-grow works in 1080p...)</td>
        <td class="d-none">Doe</td>
        <td class="col">john@example.com</td>
      </tr>
      <tr class="row">
        <td class="col">Mary</td>
        <td class="col">Moe</td>
        <td class="col">mary@example.com</td>
      </tr>
      <tr class="row">
        <td class="col">July</td>
        <td class="col">Dooley</td>
        <td class="col">july@example.com</td>
      </tr>
    </tbody>
  </table>
</div>
</body>
</html>

enter image description here В первом примере вы можете увидеть небольшой разрыв между «1» / «2» и «2»/ "3" и то же самое во втором примере.

Мне действительно нужно использовать flex-grow, потому что в моем полном коде некоторые из моих TD имеют фиксированную ширину в PX, а другие TD должны занимать пустое пространствоно с той же шириной (или дважды, если я установил flex-grow: 2)

1 Ответ

0 голосов
/ 30 сентября 2019

Кажется, что в школах W3 тоже заметили проблему, отсюда и их "2.07 в flex-grow ...".

Я не уверен, почему это происходит, но можно обойти эту проблемудобавьте класс к этим td, а затем добавьте медиазапросы для этого класса с различными размерами экрана.

Например:

@media screen and (min-width: 992px) { 
    .alter-flex{
        flex-grow: 2.09;
    }
} 
...