我承认我对CSS一点也不在行。我知道有很多类似的问题和例子,但是尽管我做了很多尝试,我还是不能用我的例子做任何事情。非常感谢你的帮助。
请看这把小提琴:http://jsfiddle.net/4h75G/2/
如果您将鼠标悬停在底部表格中的“Data 1,1”单元格上,它会自动展开以显示整个单元格内容。但是,我希望能够做的不是让它在悬停时展开,而是能够单击一次以展开单元格,然后单击第二次以将其收缩/折叠回原始状态。我希望仅使用CSS而不使用Javascript来完成此操作。
谢谢你!
于飞:
<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;
}
4条答案
按热度按时间dhxwm5r41#
您可以在没有脚本的情况下,通过摆弄隐藏的可以保持状态的css元素(比如一个复选框)来实现类似的功能,但我认为您最好在脚本中简单地切换一个类来实现这一点。
如果你把你的
.content
Package 在一个标签中,预先挂起一个复选框并隐藏它,如下所示:你可以实现你想要的,但它是该死的丑陋。请参阅http://jsfiddle.net/4h75G/13/的例子,这种可疑的做法应用到您的例子。
pprl5pva2#
我认为你不能没有javascript。
使用jQuery,它可以像下面这样创建-http://jsfiddle.net/4h75G/12/
pgky5nke3#
我使用的是:
.slideToggle() documentation
希望这对你有帮助!
huwehgph4#
请参阅
第一个
用于HTMl解决方案,其中复选框用于表。关键是使用td内的另一个表。