如何限制标题单元格的宽度

Posted

技术标签:

【中文标题】如何限制标题单元格的宽度【英文标题】:How to limit width of header cell 【发布时间】:2016-03-24 19:26:07 【问题描述】:

如您所见,我有一个带有复杂标题的表格。当文本很长时,我需要防止水平标题单元格扭曲子标题宽度。

标题和表格位于不同的 div 中。表格是动态构建和填充的。

困难的部分是使下面单元格的宽度完全保持我在 CSS 中指定的宽度,而顶部标题单元格的宽度被限制为下面单元格的宽度。

顶部标题单元格具有以下 CSS 样式:

overflow: hidden;
white-space: nowrap;
table-layout: fixed;
display: block;
width: 100%;

Asp.net,IE 11,VS 2008

【问题讨论】:

你能提供一个演示吗? 【参考方案1】:

您的评论说每个标题单元格都有 100%。如果要使用百分比,则应将 100 除以单元格数,然后将其用作每个单元格的百分比。

【讨论】:

更长组头 ?【参考方案2】:

为什么不只是为表头和表体使用不同的 div ......而不是让所有表行彼此成比例。像这样的东西。。 类似的东西。

body 
  padding-top: 10px;
  padding-left: 10px;

.scrolltable 
  overflow-x: visible;
  display: flex;
  display: -webkit-flex;
  flex-direction: column;
  -webkit-flex-direction: column;

.scrolltable > .header  .scrolltable > .tbody 
  /*noinspection CssInvalidPropertyValue*/
  width: -webkit-fit-content;
  overflow-y: scroll;
  flex: 1;
  -webkit-flex: 1;

/* an outside constraint to react against */

table 
  border: 1px solid black;
  font-size: 90%;
  border-collapse: collapse;


th,
td 
  border-radius: 25px;
  width: 120px;
  border: 1px solid black;

th 
  white-space: nowrap;
  border-width: 1px;
  font-weight: bold;
  height: 140px;
  padding-top: 5px;
  padding-bottom: 5px;
  transform:translate(25px, 51px) rotate(270deg);

td 
  border-width: 1px;
  text-align: center;
  padding-top: 5px;
  padding-bottom: 5px;
<body>
  <div id="constrainer">
    <div class="scrolltable">
      <table class="header"> <!-- first div for header -->
        <thead>
          <th>
            header
          </th>
          <th>
           header
          </th>
          <th>
             header
          </th>
          <th>
             header
          </th>
          <th>
            header
          </th>
          <th>
            header
          </th>
        </thead>
      </table>
      <div class="tbody">
        <table><!-- second div for table body /content -->
          <tbody>
            <tr>
              <td>
                header
              </td>
              <td id="inp01">

              </td>
              <td id="inp02">

              </td>
              <td id="inp03">

              </td>
              <td id="inp04">

              </td>
              <td id="inp05">

              </td>
            </tr>
            <tr>
              <td>
                01
              </td>
              <td id="inp11">

              </td>
              <td id="inp12">

              </td>
              <td id="inp13">

              </td>
              <td id="inp14">

              </td>
              <td id="inp15">

              </td>
            </tr>
            <tr>
              <td>
               header
              </td>
              <td id="inp21">

              </td>
              <td id="inp22">

              </td>
              <td id="inp23">

              </td>
              <td id="inp24">

              </td>
              <td id="inp25">

              </td>
            </tr>


          </tbody>
        </table>
      </div>
    </div>

   
  </div>
</body>

【讨论】:

我实际上是这样做的:] 单独的标题和单独的表体。但这不是那么重要。在任何情况下,顶部标题行(水平)总是比垂直副标题更宽。如果有 1 到 3 个垂直子标题单元格,并且顶部标题文本较长,则子标题会被拉伸,如图所示,而表格的其余部分保持正常大小,因此标题会比表格宽。 你为什么要断开标题(顺便说一句,缺少 ?如果你不着急,我会在周末尝试再看看这个。

以上是关于如何限制标题单元格的宽度的主要内容,如果未能解决你的问题,请参考以下文章

具有可变宽度单元格的 UITableView

图像未扩展表格单元格的宽度

确保遵守表格单元格的宽度

如何以分组样式设置 UITableView 中单元格的宽度

Excel设置单元格的宽度、高度

如何用CSS 定制表格单元格的宽度和高度