5

我在进行此设计时遇到了一些 HTML 表格问题:左侧单元格是 rowspan="2" 单元格,而右侧两个正在使用 height="50%" 属性。以下是预期的行为:

    +--------------+------------------+
    | | |
    | | 等高 |
    | | 单元#1 |
    | | |
    | 缩放- +-----------------+
    | 高度单元 | |
    | | 等高 |
    | | 单元#2 |
    | | |
    +--------------+------------------+

实际发生的情况:

    +--------------+------------------+
    | | 等高 |
    | | 单元#1 |
    | +-----------------+
    | | |
    | 缩放- | |
    | 高度单元 | 等高 |
    | | 单元#2 |
    | | |
    | | |
    +--------------+------------------+

简而言之,右侧两个单元格的顶部尽可能小,底部的一个填充其余空间。使用嵌入式表有一个丑陋的解决方法,但我想知道是否有更优雅的解决方案。这也可以通过假设左侧单元格的固定高度并强制右侧单元格的大小(以像素为单位)来规避。但是,这违背了缩放高度单元的目的。

4

3 回答 3

1

真的很晚了......如何使用javascript如下高度是您设置的数字?

function SetCellHeight(height) {
    document.getElementById('ReferenceCell').style.height = height + 'px';
    document.getElementById('Cell1').style.height = (0.5 * height) + 'px';     
    document.getElementById('Cell2').style.height = (0.5 * height) + 'px';
}

<body onload="SetCellHeight(height)">

<table border=1>
<tr>
<td id="ReferenceCell" rowspan="2">First Column</td>
<td id="Cell1">Cell #1</td>
</tr>
<tr>
<td id="Cell2">Cell #2</td>
</tr>
</table>

或者,用户可以如下设置高度:

function SetCellHeight() {
    var height = document.forms.tdHeightForm.heightinput.value.trim();
    document.getElementById('ReferenceCell').style.height = height + 'px';
    document.getElementById('Cell1').style.height = (0.5 * height) + 'px';     
    document.getElementById('Cell2').style.height = (0.5 * height) + 'px';
}

<form id="tdHeightForm"><input type="text" name="heightinput"><button type="button" 
onclick="SetCellHeight()">Change Height</button></form>
于 2014-04-14T04:52:39.523 回答
0

要使用 height:50% 标签,表格需要有一个高度。同样,问题是由于左边的元素是任意大小的。因此,如果左侧的文本小于 150 像素,则固定高度(例如 150 像素)可能会出现问题。因此,设置一个 0px 的高度表解决了这个问题。

<table height="0px" border="1px">
  <tr>
    <td rowspan="2">
      Blah<br>
      Blah<br>
      Blah<br>
      Blah<br>
      Blah<br>
      Blah<br>
      Blah<br>
      Blah<br>
    </td>
    <td height="50%">
      Text
    </td>
  </tr>
  <tr>
    <td height="50%">
      More text
    </td>
  </tr>
</table>
于 2014-09-29T01:01:18.083 回答
-1
<table border=1>
<tr>
<td rowspan="2" style="height:300px;width:100px;text-align:center">First Column</td>
<td style="height: 150px;width:100px;text-align:center">Cell #1</td>
</tr>
<tr>
<td style="height:150px;width:100px;text-align:center">Cell #2</td>
</tr>
</table>
于 2013-04-12T10:44:53.473 回答