【问题标题】:How to make last cell of a row in a table occupy all remaining width如何使表格中一行的最后一个单元格占据所有剩余宽度
【发布时间】:2010-11-06 20:26:06
【问题描述】:

在下面的 HTML 片段中,如何使包含“LAST”的列的宽度占据该行的其余部分,而包含“COLUMN ONE”和“COLUMN TWO”的列的宽度刚好足够包含他们的内容,而不是更大。

谢谢

table {
  border-collapse: collapse;
}
table td {
  border: 1px solid black;
}
<table>
  <tr>
    <td>
      <table width="100%">
        <tr>
          <td>
            <span>
             COLUMN
           </span>
            <span>
             ONE
           </span>
          </td>
          <td>
            COLUMN TWO
          </td>
          <td>
            LAST
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td>
      ANOTHER ROW
    </td>
  </tr>

</table>

【问题讨论】:

    标签: html css


    【解决方案1】:

    您需要告诉前两列不要换行,并为最后一列设置 99% 的宽度:

    <table width="100%">
           <tr>
             <td style="white-space: nowrap;">
               <span>
                 COLUMN
               </span>
               <span>
                 ONE
               </span>
             </td>
             <td style="white-space: nowrap;">
                COLUMN TWO
             </td>
             <td width="99%">
               LAST
             </td>
           </tr>
         </table>
    

    编辑:您应该将所有样式/演示文稿放在(外部...)css中。

    对列使用类(如果您只针对现代浏览器,则可以使用 nth-child() 之类的 css3 选择器):

    html:

    <tr>
      <td class="col1">
      // etc
    

    css:

    .col1, .col2 {
      white-space: nowrap;
    }
    .col3 {
      width: 99%;
    }
    

    【讨论】:

    • 弃用的是 标签,但如果你正在使用 div 和 display:table-cell 做响应式 / CSS 表格,这很好用。
    • @ckaufman 表没有被弃用,很多属性都是(widthnowrap 等)。
    • 这行得通,但我还必须在表格的第二列添加一个min-width 属性以避免它缩小。
    • 如果最后一个表格单元格中包含一个下拉菜单,我希望与它所在的表格单元格的宽度相同。将下拉菜单的宽度设置为 100% 不会' 似乎不起作用,因为包含元素的宽度设置为 99%。有什么简单的方法可以做到这一点?目前,我正在使用 javascript 在打开下拉菜单时动态设置宽度。
    • @flyingL123 知道父宽度是您需要的 99%,如果需要,您可以设置为 101% (99 + 0.09 = 99.9%) 或更大一些。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签