html - 当具有 rowspan 的行中的另一个元素具有更大的数据时,表行之前出现空白

标签 html css html-table

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 5 年前

我创建了一个表,其中前 3 列跨越多行。现在,当前三列中的任何一列中的数据较小时,问题就不存在了,但如果数据较大并且行没有跨越很多行,那么其余列上方就会出现空白。

image

最佳答案

一)

table {
  border-collapse: collapse;
  width:100%;
  height:100%;
}
table, th, td {
    border: 1px solid black;
}
.child-tbl{
border:0;
}
.child-tbl td{
  border:0;
  border-bottom:1px solid black;
}
<table class="main">
  <tr>
    <td style="width:50px;">3</td>
    <td style="width:50px;">39</td>
    <td style="width:250px;">
        x<br>x<br>x<br>x<br>x<br>
    </td>
    <td style="vertical-align:top;">
      <table class="child-tbl">
        <tr>
          <td>6</td>
          <td>aaaaaaaaaaaaaaaaaaaaaaa</td>
        </tr>
        <tr>
          <td>7</td>
          <td>bbbbbbbbbbbbbbbbbbbbbbb</td>
        </tr>
      </table>
    </td>
  </tr>
</table>


B)

我还混合了 css 代码,使正确的单元格高度适合其容器。我为 table 容器 (div) 使用 height:1px,为 table 使用 height:100% :

table {
  border-collapse: collapse;
  width:100%;
  height:100%;
}
table, th, td {
  border: 1px solid #bbb;
}
table th{
  background:#0095ff;
  color:#fff;
  height:50px;
  vertical-align:middle;
}
.child-tbl{
  border:0;
}
.child-tbl td{
  border:0;
  border-bottom:1px solid #bbb;
  height:50%;
}
.child-tbl tr:last-child td{
  border-bottom:0;
}
.child-tbl td:first-child{
  border-right:1px solid #bbb;
}
html,body{
  height:100%;
}
div{
  height:1px;
}
<div>
  <table class="main">
    <tr>
      <th style="width:50px;">Col 1</th>
      <th style="width:50px;">Col 2</th>
      <th style="width:150px;">Col 3</th>
      <th>
        <table class="child-tbl">
            <tr>
              <td style="width:50px;">Col 4</td>
              <td>Col 5</td>
            </tr>
         </table>
      </th>
    </tr>
    <tr>
      <td style="width:50px;">3</td>
      <td style="width:50px;">39</td>
      <td style="width:150px;">
          x<br>x<br>x<br>x<br>x<br>
      </td>
      <td style="vertical-align:top;">
        <table class="child-tbl">
          <tr>
            <td style="width:50px;">6</td>
            <td>aaaaaaaaaaaaaaaaaaaaaaa</td>
          </tr>
          <tr>
            <td>7</td>
            <td>bbbbbbbbbbbbbbbbbbbbbbb</td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
<div>

关于html - 当具有 rowspan 的行中的另一个元素具有更大的数据时,表行之前出现空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48474530/

上一篇:html - 我应该采用哪种方法来居中这个李

下一篇:css - 文本在菱形内垂直对齐

相关文章:

html - 之前使用的按钮左右边框如何设置?

html - 如何更改选择框箭头

css - 为具有固定宽度列和溢出文本的表格设置样式

html - HTML 表格中两行之间的间距

javascript - 如何仅在条件为真时创建 HTML

jquery - 将脚本添加到 jquery mobile 中的外部页面而不是主文件

html - 可以调整透明图像的大小吗?

html - 窄换行符

带有行标题的 HTML 表格

html - 谷歌语音识别配额