css显示表格单元格需要百分比宽度

时间:2013-11-07 11:21:15

标签: html css css-tables

我已被置于需要使用display:table-cell命令的div元素的位置。

但是我发现,如果将百分比添加到宽度,“单元格”将只能正常工作。

在这个小提琴http://jsfiddle.net/NvTdw/中,当我移除百分比宽度时,单元格的宽度不相等,但是当将百分比值添加到宽度时,一切都很好,但只有当该百分比等于最多没有div,所以四列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 个答案:

答案 0 :(得分:103)

您只需添加'table-layout:fixed;'

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

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

答案 1 :(得分:1)

另请注意,vertical-align:top;通常是正确表格单元格外观所必需的。

css table-cell, contents have unnecessary top margin