【发布时间】:2015-06-15 11:38:58
【问题描述】:
诚然,我对 CSS 一点也不擅长。我知道那里有类似的问题和示例,但是尽管进行了很多尝试,但我仍然无法使用我的示例进行任何操作。非常感谢您的帮助。
请看一下这个小提琴:http://jsfiddle.net/4h75G/2/
如果您将鼠标悬停在底部表格中的“Data1,1”单元格上,它会自动展开以显示整个单元格内容。但是,我希望能够做的而不是让它在悬停时展开而是能够单击一次以展开单元格,然后再次单击以将其收缩/折叠回其原始状态。我想只使用 CSS 而没有 Javascript。
谢谢!
HTML:
<table>
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
</tr>
<tr>
<td>Data1,1</td>
<td>Data2,1</td>
<td>Data3,1</td>
</tr>
<tr>
<td>Data1,2</td>
<td>Data2,2</td>
<td>Data3,2</td>
</tr>
<tr>
<td>Data1,3</td>
<td>Data2,3</td>
<td>Data3,3</td>
</tr>
</table>
</br>
<table>
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
</tr>
<tr>
<td><div class="content"><span class="hidden">Data1,1 first line - this is a kind-of long line
<br/>Data1,1 second line - this is a kind-of long line too
<br/>Data1,1 third line
<br/>Data1,1 fourth line</span>
</div>
</td>
<td>Data2,1</td>
<td>Data3,1</td>
</tr>
<tr>
<td>Data1,2</td>
<td>Data2,2</td>
<td>Data3,2</td>
</tr>
<tr>
<td>Data1,3</td>
<td>Data2,3</td>
<td>Data3,3</td>
</tr>
</table>
CSS:
body,table{
font-family:verdana,arial,sans-serif;
font-size:12px;
border-collapse:collapse;
}
td,th{
padding:3px 3px;
margin:0px;
border:1px solid #BBB;
white-space:nowrap;
}
.content{
height:15px;
width:100px;
overflow:hidden;
text-overflow:ellipsis
}
.content:hover{
height:auto;
width:auto;
}
【问题讨论】:
-
如果你只想将它绑定到点击事件,你可能会被 Javascript 卡住。
-
纯 CSS 无法做到这一点。可以做到这一点的唯一方法是使用
:target伪类(这只会让您扩展,而不是收缩)或滥用隐藏单选元素的检查状态。使用 JavaScript 是正确的、语义上纯粹的方式。 -
@cimmanon - 我认为如果我只能在不收缩单元格的情况下扩展,那可能没问题。也许你可以展示这将如何工作?谢谢。
标签: html css html-table