CSS Клетки одинакового размера внутри стола - PullRequest
1 голос
/ 25 марта 2020

Я создаю веб-сайт с всплывающим окном, содержащим таблицу. После нескольких часов проб разных комбинаций с атрибутом table-layout среди других таблица по-прежнему не будет отображаться равномерно. CSS показано ниже.

#popup {
position: absolute;
height: 50%;
width: 50%;
left: 25%;
top: 25%;
background: white;
border: solid black 1px;
text-align: center;

}


table{
  table-layout: fixed; /* Cells are uniformly sized */;
  width: 100%;
  height: 100%;

}

Представлена ​​следующая таблица.

enter image description here

Как я могу убедиться, что все ячейки единый размер?

1 Ответ

0 голосов
/ 25 марта 2020

Полагаю, вам будет гораздо лучше использовать CSS Сетка для такого типа макета.

Для изучения CSS Сетка Я рекомендую Сетка Сада и Grid Critters (последний имеет плату) gamified учебники. Обе компании также имеют учебники по Flexbox (Flexbox Froggy и Flexbox Zombies, бесплатно)

В любом случае, вот исполняемое воспроизведение вашего макета с использованием Grid:

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  display: flex;
  justify-content: center;
  
  background-image: url("https://cdn.pixabay.com/photo/2017/09/14/22/42/milky-way-2750627_960_720.jpg") ;
}

.wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  
  background-color: white;
  border: 1px solid black;
  border-radius: 5px;
  width: 90%;
  padding: 0 10px;
}

.grid {
  align-self: stretch;
  padding-bottom: 15px;
  
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 5px;
  justify-content: center;
  align-items: center;
}

.heading, .col-1 {
  display: flex;
  align-items: center;
  justify-content: center;
}

.heading {
  font-size: 1.5em;
  font-weight: bold;
  padding-top: 10px;
}

.col-1 {
  background-color: #D3D3D3;
  height: 100px;
  border: 1px solid black;
}

.blank {
  grid-column: 2 / span 3;
}
<div class="wrap">
  <h2>Date</h2>
  <div class="grid">
    <div class="heading">
      H103
    </div>
    <div class="blank"></div>
    <div class="col-1">Period 1</div>
    <div class="col-1">Period 2</div>
    <div class="col-1">Period 3</div>
    <div class="col-1">Period 4</div>
    <div class="heading">
      H104
    </div>
    <div class="blank"></div>
    <div class="col-1">Period 1</div>
    <div class="col-1">Period 2</div>
    <div class="col-1">Period 3</div>
    <div class="col-1">Period 4</div>

    <div class="heading">
      H105
    </div>
    <div class="blank"></div>
    <div class="col-1">Period 1</div>
    <div class="col-1">Period 2</div>
    <div class="col-1">Period 3</div>
    <div class="col-1">Period 4</div>
    <div class="heading">
      H107
    </div>
    <div class="blank"></div>
    <div class="col-1">Period 1</div>
    <div class="col-1">Period 2</div>
    <div class="col-1">Period 3</div>
    <div class="col-1">Period 4</div>

  </div>
</div>
...