ячейка таблицы отображения css требует процентной ширины


Я был поставлен в положение, когда мне нужно использовать команду display:table-cell для элементов div.

однако я обнаружил, что" ячейки " будут работать правильно, только если процент добавляется к ширине.

в этой скрипке http://jsfiddle.net/NvTdw/ когда я удаляю процентную ширину, ячейки не имеют равной ширины, однако когда процентное значение добавляется к ширине, все хорошо, но только когда этот процент равен доля max нет ДИВС, так что для четырех столбцов 25%, пять 20% и в этом случае пять на 16.666%.

Я подумал, что, возможно, добавление процента меньше-скажем, 1% будет хорошим исправлением всех, но ячейки снова выпадают из строки.

почему это?

    .table {
      display: table;
      height: 200px;
      width: 100%;
    }

    .cell {
      display: table-cell;
      height: 100%;
      padding: 10px;
      width: 16.666%;
    }

    .grey {
      background-color: #666;
      height: 100%;
      text-align: center;
      font-size: 48px;
      color: #fff;
      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 300;
    }
<div class="table">
  <div class="cell">
    <div class="grey">Block one</div>
  </div>
  <div class="cell">
    <div class="grey">Block two</div>
  </div>
  <div class="cell">
    <div class="grey">Block three</div>
  </div>
</div>
<div class="table">
  <div class="cell">
    <div class="grey">Block</div>
  </div>
  <div class="cell">
    <div class="grey">Block two</div>
  </div>
</div>
<div class="table">
  <div class="cell">
    <div class="grey">Block one</div>
  </div>
  <div class="cell">
    <div class="grey">Block two</div>
  </div>
  <div class="cell">
    <div class="grey">Block three</div>
  </div>
  <div class="cell">
    <div class="grey">Block four</div>
  </div>
</div>
<div class="table">
  <div class="cell">
    <div class="grey">x</div>
  </div>
  <div class="cell">
    <div class="grey">xx</div>
  </div>
  <div class="cell">
    <div class="grey">xxx</div>
  </div>
  <div class="cell">
    <div class="grey">xxxx</div>
  </div>
  <div class="cell">
    <div class="grey">xxxxxx</div>
  </div>
  <div class="cell">
    <div class="grey">Block five test</div>
  </div>
</div>
<div class="table">
  <div class="cell">
    <div class="grey">Block</div>
  </div>
  <div class="cell">
    <div class="grey">Block two</div>
  </div>
  <div class="cell">
    <div class="grey">Block three</div>
  </div>
</div>
2 55

2 ответа:

вам просто нужно добавить ' table-layout: fixed;'

.table {
   display: table;
   height: 100px;
   width: 100%;
   table-layout: fixed;
}

http://www.w3schools.com/cssref/pr_tab_table-layout.asp

обратите внимание также, что vertical-align:top; часто необходимо для правильного внешнего вида ячейки таблицы.

таблица css-ячейка, содержимое имеет ненужное верхнее поле