隐藏/显示表格单元格中的内容

时间:2013-08-27 20:34:52

标签: javascript jquery html css

我有一个HTML表格,其中一个单元格中有很多文字。是否有一种隐藏内容的简单方法,当我将这个确切的单元格悬停时,整个内容会显示出来?就像只显示前10-20个字符或其他东西一样。然后当我悬停那个单元格时,整个内容都会出现。

我可以用CSS简单地完成这项工作,还是需要JavaScript等?

5 个答案:

答案 0 :(得分:6)

您可以在悬停时控制CSS和JavaScript中单元格的高度。

在CSS中,这看起来像:

.cell{
    height: 40px;
    transition: height 1s ease-in;
    overflow: hidden;
}
.cell:hover{
    height: 100px;
}

当然,我在这里任意选择数字,所以你需要根据自己的需要选择数字。

答案 1 :(得分:2)

您可以使用onmouseover和onmouseout使用javascript完成此操作。

即:

<td onmouseover="document.getElementById('textbox').innerHTML='Text to Show'" onmouseout="document.getElementById('textbox').innerHTML='Truncated Text'">
<div id=textbox>Truncated Text</div>
</td>

答案 2 :(得分:1)

如果在您的情况下可以选择,您可以选择一个分隔位置:

<div>Some text that shows all the time
  <span class="more"> (more)</span>
  <span class="expanding"> and some more text that shows when you hover</span>
</div>

然后在css中,当你将鼠标悬停在div上时,分别隐藏和显示“更多”类和“扩展”类。

.more      { display: block; }
.expanding { display: none; }
div:hover > .expanding { display: block; }
div:hover > .more      { display: none; }

这样做是显示和隐藏div的子元素。如果你把div放在td中,它应该填满它,悬停将看起来像你正在盘旋的td。或者你可以使用td来保存这三个。

唯一棘手的部分是它一直看起来并不好看,除非你的段落在“(更多)”之上。那是因为你不能预测段落中间的行结尾,因为持有文本的矩形会改变宽度。

FIDDLE

答案 3 :(得分:1)

您可以使用css text-overflow 属性隐藏带省略号的单元格内容

像这样:

table tr td
{
    text-overflow: ellipsis; 
    height: 40px;
}

table tr td:hover
{
    text-overflow: none; 
    height: auto;
}

https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow

答案 4 :(得分:0)

这是一个例子,

我有一个很长的文字,当我将鼠标悬停在它上面时,我会提取它。

所以,我们开始

&LT; - 开始 - &GT;

'&gt; p
的onLoad =函数()
{
var text = this.innerHTML;
var hide = this.innerHTML.substr(0,7)+“......”;
this.innerHTML =隐藏;
}
的onMouseOver =函数()
{
this.innerHTML =文字;
}
的onmouseout =函数()
{
this.innerHTML =隐藏;
}
&LT;这是一个长文本&gt; p&lt;

&LT; - 结束 - &GT;

另外,我如何添加像你这样的程序部分?